NVIDIA Nsight Visual Studio Edition, похоже, не может одновременно отлаживать процессор (хост-код) и графический процессор (cuda-код). С помощью Nsight Eclipse Edition (или cuda-gdb) это довольно просто, например, вы можете «входить» в ядро CUDA из выполнения хоста. Как сделать то же самое с Visual Studio?Nvidia visual studio Nsight CPU и отладка GPU
ответ
Это говорит
Используйте отдельный экземпляр Visual Studio для отладки принимающей части целевого применения в. Если вы хотите отладить часть хоста вашего приложения CUDA во время присоединения отладчика CUDA, вы должны прикрепить с помощью другой экземпляр Visual Studio. Прикрепление того же экземпляра Visual Studio для отладки как части хоста, так и части устройства целевое приложение приведет к конфликтующим отладчикам. Результат заключается в том, что целевое приложение и отладчик CUDA зависают при , заблокированных операциями собственного отладчика.
Так отлаживать приложения CUDA вот шаги:
- Open Visual Studio (VS экземпляр # 1) и установить точку останова в ядре CUDA и нажмите кнопку "Start Debugging CUDA." Это запустит экземпляр приложения и остановится там, где u задает точку останова.
- Откройте еще один экземпляр Visual Studio (экземпляр VS # 2) (необходимо по какой-то причине запустить как admin) и присоединитесь к процессу, который вы начали на этапе 1.
- В экземпляре VS # 2 найдите файл, который вы хотите выполнить отладку вашего процессора и установить точку останова.
- В экземпляре VS # 1 продолжить выполнение (должно выпадать из текущего ядра CUDA). На этом этапе должна быть удалена точка останова CPU, установленная в экземпляре VS # 2.
Дополнительный кредит: Отладка приложения CUDA удаленно. Шаги:
- На целевой машине заправляют файл msvsmon.exe (удаленный отладчик) в качестве администратора. Это можно найти на C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ Удаленный отладчик \ x64.
- На главной машине (той, из которой вы хотите управлять отладкой) откройте VS и убедитесь, что отладчик Nsight указан на удаленном компьютере (Nsight User Properties> Launch> Connection Name). ПРИМЕЧАНИЕ. Монитор Nvidia Nsight должен работать на целевой машине, чтобы это работало.
- Выполните шаги 1 и 2 из предыдущего раздела (не удаленная отладка). На шаге 2 вам нужно будет указать удаленный компьютер для отладки процессора (Debug> Attach to Process> Qualifier должен быть установлен на имя целевого компьютера или IP-адрес).
- Прилагаются также не удаленные этапы отладки 3 и 4.
ПРИМЕЧАНИЕ: Это выглядит так, как если отладка удаленного CPU VS не столь способны, как его локальной отладки процессора.Например, когда вы переходите на переменные процессора, значения не отображаются так, как вы ожидали бы при локальной отладке.
STILL UNANSWERED: Можно ли отладить код хоста перед тем, как нажать точку останова CUDA? Похоже на большое ограничение, что вы можете только отлаживать код хоста после вашего первого ядра CUDA. Что делать, если вы хотите отладить код хоста перед первым ядром CUDA?
- 1. Отладка OpenCL с NVIDIA Nsight 2.1 и Visual Studio 2010
- 2. Отладка приложения с версией NSight Visual Studio
- 3. CUDA Nvidia NSight Отладка: «Сбой сетки CUDA не удался»
- 4. Отладка CUDA с NSight Visual Studio 2010
- 5. Отладка Nsight с использованием одного GPU
- 6. Visual Studio nVidia nsight change cuda toolkit version
- 7. Поддерживает ли Nsight Visual Studio версию NVIDIA Quadro K5100M
- 8. Отладка с Nsight делает .exe прекратить работу
- 9. NVIDIA Parallel Nsight Vs Visual Profiler
- 10. Создание проекта Android Nsight Tegra и исключения Visual Studio
- 11. NVidia Nsight Debugger - окно геометрии не работает
- 12. Не удается запустить Nvidia Nsight
- 13. Nvidia Визуальная демонстрирующая Profiler вычисления смещения GPU/CPU
- 14. Nvidia GPUDirect и захват камеры на GPU
- 15. OpenCL не может найти устройство GPU: NVIDIA GPU (Quadro K4000) + Visual Studio 2015
- 16. памяти на Nvidia GPU,
- 17. opengl with Nvidia gpu
- 18. Отладка и запуск Visual Studio
- 19. Пренебрегаемые контрольные точки при использовании nsight «Отладка пуска CUDA»
- 20. Как отлаживать (GLSL) шейдеры, используя Nsight?
- 21. wglGetCurrentContext синхронизирует GPU и CPU?
- 22. Отладка CUDA в NSight Eclipse в Linux
- 23. Преобразование проекта Nsight Eclipse в Visual Studio
- 24. Visual Studio Function Отладка
- 25. Visual Studio Отладка безумия!
- 26. Отладка Visual Studio Issue
- 27. Отладка в Visual Studio
- 28. Visual Studio Отладка
- 29. Код Visual Studio - отладка
- 30. Как объединить CPU и GPU в JavaCL?
В качестве обходного пути для «STILL UNANSWERED» вы можете сделать вызов отлаживаемого фиктивного ядра в качестве первого оператора в своем главном, поставить точку останова в ядре и затем прикрепить # 2 к запущенному процессу. Затем вы можете освободить точку останова в # 1, чтобы попасть в точку останова в любой строке кода ЦП в # 2. С ifdef на некотором флагом отладки вы можете легко отфильтровать этот фиктивный вызов ядра для версий выпуска или того, что вы предпочитаете в соответствии с контекстом. – Timmos