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

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

есть ли способ использовать NSight eclipse только с одним GPU для отладки? Я видел такие решения, как "sudo service lightdm stop" убить X, но это убивает NSight eclipse, так в чем же смысл?

Update: поскольку невозможно отлаживать с тем же GPU, который запускает X, я должен спросить: как можно использовать другой компьютер в своем доме сеть для "удаленного" доступа к Ubuntu таким образом, что рендеринг рабочего стола X будет выполняться гостевым компьютером, позволяя хосту GPU запускать отладчик?

3 ответов


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

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

EDIT: CUDA 5.5 и за его пределами теперь поддерживает возможность отладки на одном cc3.5 или выше GPU.


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


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

для этого надо:

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

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

этот парень здесь смог запустить его в Windows с помощью Visual studio и плагина Nsight.

P. S. Вы, вероятно, нужно отредактировать файл xorg.conf, чтобы X использовал встроенную графику вместо вашего NVIDIA GPU.