Как я могу переопределить ограничение времени выполнения ядра CUDA в Windows с дополнительными графическими процессорами?

На веб-сайте Nvidia объясняется проблема тайм-аута:

В: Каково максимальное время выполнения ядра? В Windows максимальное время запуска отдельных программ графического процессора составляет около 5 секунд. Превышение этого ограничения по времени обычно приводит к сбою запуска, о котором сообщает драйвер CUDA или среда выполнения CUDA, но в некоторых случаях это может привести к зависанию всей машины, что потребует полной перезагрузки. Это вызвано «сторожевым» таймером Windows, который заставляет программы, использующие основной графический адаптер, отключаться по тайм-ауту, если они работают дольше максимально допустимого времени.

По этой причине рекомендуется запускать CUDA на графическом процессоре, который НЕ подключен к дисплею и на который не расширен рабочий стол Windows. В этом случае в системе должен быть хотя бы один графический процессор NVIDIA, который служит основным графическим адаптером.

Источник: https://developer.nvidia.com/cuda-faq

Таким образом, кажется, что nvidia считает или, по крайней мере, настоятельно подразумевает, что наличие нескольких (nvidia) GPU и при правильной настройке может предотвратить это?

Но как? до сих пор я пробовал много способов, но на графическом процессоре GK110 все еще есть раздражающий тайм-аут, а именно: (1) подключение дополнительных слотов PCIE 16X; (2) Не подключен ни к одному монитору (3) Настроен на использование в качестве эксклюзивной карты physX в панели управления драйвером (как рекомендовали некоторые другие ребята), но блокировка все еще существует.


person user2003564    schedule 03.03.2013    source источник
comment
Я столкнулся с подобными проблемами, когда использовал блоки трехмерной резьбы (на GK110). Я изменил его на блоки двумерных потоков и много раз вызывал ядро. Это работало нормально. Не могли бы вы выложить сюда свое ядро?   -  person TheSeriousJoker    schedule 04.03.2013
comment
Здесь точно такая же проблема. Изменил тайм-аут реестра, но я все еще получаю его. Вам когда-нибудь удавалось привести это в порядок?   -  person Hans Rudel    schedule 07.07.2013


Ответы (1)


Если ваш GK110 представляет собой графический процессор Tesla K20c, вам следует переключить устройство из режима wddm в режим TCC. Это можно сделать с помощью инструмента nvidia-smi.exe, который устанавливается вместе с драйвером. Используйте функцию поиска Windows, чтобы найти этот файл (nvidia-smi.exe), затем используйте справку командной строки (`nvidia-smi --help), чтобы найти команды, необходимые для переключения графического процессора из режима WDDM в режим TCC.

Как только вы это сделаете, сторожевой механизм Windows больше не будет обращать внимание на ваше устройство GK110.

С другой стороны, если это графический процессор GeForce, его невозможно переключить в режим TCC. Единственный вариант — изменить настройки реестра, что довольно сложно. Ваш пробег может отличаться, так как точная структура регистрационных ключей зависит от ОС.

Если графический процессор находится в режиме WDDM, он подчиняется сторожевому таймеру.

person Robert Crovella    schedule 14.07.2013