2013-09-28 1 views
2

Я хотел бы спросить, как мы можем отлаживать ядро ​​cuda, которое вызывается из mexfunction с VS 2010 и Nsight. Я выполнил инструкции в http://http.developer.nvidia.com/NsightVisualStudio/2.2/Documentation/UserGuide/HTML/Content/Attach_CUDA_to_Process.htm, но кнопка attach не включена, чтобы прикрепить matlab.Отладка ядра cuda на mexfunction путем присоединения Matlab с отладчиком GPU Nsight

PS: Win 7 64x, Matlab 2011 x64, VS 2010, CUDA SDK 5.5 64x, Nsight 3,1 64x, GForce 9600.

enter image description here

+0

Обратите внимание, что тип CUDA не указан в столбце «Тип» в сторону строки Matlab. Это означает, что в этом процессе использование CUDA не признается. Во всяком случае, я пробовал рекомендации на веб-странице, которую вы цитировали, и у меня такая же проблема. Моя конфигурация - Win 7 64x, Matlab 2010a x64, VS 2010, CUDA 5.0 64x, Nsight 3.1 64x.Что мне не ясно из цитируемой процедуры, так это то, как Nsight должен распознавать использование CUDA перед тем, как обратиться к функции mex. Поэтому я установил точку останова перед обработкой ядра и попытался подключиться из той же/новой среды Visual Studio, но ничего не изменилось. – JackOLantern

+0

Для вашей справки этот пост [отладка файлов cuda в visual studio] (http://stackoverflow.com/questions/14386982/debugging-cuda-files-in-visual-studio) имеет ту же нерешенную проблему. – JackOLantern

+0

Взгляните на этот http://http.developer.nvidia.com/NsightVisualStudio/3.0/Documentation/UserGuide/HTML/Content/Attach_CUDA_to_Process.htm это не помогло мне, но это более близкая информация, которую я нашел актуальной для нашей проблемы , – Darkmoor

ответ

2
  1. Открыть Nsight Monitor Nsight Visual Studio Выпуск 3,1 - > Nsight монитор
  2. Перейти Параметры Nsight Monitor (слева панели задач) -> CUDA -> использовать этот монитор для CUDA присоединять -> истинного
  3. Добавить переменные окружения NSIGHT_CUDA_DEBUGGER = 1 через Настройки предварительной настройки -> Экологические переменные и добавьте вышеупомянутую переменную как в Пользователь и Система переменные в двух панелях.
  4. Запустите Matlab и Visual Studio и попробуйте подключить Matlab с отладчиком Nsight и определителем Имя компьютера и что это такое.

Протестировано на Matlab 2011a 64x и VS 2010 с SP1.

enter image description here

+0

Кажется, нет необходимости устанавливать 'NSIGHT_CUDA_DEBUGGER = 1' как переменную окружения _user_. Сделать его как переменной _system_ для меня достаточно. – JackOLantern

+0

Хорошо, спасибо, спасибо! – Darkmoor

1

Достаточно установить переменную окружения NSIGHT_CUDA_DEBUGGERтолько для MATLAB, так что вам не придется замедлить всю систему, имея каждый процесс крепиться. Цитирование документации NVIDIA Nsight:

Установка NSIGHT_CUDA_DEBUGGER=1 может ухудшить производительность приложения, поскольку отладчик выполнен резидентным. Эффект минимален на устройствах Tesla ™ и устройствах без головы; он наиболее серьезен на устройствах отображения с рабочим столом, где по необходимости может понадобиться сериализовать запуски, которые в противном случае были бы асинхронными. Поэтому не всегда желательно устанавливать NSIGHT_CUDA_DEBUGGER=1 на общесистемном или уровне пользователя.

Чтобы установить его в запущенном MATLAB сессии (и пощади остальной части вашей системы):

>> setenv('NSIGHT_CUDA_DEBUGGER','1') 

Hit Refresh или повторно выбрать Nsight GPU Debugger, и она работает:

enter image description here

Вам все еще нужно настроить Nsight для установки, но это одноразовая настройка:

enter image description here

Смежные вопросы