2014-02-24 3 views
0
  1. Visual Studio 2012 환경에서 cuPrintf를 사용하여 내 코드를 성공적으로 컴파일 할 수 있지만 컴파일 할 수는 없습니다. "volatile char *"는 "cudaMemcpyToSymbol"함수에서 "const void *"로 바꿀 수 없다고합니다.CUDA 및 cuPrintf에 관한 몇 가지 질문

  2. cuPrintf seem가 작동하지 않습니다. cuPrintf 기능이 커널 코드에서 실행되지 않습니다.

  3. nvcc export pdb file을 만드는 방법은 무엇입니까?

  4. 커널 기능에서 다른 디버깅 방법이 있습니까? 나는 단 하나의 노트북을 가지고있다. 당신은 인쇄 명령을 사용하여 커널에서 데이터를 인쇄 할 수 있습니다 (I가 출시 된 적이 알고 지금까지)

+0

당신이 MSVC에서 사용되는 NVCC 컴파일 라인을 게시 할 수 있습니까? 그리고 코드도 –

+0

더 높은 아키텍처에 컴파일 플래그를 넣고 일반 printf를 사용할 수 있습니까? – jmpyle771

답변

1

1 일, cuPrinft가되지 않습니다, 그러나 이것은 당신의 커널 디버깅이 매우 좋지 않습니다 방법입니다.

둘째, CUDA nvcc 컴파일러를 사용하여 컴파일하면 CUDA에 pdb 파일이 없습니다. 'g'및 'G'플래그가 표시 되어도 실행 시간이 크게 늘어날 수 있습니다.

3, The best way to debug kernels is using visual Nsight

+0

호스트 코드를 디버깅하려면 pdb 파일이 필요하고 VS를 사용하여 컴파일하면 pdb 파일을 생성 할 수 있습니다. Visual Nsight를 사용하지 않았기 때문에 cuPrint를 찾았습니다. 그러나 어쨌든 당신을 감사하십시오. – Cccmm002

+1

cuPrintf는 현재 출시 된 툴킷 (cuda 5.5)의 cuda 샘플 [simple printf] (http://docs.nvidia.com/cuda/cuda-samples/index.html#simpleprintf) 샘플 코드의 일부입니다. cuPrintf는 해당 샘플에서 cc <2.0 일 때 사용됩니다. 나는이 문맥에서 무엇을 비추천 적이라는 뜻인지 모르겠습니다. 그것은 샘플 코드입니다. –

+0

nsight를 실행 해 봅시다. cuprinf와 관련하여 노력할만한 가치가있는 디버거 도구입니다. 오래된 장치와 프로그래밍 옵션이없는 것보다 오래된 버전을 사용하는 것이 좋습니다. – TripleS

관련 문제