Сроки выполнения ядра на CUDA - PullRequest
0 голосов
/ 30 июня 2011

Я использовал код из CUDA C Best Practices для реализации таймера выполнения.Однако это что-то странное, и я не знаю, аномалия ли это или это нормально.Каждый раз, когда я запускаю свое приложение CUDA, я получаю разные показания.

Могут ли эти показания быть связаны с дизайном или это то, чего я должен ожидать?моя машина, кроме Windows 7.

Ответы [ 2 ]

3 голосов
/ 30 июня 2011

Ну, это зависит от того, насколько велики различия. Вы можете увидеть аномалии, вызванные планировщиком ядра. Может случиться так, что планировщик предоставляет некоторые дополнительные временные интервалы для функций ядра (потому что вызовы графического API включают проверку ошибок), что показывает больше времени выполнения. Если различия очень велики, я бы сказал, проверьте ваш код, но если он очень низок в миллисекундах, я бы не стал беспокоиться об этом + - 10 мсек - это обычно для кванта временного среза в большинстве ОС (окна, вероятно, включены). Кроме того, Aero довольно интенсивен, поэтому может усиливать расхождения, которые вы видите.

0 голосов
/ 20 апреля 2017

Я использовал код из CUDA C Best Practices для реализации таймера выполнения.

Да, ну, это не "лучший опыт" в моем опыте.1006 * Я предлагаю использовать профилировщик nvprof вместо кода на стороне устройства и вызовов CUDA Runtime API (я думаю, что он также работает относительно хорошо для вашего собственного кода на стороне хоста).Это займет у вас немного хлопот, чтобы настроить и выяснить, какие опции вы хотите использовать, но оно того стоит.

...