Как запустить отладочную версию проекта в nsight командой optirun?

Я писал простую программу cuda (я студент, поэтому мне нужно попрактиковаться), и дело в том, что я могу скомпилировать ее с помощью nvcc из терминала (используя Kubuntu 12.04LTS), а затем выполнить ее с помощью optirun ./a.out (хардвер это geforce gt 525m на dell inspiron) и все работает нормально. Основная проблема в том, что я ничего не могу сделать из Nsight. Когда я пытаюсь запустить отладочную версию кода, появляется сообщение «Ошибка запуска! Двоичные файлы не найдены!». Я думаю, что речь идет о запуске команды с помощью optirun, но я не уверен. Есть ли подобный опыт? Спасибо, за помощь заранее люди. :)


person Ognjen Kocic    schedule 28.11.2012    source источник
comment
В nsight в разделе Project...Build Configurations...Set Active выбрано Debug или Release? Какую команду сборки вы используете для сборки своего проекта? Какую команду вы используете для запуска отладочной версии?   -  person Robert Crovella    schedule 28.11.2012
comment
Установлена ​​отладочная версия. :) Я не уверен, что вы имеете в виду. :D Я запускаю его, нажав зеленую кнопку воспроизведения, и он работает как локальное приложение c/c++, и теперь я думаю, что это может быть проблемой. Но я не знаю, как его правильно настроить. Можете ли вы помочь мне с этим? :)   -  person Ognjen Kocic    schedule 28.11.2012
comment
что произойдет, если вы выполните Project...Clean, а затем Project...Build Project, а затем Run...Debug?   -  person Robert Crovella    schedule 28.11.2012
comment
Большое спасибо. Раньше я не использовал IDE для C (только Java) и всегда сам печатал Makefile, поэтому я никогда не думал, что нажатие зеленого старта не приведет к команде make. :) Это была глупая ошибка, и я прошу прощения, что прерываю вас. :) Спасибо еще раз.   -  person Ognjen Kocic    schedule 28.11.2012
comment
Для меня нажатие зеленой кнопки запуска делает выполнение команды make (с последующим запуском кода). Вы можете попробовать это и посмотреть окно состояния внизу. В качестве альтернативы, чтобы убедиться в этом, попробуйте Project...Clean, а затем нажмите зеленую кнопку запуска. Я точно не знаю, в чем проблема в данном случае. Однако я думаю, что нажатие зеленой кнопки не запускает режим отладки. Режим отладки (т. е. запуск отладчика) и запуск отладочной версии проекта — это две немного разные вещи.   -  person Robert Crovella    schedule 28.11.2012


Ответы (3)


Поскольку это был первый пост, который я нашел при поиске «nsight optirun», я просто хотел записать шаги, которые я предпринял, чтобы заставить его работать на меня.

  1. Выберите Выполнить -> Конфигурации отладки -> Отладчик.

  2. Найдите текстовое поле для исполняемого файла CUDA GDB (в моем случае оно было установлено на «${cuda_bin}/cuda-gdb»)

  3. Добавьте «optirun --no-xorg», в моем случае это было «optirun --no-xorg ${cuda_bin}/cuda-gdb».

Опция «--no-xorg» может быть необязательной или даже контрпродуктивной, если у вас есть окно OpenGL, поскольку она предотвращает появление чего-либо из этого. Однако для моего научного кода это необходимо, так как это не позволяет мне столкнуться с тайм-аутами ядра.

Удачной охоты на жуков.

person Azrael3000    schedule 03.01.2014

  1. Мы протестировали Nsight на системах Optimus без optirun — см. «Установка набора инструментов cuda» в Начало работы с CUDA Toolkit при использовании набора инструментов CUDA в системе Optimus. Мы не пробовали optirun с Nsight EE.
  2. Если вам по-прежнему нужно использовать optirun для отладки, вы можете попробовать создать сценарий оболочки, который использует optirun для запуска cuda-gdb, и установить этот сценарий оболочки как исполняемый файл cuda-gdb в свойствах конфигурации отладки.
person Eugene    schedule 28.11.2012

Самое простое, что можно сделать, это запустить eclipse с помощью optirun, который также будет правильно запускать ваше приложение.

person Eri    schedule 06.01.2013