Ошибка запуска истекла и была прервана с помощью Bumblebee в Linux
При запуске длинного ядра (особенно в режиме отладки с некоторой проверкой памяти) на графическом процессоре GeForce с поддержкой CUDA и Bumblebee я получаю следующую ошибку:
Ошибка 6 CUDA: время ожидания истекло и было прекращено
Похоже, это вызвано сторожевым таймером драйвера NVIDIA. Решение доступно здесь. Тем не менее, почему это происходит при использовании шмеля и optirun
запустить простое ядро CUDA (т.е. я не использую свой графический процессор NVIDIA для отображения)?
Команда, которую я использовал для запуска программы:
optirun [cuda-memcheck] ./my_program program_options
1 ответ
Решение (найденное здесь) заключалось в использовании --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
и избежать следующей ошибки:
Неустранимый: все устройства CUDA используются для отображения и не могут использоваться во время отладки. (код ошибки = 24)