Профилирование CUDA (интерпретация запросов gst / gld) - PullRequest
1 голос
/ 19 ноября 2010

Раньше в cudaprof были счетчики профилирования для глобальной памяти (gst_coherent, gst_incoherent, gld_coherent, gld_incoherent), которые были мне полезны и понятны, потому что они говорили мне, сколько неразборчивых глобальных операций чтения и записи у меня было.

Теперь, кажется, есть только «запросы gst» и «запросы gld».Это общее количество загрузок / накоплений за деформацию в mp 0. Как определить, есть ли у меня коалесцированные операции чтения / записи? Я предполагаю, что было бы меньше запросов, если бы запросы были объединены.Я должен выяснить, сколько я ожидаю на поток и сравнить?К сожалению, мое ядро ​​слишком динамично для этого.

1 Ответ

1 голос
/ 19 ноября 2010

Когерентные / некогерентные счетчики актуальны на устройствах sm_10 / sm_11, где доступы должны были быть выровнены и объединены, чтобы избежать патологических характеристик.На sm_12 и sm_13 аппаратное обеспечение пытается объединить доступы, где это возможно, к сегментным транзакциям, а на sm_2x кэш L1 предоставляет аналогичную функцию с дополнительным возвратом кеша для случаев, когда это невозможно.почувствуйте, сколько данных вы читаете и записываете, и сравниваете это с достигнутой производительностью, это даст вам представление об эффективности.Однако, учитывая, что ваше ядро ​​сильно зависит от данных, вам следует взглянуть на пару презентаций GTC2010, чтобы понять другую информацию, которая доступна в профилировщике.Я бы порекомендовал Фундаментальная оптимизация производительности для графических процессоров talk и, что более важно, но, что более важно, но после первого, Оптимизация производительности на основе анализа talk.можно также рассмотреть возможность ручного ввода кода с несколькими дополнительными счетчиками.

...