2013-06-27 2 views
0

При запуске длинного ядра (особенно в режиме отладки с некоторой проверкой памяти) на графическом процессоре GeForce с поддержкой CUDA с помощью Bumblebee я получаю следующую ошибку:«Ошибка при запуске и завершена» с помощью Bumblebee в Linux

CUDA error 6: the launch timed out and was terminated

Это, по-видимому, вызвано сторожевым плеером NVIDIA. Доступно решение here. Однако почему это происходит при использовании Bumblebee и optirun для запуска простого ядра CUDA (т. Е. Я не использую свой графический процессор NVIDIA для отображения)?

Команда, которую я использовал для запуска программы является:

optirun [cuda-memcheck] ./my_program program_options 

ответ

4

Решение (найдено here) было использовать опцию --no-xorg для optirun, то есть:

optirun --no-xorg [cuda-memcheck or cuda-gdb] ./my_program program_options 

Действительно, поведение по умолчанию optirun - это создание вторичного X-сервера, который затем будет подчиняться сторожевому устройству водителя. Используя опцию --no-xorg, мы можем избежать ненужных последствий этого дополнительного X-сервера. Этот новый вариант доступен с Bumblebee 3.2.

Он также предоставляет возможность использовать cuda-gdb и избежать следующее сообщение об ошибке:

fatal: All CUDA devices are used for display and cannot be used while debugging. (error code = 24)

+0

Даже с '--no-xorg' флаг я до сих пор получить тайм-аут ошибки для достаточно большой (достаточно медленно) программу. Есть идеи? – user3728501

+0

У меня никогда не было проблемы после этого, поэтому я действительно не знаю, что это могло быть на этот раз. – BenC