내 문제는 다음과 같습니다. one. 가장 간단한 CUDA 프로그램을 실행했지만 커널이 실행되지 않습니다. 그러나 문제가없는 여러 파일 (다른 사람으로부터 가져온 파일)로 구성된 복잡한 CUDA 프로젝트를 실행할 수 있으므로 내 CUDA 설치가 괜찮은 것으로 확신합니다. 이 프로젝트에서, 컴파일과 링크는 많은 플래그를 가진 메이크 파일을 통해 수행됩니다. 문제는 컴파일하는 동안 사용할 올바른 플래그라고 생각합니다. 이러한 프로그램 nvcc -arch=sm_20 -lcudart test.cu
(리눅스 시스템에서 실행) :CUDA 커널이 실행되지 않습니다.
__global__ void myKernel()
{
cuPrintf("Hello, world from the device!\n");
}
int main()
{
cudaPrintfInit();
myKernel<<<1,10>>>();
cudaPrintfDisplay(stdout, true);
cudaPrintfEnd();
}
프로그램이 제대로 컴파일 단순히이 같은 명령을 사용합니다. cudaMemcpy() 작업을 추가하면 오류가 반환되지 않습니다. 커널이 시작되지 않는 이유에 대한 제안?
나는 계산 기능 2의 장치에 대해 그렇게 믿습니다.0 이상이면 간단히'printf'를 호출 할 수 있습니다. 또한 전화에서 오류 메시지가 있는지 확인하기 위해 오류 검사를 수행하려고 할 수 있습니다. – Bart
참고 : http://stackoverflow.com/questions/6565759/cuda-cuprintf-causes-unspecified-launch-failure –
또한 링크 된 질문의 첫 번째 메모를 기록해 두십시오. http://stackoverflow.com/ 질문/9519272/cuda-kernel-not-launching - 위의 코드에서 오류를 전혀 검사하지 않았습니다. 이러한 함수는 이유에 따라 상태를 반환합니다. –