Часть кода, которая занимает хорошо в течение 1 минуты в командной строке, была выполнена в течение секунд в Visual Profiler NVIDIA (работает с тем же .exe). Так почему же возникает естественный вопрос? Что-то не так с командной строкой, или Visual Profiler делает что-то другое и не выполняет все как в командной строке?
Я использую CUBLAS, Thrust и cuRAND.
Кстати, заметное замедление скомпилированного кода на моей машине совсем недавно, даже старый код, который раньше выполнялся быстро, поэтому я становлюсь подозрительным.
Update:
- Я проверил, что рассчитанный вывод в командной строке и Visual Profiler идентичен - то есть весь требуемый код был запущен в обоих случаях.
- GPU-shark указала, что мое состояние производительности не изменилось на P0, когда я переключился с командной строки на Visual Profiler.
- Тем не менее, использование графического процессора сообщалось при 0.0% при запуске с Visual Profiler, но превышало 98% при запуске командной строки.
- Кроме того, в Visual Profiler используется меньше памяти. При запуске командной строки диспетчер задач указывает использование 650-700 МБ памяти (шипы при первом вызове
cudaFree(0)
). В Visual Profiler этот показатель уменьшается до ~ 100 МБ.