다음을 통해 공유


Visual Studio CNTK 소스 코드 디버깅

CUDA 커널을 디버깅하는 단계는 다음과 같습니다.

  1. 여기의 지침에 따라 NVIDIA Nsight 설치
  2. "로컬 디버깅"에 대한 지침을 따릅니다.
  3. 환경 변수 NSIGHT_CUDA_DEBUGGER = 1을 설정합니다.
  4. Visual Studio 실행하고 Nsight 모니터를 관리자 권한으로 실행합니다.
  5. Nsight Monitor-Options-CUDA>>에서 "CUDA 연결에 이 모니터 사용"을 True로 설정합니다. Nsight를 다시 시작해야 할 수 있습니다. 관리자 권한으로 다시 실행합니다.
  6. Visual Studio Nsight-Options>로 이동하여 옵션이 Nsight 모니터의 옵션과 일치하는지 확인합니다(예: 포트가 동일). 특히 "보안 연결 설정"이 둘 다에서 동일한지 확인합니다.
  7. 솔루션 탐색기에서 MathCUDA 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성으로 이동합니다.
  8. 구성 속성 -> CUDA C/C++ -> 디바이스로 이동하고 GPU 디버그 정보 생성을 예로 설정합니다.
  9. 구성 속성 -> CUDA 링커 -> 일반으로 이동하고 GPU 디버그 정보 생성을 예로 설정합니다.
  10. 커널에 중단점을 추가하고, CNTK 다시 빌드하고, 디버그하려는 모든 항목을 실행할 준비를 합니다.
  11. VS에서 디버그 -> 프로세스에 연결로 이동하고, 전송을 Nsight GPU 디버거로 설정하고, 한정자를 localhost로 설정합니다.
  12. CNTK 시작합니다.
  13. 새로 고침을 클릭하고 프로세스 목록에서 CNTK 찾은 다음 연결합니다. 중단점에 도달하면 커널에서 모든 지역 변수를 볼 수 있어야 합니다. threadIdx 및 blockIdx와 같은 CUDA 전역만 표시되는 경우 MathCUDA 속성에서 GPU 디버그 플래그를 제대로 설정하지 않은 것입니다.