2013-02-27 4 views
0

저는 NSIGHT와 CUDA를 처음 사용합니다. 내 CUDA 커널 코드 안에 중단 점을 설정하려고했지만 중단 점은 디버깅 할 특정 줄이 아닌 커널 끝에서 설정됩니다.CUDA 커널에서 중단 점을 설정할 수 없습니다.

  • NSIGHT 2.2 및 CUDA 4.2와 함께 VS2010 (MFC 프로젝트)을 사용하고 있습니다.
  • 디버그 모드에서 컴파일 중입니다.
  • "StratUp 프로젝트"가 아닌 프로젝트에서 CUDA를 사용하고 있습니다.
  • 나는 "예 (-g)"
  • 내가 "장치 디버그 정보 생성"을 사용하고와 "예 (-G)"

내가 가진 "호스트 디버그 정보 생성"을 사용하고 있습니다 현재 메뉴 -> Nsight -> CUDA 디버깅 시작을 통해 프로그램을 실행 중입니다. "StartUp project"인 다른 프로젝트에서 중단 점을 설정하려고하면 성공합니다. 전체 커널에 비해 특정 행에서 중단 점을 얻는 방법에 대한 제안 사항이 있습니까?

+1

idoo CUDA Info> CUDA Info> CUDA Info 1)를 열어서 Debug> Break All을 실행했다면 CUDA Info 윈도우를 열어서 (CUDA Info> CUDA Info 1) 모듈에 대한 ool 창 유효한 모듈을 보시겠습니까? CUDA SDK 샘플 중 하나에서 중단 점을 누를 수 있습니까? –

+1

장치 디버그 정보로 컴파일 하시겠습니까? (nvcc에 대한 -G 옵션) – alrikai

+0

예, 있습니다. "예 (-g)"와 함께 "호스트 디버그 정보 생성"을 사용하고 있습니다. "예 (-G)"와 함께 "Generate Device Debug Information"을 사용하고 있습니다. – idoo

답변

1

커널을 활성화하는 데 너무 많은 스레드 (256X256)를 사용했습니다. dim3 스레드 (256256) (커널 < < < ...,

-2

것이 중요하다 >>> 스레드는 CUDA를 디버깅 할 때 경우, 디바이스 코드에 중단 점 설정이 제대로 작동하지 않습니다에 코어 수 귀하 CUDA 쓰레드 수가 코어 수로 균등하게 나눌 수없는 경우 일부 코어는 마지막 반복에서 장치 코드 중단 점에 도달하지 않습니다.

+2

정말, 당신의 근원은 무엇입니까? – Madhatter

관련 문제