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