CUDA_ERROR_NO_BINARY_FOR_GPU when compiling

Hi everyone,

I’m writing a CUDA accelerated Java program using JCuda for my undergrad project however I’ve hit a brick wall in terms of getting it to compile.

In short I’m receiving this error on compilation of the CUDA code by JCuda: CUDA_ERROR_NO_BINARY_FOR_GPU From what I read here and else where, I’ve tried compiling to a higher architecture level, namely sm_30, but it still persists.

Could anyone point me to an FAQ of some kind for this error or suggest ways I could get around it?

Thanks

Matt

I think this error is actually arising during the (attempt to) run the compiled code, rather than compiling the code (which all may be happening on the fly under JCuda).

What GPU are you actually trying to run this code on, and how are you specifying the architecture to compile for?

Thanks for the reply,

I’m running it on a GTX 670, compiling using “arch=sm_30” in JCuda by adding an argument to the create method which is forwarded to the nvcc compiler (http://www.jcuda.org/utilities/doc/jcuda/utils/KernelLauncher.html#create(java.lang.String, java.lang.String, java.lang.String…)). I’ve tried this before with a basic helloworld test and it seemed to run fine.

are you using “arch=sm_30” or “-arch=sm_30” ?

“-arch=sm_30” sorry, mistyped.