2015-01-25 8 views
4

Я пытаюсь установить два общих измерения для использования пропускной способности памяти и вычислить использование пропускной способности для моего приложения с ускорением GPU с использованием CUDA nsight profiler на ubuntu. Приложение работает на графическом процессоре Tesla K20c.CUDA Profiler: Рассчитать память и вычислить использование

Два измерения я хочу это в некоторой степени сопоставимы с теми, приведенные в этом графике: Figure one

Проблемы не что никакие точные цифры приведены здесь и что еще более важно, что я не знаю, как эти проценты рассчитывается.

Пропускная способность памяти Использование

Профилировщик говорит мне, что мой GPU имеет Max Global Memory Bandwidth 208 Гб/с.

enter image description here

ли это относится к BW памяти устройства или глобальной BW памяти? Это sais Global, но первый имеет больше смысла для меня.

Для моего ядра профилировщик сообщает мне, что пропускная способность памяти устройства составляет 98,069 ГБ/с.

enter image description here

Предполагая, что максимум 208 Гб/с, обратитесь к памяти устройства может я тогда просто вычислить Memory BW использование в качестве 90.069/208 = 43%? Обратите внимание, что это ядро ​​выполняется несколько раз без дополнительных передач данных CPU-GPU. Поэтому система BW не важна.

Compute Пропускная способность Использование

Я не совсем уверен, что лучший способ это поставить Compute Throughput Применение в ряд. Мое лучшее предположение заключается в использовании инструкций за цикл до максимального количества инструкций за цикл. Профилировщик сообщает мне, что максимальный IPC равен 7 (см. Рисунок выше).

Прежде всего, что это значит? Каждый мультипроцессор имеет 192 ядра и, следовательно, максимум 6 активных перекосов. Разве это не означает, что максимальный IPC должен быть 6?

Профайлер сообщает мне, что мое ядро ​​выпустило IPC = 1.144 и выполнило IPC = 0.907. Должен ли я рассчитывать использование вычислений как 1.144/7 = 16% или 0.907/7 = 13% или ни один из них?

Эти два измерения (использование памяти и вычислений) дают адекватное первое впечатление о том, насколько эффективно мое ядро ​​использует ресурсы? Или есть другие важные показатели, которые должны быть включены?

Дополнительный график

enter image description here

+0

Глобальная пропускная способность памяти - это теоретическая пропускная способность для памяти устройства (память на плате графического процессора). –

ответ

2

Примечание: Я буду стараться обновлять этот ответ для получения дополнительной информации в будущем. Я не думаю, что все отдельные компоненты вычислений легко видны в отчетах Visual Profiler.

Вычислительного Использование

Это использование трубопроводов из логических труб: память, управление потоком, и арифметика. У SMs есть многочисленные трубы выполнения, которые не являются документами. Если вы посмотрите на диаграммы производительности инструкций, вы можете определить на высоком уровне, как рассчитать использование. Для получения дополнительной информации о трубопроводах вы можете прочитать документы архитектуры kepler или maxwell. Ядро CUDA является маркетинговым термином для математического конвейера с плавающей запятой целых чисел/одиночной точности.

Этот расчет не основан на IPC. Он основывается на использовании циклов использования и циклов выпуска. Например, вы можете использовать 100%, если вы выдаете 1 инструкцию/цикл (никогда не дублируйте). Вы также можете быть на 100%, если вы выдаете инструкцию с двойной точностью с максимальной скоростью (в зависимости от GPU).

Пропускная способность памяти Использование

Профилировщик вычисляет использование L1, L2, TEX, и память устройства. Отображается самое высокое значение. Очень возможно очень дорогое использование пути передачи данных, но очень низкая пропускная способность.

Следует также вычислить причину ограниченности латентности памяти. Очень просто иметь программу, связанную с задержкой памяти, но не связанную использованием вычислений или пропускной способностью памяти.

+0

Кэплер архитектуры документов в основном вы имеете в виду это: [Kepler Compute Architecture White Paper] (http://international.download.nvidia.com/pdf/kepler/NVIDIA-Kepler-GK110-GK210-Architecture-Whitepaper.pdf)? – Clood

+0

По графику пропускной способности инструкций вы имеете в виду как тот, который я опубликовал выше в конце (отредактирован)? – Clood

+0

В графе четыре единицы загрузки/хранения имеют наибольшее использование, но на графике одна операция с памятью имеет меньшую долю, чем арифметические операции. Почему это? – Clood

Смежные вопросы