📅 2011-Jul-12 ⬩ ✍️ Ashwin Nanjappa ⬩ 🏷️ compute capability, cuda, errors, exceptions ⬩ 📚 Archive
Symptom
Your CUDA program executes, but the computed result is wrong. You run the program in Debug mode and it spews out a bunch of first-chance exceptions on cudaError_enum
and cudaError
of this form in the Output window:
First-chance exception at 0x74dcb727 in HelloCUDA.exe: Microsoft C++ exception: cudaError_enum at memory location 0x002af650..
First-chance exception at 0x74dcb727 in HelloCUDA.exe: Microsoft C++ exception: cudaError at memory location 0x002af4ec..
First-chance exception at 0x74dcb727 in HelloCUDA.exe: Microsoft C++ exception: [rethrow] at memory location 0x00000000..
Diagnosis
One of the reasons for this behaviour is if the device you are using cannot support the compute capability the program was compiled for. Ideally, such a program should be able to detect the device capability, compare and exit with a meaningful error. I have no idea why NVIDIA does not do this.
Anyway, if your device is of compute capability 1.1 and the program was compiled for compute capability 2.0, that is sm_20
GPU architecture, then it can result in such silent failures. Recompile the program for the compute capability of your device and the error should be gone.
Tried with: CUDA 4.0