임의의 CUDA 응용 프로그램을 디버깅하려고 시도합니다. 엔비디아 GPU 컴퓨팅 SDK 4.0에서 행렬 곱셈 또는 convolutionSeparable 샘플, 난 항상 유사한 출력을 얻을 :CUDA Nvidia NSight 디버깅 : "CUDA 그리드 실행 실패"
Parallel Nsight Debug
CUDA grid launch failed: CUcontext: 2059192 CUmodule: 348912936 Function: _Z9matrixMulILi32EEvPfS0_S0_ii
……
……
그리고 다음과 같은 내용으로 파일은 나타나지된다
Parallel Nsight CUDA Debugger
응용 프로그램 무관 Nexus CUDA 디버거로 디버깅 한 후 관련 소스를 찾을 수 없습니다. 이는 여러 가지 이유 때문일 수 있습니다.
1) CUDA가 초기화되지 않았습니다. cuInit가 호출되었는지 확인하고 성공적인 결과를 반환합니다.
2) CUDA 컨텍스트가 생성되지 않았습니다. 컨텍스트가 만들어지면 컨텍스트에서 메모리를 검사 할 수 있습니다. 각 컨텍스트 은 Visual Studio 스레드 뷰에서 단일 "스레드"로 표시됩니다. (Debug | Windows | Threads)
3) 어떤 상황에서도 활성 CUDA 그리드가 없습니다. 중단 점을 맞추기 위해 그리드를 실행해야합니다.
4) Visual Studio 스레드 뷰에서 "기본 컨텍스트"를 선택했습니다. 이 컨텍스트는 사용 가능한 실제 CUDA 컨텍스트가 없을 때 표시되는 자리 표시 자입니다. 실제 데이터를 표시하지 않습니다.
5) CUDA 모듈이로드되지 않았습니다. Visual Studio 모듈보기를 표시하여 각 CUDA 컨텍스트에로드 된 모듈을 확인할 수 있습니다. (Debug | Windows | Modules)
6)로드 된 .cubin에 대한 기호가 없습니다. 모듈을 디버그 정보로 빌드해야합니다. 구축 할 때 -G0 스위치를 지정하십시오.
7) 커널을 실행하는 동안 그리드 시작에 실패했습니다.
해당 ".cu"파일 내의 각 중단 점은 실행 중에 완전히 무시됩니다. Nsight 디버깅없이 응용 프로그램을 실행할 때 프로그램은 아무 문제없이 실행됩니다.
이 문제를 해결하려면 어떻게해야합니까?
내 설정 :
- 1xIntel GPU와 1 배 NV 570GTX, 나는 로컬 디버깅 옵션
- 윈 7 프로 64 비트
- 데브 봉투 : VS2008 또는 VS2010
- CUDA를 사용하려면 4.0 & 병렬 Nsight 2.0
- NV 드라이버 버전 : 285.38
- WPF를 사용할 수
- TDR이 비활성화되어 있습니다 Windows가 기본 모드에서 실행
- (NO 항공)
- 프로젝트 Propertys : CUDA는 런타임 API -> 위해 GPU> GPU 디버그 정보를 생성 -> 예 (-g0)
현재 내 디스플레이가 인텔 장치에 의해 구동되고 있습니다. 그렇지 않으면 다른 NSight 오류 메시지가 발생할 수 있습니다. 나는 이미 이것을 시도했기 때문에 나는 알고있다. 내가 아는 한, 추가로 임의의 그래픽 장치 하나가 필요합니다. 제 생각에는 의견이 분분합니다. – Impulse
@Impulse Parallel Nsight 샘플을 사용해 보셨습니까? (CUDA SDK 샘플과 반대)? – Tom
예, SDK 샘플을 사용해 보았습니다. matrixMul 샘플은 Parallel Nsight와 함께 제공됩니다. 이 특정 예를 들어 출력 : CUcontext : 46427088 CUmodule : 139,693,888 기능 : 병렬 Nsight 디버그 CUDA 그리드 발사는 실패 _Z9matrixMulPfS_S_ii – Impulse