Compute 1.3 and invalid device function

Hello all,

I’m trying to write a kernel that requires the use of doubles for accuracy. To do this, I have a 280 and have specified -arch sm_13 on the compile line of nvcc. When I specify compute 1.3, the kernel doesn’t execute quoting “invalid device function”… but when I specify sm_11, the kernel runs fine but returns nonsense due to the accuracy problems I assume.

To double check that it wasn’t my particular function, I’ve tested it using a blank kernel, i.e.

global void TheBestKernelEverRunOnAGPU() { int x=0; }

but this one also only runs when specifying sm_11 instead of sm_13. Any ideas?

Cheers,
-Matt

Ahhh, I think I found the solution. Somehow, when I call cudaGetDeviceCount, it returns a device #0 that is in fact not CUDA ready (so I think) named nForce 780a SLI which I presume has to do with the chipset. Setting device to #1, the GTX 280 that is next on the list allows me to compile with -arch sm_13 and run the kernel. Hope this helps someone.

Cheers,
-Matt

780a supports CUDA, but not Compute 1.3.