2016-11-10 2 views
0

내가 하나 개 GTX 1080 (2 개 GPU를 포함) K80있는 시스템에서 다음 MATLAB 코드를 실행하고 몇 초다중 GPU 코드는

delete(gcp('nocreate')); 

parpool('local',2); 

spmd 

    gpuDevice(labindex+1) 

end 

reset(gpuDevice(2)) 

reset(gpuDevice(3)) 


parfor i=1:100 

    SingleGPUMatlabCode(i); 

end 

코드는 두 번째 주변에 대한 실행을위한 실행됩니다. 몇 초 후에 코드를 재실행 할 때. 나는 메시지를 얻을 : 나는 TdrDelay 증가했습니다

Error using parallel.gpu.CUDADevice/reset 
An unexpected error occurred during CUDA execution. The 
CUDA error was: 
unknown error 

Error in CreateDictionary 
reset(gpuDevice(2)) 

을하지만, 도움이되지 않았다.

답변

1

GPU 코드에서 장치의 오류가 발생합니다. 코드가 비동기 적으로 실행 중이기 때문에이 오류는 코드를 다시 실행할 때 다음 동기화 지점까지 선택되지 않습니다. 그 오류가 무엇인지 알기 위해서는 SingleGPUMatlabCode의 내용을 볼 필요가 있습니다. 아마도 할당 실패 또는 범위를 벗어난 액세스가있을 수 있습니다. 올바르게 처리되지 않은 오류는 다음 CUDA 작업에서 '알 수없는 오류'로 변환됩니다.

루프 내에 wait(gpuDevice)을 추가하여 오류 발생시기를 확인하십시오.

장치 2 또는 3 중 하나가 GTX1080 인 경우 파스칼 아키텍처에 대한 MATLAB의 제한된 지원 문제가있을 수 있습니다. https://www.mathworks.com/matlabcentral/answers/309235-can-i-use-my-nvidia-pascal-architecture-gpu-with-matlab-for-gpu-computing

Windows 시간 초과로 인해 발생하는 경우 몇 가지 두 번째 화면이 깜박입니다.