Как отладить код ядра CUDA с помощью Visual Studio 2008? - PullRequest
8 голосов
/ 28 октября 2010

Привет, я использую Visual Studio 2008 с CUDA 3.2.Я пытаюсь выполнить отладку в функцию с такой подписью:

 MatrixMultiplication_Kernel<<<dimGrid, dimBlock>>>(Md, Nd, Pd, Width);

Я могу войти в функцию, однако, когда я попадаю в функцию, она не позволяет мне перешагнуть какой-либо код и говорит мнечто источник недоступен.Кто-нибудь знает, как правильно отладить это?

Спасибо!

Ответы [ 4 ]

12 голосов
/ 08 июня 2012

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

Думаю, я обновлю это, так как предыдущие ответы больше не верны (вам больше не нужны 2 графических процессора), и это на некоторое время отправило меня в неправильном направлении.

6 голосов
/ 30 октября 2010

Обновление: Parallel Nsight теперь бесплатен и поддерживает отладку только с одним графическим процессором в вашей системе.

Для отладки кода устройства в Visual Studio вам потребуется Parallel Nsight . Стандартная версия free и предлагает необходимую отладку, а также профилирование кода устройства.

Если вы хотите выполнить отладку на одном компьютере, вам понадобятся два графических процессора (поскольку графический процессор, на котором выполняется код, будет остановлен, когда достигнет точки останова, и, следовательно, ваш дисплей также заблокируется). Тем не менее, они не обязательно должны быть высокопроизводительными графическими процессорами, подойдет все, начиная с G92 (включая большинство графических процессоров Fermi, перечисленных здесь здесь ).

1 голос
/ 29 октября 2010

Используете ли вы Nsight ?Vanilla Visual Studio не может войти в код устройства, но с Nsight это возможно.К сожалению, ограничения модели драйвера устройства Windows означают некоторые серьезные ограничения.Раньше для отладки требовалось две машины.Целевая машина запускала код CUDA на своем графическом процессоре и должна была использовать драйвер TCC.Хост-машина запускает Visual Studio и контролирует цель.Кажется, теперь можно отлаживать код CUDA на одной и той же машине, если у вас есть два графических процессора, один для вычислений и один для отображения.Существует ряд других проблем, упомянутых в руководстве пользователя .

. Это может быть неприемлемым ответом, но: если вы можете скомпилировать свой код в Linux, вы можете использовать cuda-gdbотлаживать ядра.cuda-gdb является частью набора инструментов Linux CUDA.

0 голосов
/ 28 октября 2010

Вы не можете отлаживать код ядра CUDA, используя Visual Studio. Visual studio может отлаживать только те программы, которые работают на процессоре.

На самом деле, я не думаю, что вы можете больше отлаживать код ядра CUDA в Windows. Раньше в CUDA был режим эмуляции хоста, но он был удален в 3.0. Единственными доступными инструментами отладки являются cuda-gdb и ocelot, и, насколько мне известно, ни один из них не поддерживает Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...