2012-04-22 4 views
3

Я запускаю raytracer в CUDA с N Bounces (каждый луч будет отказываться N раз).CUDA - авария водителя nvidia во время работы

Я просматриваю результаты, используя openGL.

один раз N маленький (1 ~ 4) все отлично работает. как только я делаю N большой (~ 10), каждый поток (около 800x1000) должен делать много вычислений, и это, когда экран становится черным, а затем назад, с запиской о том, что моя авария nvidia.

Я искал в Интернете и думаю теперь, что причиной этого является какой-то таймер сторожевой собаки, так как я использую одну и ту же графическую карту для своего дисплея и своих вычислений (вычисление занимает более 2 секунд, поэтому драйвер сам перезагружается).

есть ли команда, чтобы сделать хост (cpu) WAIT для устройства (gpu) до тех пор, пока он занимает?

Что мне нужно делать? им застрял :(

благодаря

ответ

4

На основании вашего описания, вы работаете на Windows Vista или Windows, 7. Операционные системы Windows имеют сторожевой таймер, как вы уже догадались. сторожевой таймер применяется только для графических процессоров с дисплеями прикрепленными .

Самым простым решением является запуск 2 и более графических процессоров, и запустить CUDA на GPU (ов) без дисплея прилагается.

вы можете отключить сторожевой таймер. См this question для получения более подробной информации. Тем не менее, вы должны сделать поэтому с осторожностью — помните, что когда у вас есть длинный runni ng на вашем основном графическом процессоре, вы полностью отключите свой компьютер (по крайней мере, вы не сможете увидеть, что он делает), пока ядро ​​не завершится.

+1

О, Боже мой! U спас мой день! , что я сделал, было добавление в реестр (с помощью "Regedit") следующие DWORDs: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ GraphicDrivers \ [добавлено "TdrLevel = 0" и "TdrDelay = 10"] && HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ GraphicDrivers \ Timeout [изменено значение «Timeout» на 0x60] – Wops

Смежные вопросы