CUDA: производительность памяти, что такое пропускная способность глобальной памяти
Я узнаю об оптимизации CUDA. Я нашел презентацию по этой ссылке: Оптимизация CUDA Паулиуса Микикявичюса.
В этой презентации они говорят о
МАКСИМАЛЬНАЯ ГЛОБАЛЬНАЯ ПАМЯТЬ ПАМЯТИ
говорят, что объединение глобальной памяти улучшит пропускную способность.
Мой вопрос, как вы рассчитываете пропускную способность глобальной памяти. Может кто-нибудь объяснить мне на простом примере программы.
1 ответ
Теоретическая пропускная способность может быть рассчитана с использованием спецификации оборудования.
Например, NVIDIA GeForce GTX 280 использует оперативную память DDR с тактовой частотой памяти 1 107 МГц и интерфейсом памяти шириной 512 бит. Используя эти элементы данных, максимальная теоретическая пропускная способность памяти NVIDIA GeForce GTX 280 составляет 141,6 ГБ / с:
В этом расчете тактовая частота памяти преобразуется в Гц, умножается на ширину интерфейса (деленную на 8 для преобразования битов в байты) и умножается на 2 из-за двойной скорости передачи данных. Наконец, этот продукт делится на 109, чтобы преобразовать результат в ГБ / с (Гбит / с).
Эффективная пропускная способность рассчитывается по времени выполнения конкретных программных действий и по тому, как программа получает доступ к данным. Для этого используйте это уравнение:
Эффективная пропускная способность = (( Br + Bw) / 109) / время
Здесь эффективная пропускная способность указывается в единицах Гбит / с, Br - это число байтов, считываемых на ядро, Bw - количество байтов, записываемых на ядро, а время дается в секундах.
Более подробная информация доступна в Руководстве по лучшей практике CUDA.