Как отлаживать CUDA с помощью eclipse Nsight только с одним GPU

Я получаю сообщение об ошибке: "все устройства cuda используются для отображения и не могут использоваться во время отладки" (с использованием Ubuntu)

Есть ли ЛЮБОЙ способ использовать Nsight Eclipse только с одним GPU для отладки? Я видел такие решения, как "sudo service lightdm stop", чтобы убить X, но это тоже убивает затмение Nsight, так какой в ​​этом смысл?

Обновление: поскольку отладку на том же графическом процессоре, на котором работает X, невозможно, я должен спросить: как можно использовать ДРУГОЙ компьютер в своей домашней сети для "удаленного" доступа к Ubuntu таким образом, что рендеринг рабочего стола X будет будет выполняться гостевым компьютером, позволяя графическому процессору хоста запустить отладчик?

3 ответа

Решение

В общем случае не поддерживается отладка на том же графическом процессоре, на котором установлен X-дисплей. Из руководства по началу работы с nsight: " Графический процессор под управлением X11 (в Linux) или Aqua (в Mac) нельзя использовать для отладки приложения CUDA, и он будет скрыт от приложения, запущенного в отладчике. Такой графический процессор все еще можно использовать для профилирования приложений GPU. "

Я полагаю, что на самом деле поведение разных оконных менеджеров различно. У меня есть ноутбук с Quadro1000M и RHEL 6.2 (с GNOME), с CUDA 5.0, и я могу войти в отладчик в nsight EE (Project...Build Project, а затем Run... Debug). На этом этапе я могу пройти и установить точки останова в коде хоста. И если я запускаю код до завершения, я получаю правильный вывод. Тем не менее, вы все еще не можете отладить код устройства. Если вы установите точку останова в коде устройства (и нажмете эту точку останова), вы повесите сеанс X.

РЕДАКТИРОВАТЬ: CUDA 5.5 и выше теперь поддерживают возможность отладки на одном графическом процессоре cc3.5 или выше.

Кажется, что вы можете использовать CUDA 5.5 для отладки программ CUDA на машине с одним GPU. Смотрите раздел 1.7.3.2. CUDA-GDB из CUDA_Toolkit_Release_Notes

Другой подход, который может сработать, - использовать встроенный видеовыход для дисплея. Таким образом, вы используете встроенную графику для дисплея и графический процессор для отладки.

Для этого вам необходимо:

  • Перейдите в BIOS и измените основной адаптер дисплея на "Встроенный" (это зависит от производителя)
  • Физически подключите ваш дисплей к выходному каналу встроенного дисплея
  • Перезагрузите и запустите Nsight

Если вы используете систему без встроенной графики, то вам не повезло!

Этот парень смог запустить его в Windows с Visual Studio и плагином Nsight.

PS Вам, вероятно, потребуется отредактировать ваш xorg.conf, чтобы X использовал встроенную графику вместо вашего графического процессора Nvidia.

Другие вопросы по тегам