В соответствии с руководством по программированию CUDA вы можете отключить запуск асинхронного ядра во время выполнения, установив переменную среды (CUDA_LAUNCH_BLOCKING = 1).Отключение ALL асинхронного выполнения в программах CUDA
Это полезный инструмент для отладки. Я также хочу определить преимущество моего кода в использовании параллельных ядер и переводов.
Я хочу также отключить другие одновременные вызовы, в частности cudaMemcpyAsync
.
CUDA_LAUNCH_BLOCKING
влияет на эти виды вызовов в дополнение к запускам ядра? Я подозреваю, что нет. Какая была бы лучшая альтернатива? Я могу добавить cudaStreamSynchronize
звонки, но я бы предпочел решение времени выполнения. Я могу работать в отладчике, но это повлияет на время и победит цель.
Запуск в отладчике повлияет на сроки, но сериализации все не будет ?! – Tom
Конечно, сериализация все повлияет на сроки, и это то, что я хочу знать. – jmilloy