Я профилирую ядро CUDA, используя nvprof с включенной выборкой ПК, чтобы понять, какие у меня проблемы с задержкой.Графическим процессором, который я использую, является P100 (compute 6.0)
. Образцы отчетов ПК показывают, что DFMA часто останавливается из-за зависимостей памяти.Код SASS для DFMA выглядит следующим образом:
DFMA R22, R4, R8, R22
Моя проблема заключается в том, что R8 должен быть загружен через LDG.E.CI.64 с очень высокой частотой промаха на L2.
Определение останова зависимости от памяти: «Невозможно выполнить загрузку / сохранение, так как требуемые ресурсы недоступны или используются полностью, или слишком много запросов определенного типа не выполнено».
Что меня смущает, так это то, что DFMA не является операциями загрузки / хранения, и если я прав, что остановка происходит из-за данных, недоступных на R8, то это должна зависеть от выполнения.Что означает зависание памяти в DFMA?