Код GPU дает разное время при запуске из VS2008 и при запуске только .exe - PullRequest
0 голосов
/ 21 октября 2011

В моем коде есть события cuda для записи времени выполнения. Когда я нажимаю «Начать отладку» из VS 2008, таймер дает значение 1,5 секунды. Однако, когда я запускаю программу из файла .exe, она дает время 0,4 секунды. Почему эта разница?

1 Ответ

1 голос
/ 21 октября 2011

Нет внутренней причины, по которой работа, подключенная к отладчику, должна приводить к разнице в производительности, кроме (всего несколько возможностей):

У вас установлены условные контрольные точки?В зависимости от условий, они могут оказать существенное влияние на время выполнения.

Вы явно записываете большие объемы данных для прослушивателей Debug или Trace?(Изменить: это актуально для C #, вероятно, не для C ++.)

Компилируется ли EXE в режиме Release?По умолчанию в конфигурации выпуска включены оптимизации, которых нет при сборке в режиме отладки.

Действительно ли ваш временной код только синхронизирует соответствующий раздел?Если вы запускаете таймер в начале выполнения программы, а не вокруг вызовов GPU, которые вас действительно интересуют, вы можете случайно синхронизировать некоторые задачи запуска, связанные с запуском отладчика, который не будет активен вавтономное приложение.

...