cuCtxGetApiVersion and cuDriverGetVersion need explanation on the output

Hi. I wonder what is the meaning of the values returned by cuCtxGetApiVersion and cuDriverGetVersion functions ?

I’m compiling against 4.0 runtime, and cuCtxGetApiVersion returns 3020, and cuDriverGetVersion returns 4000.

Why api version is 3.20 and not 4.0 (as far as I can understand these values)?

You are using an IDE, arent you? Check your build configuration again.

What exactly should I check ?

Are you using Visual Studio? I’m not certain what exactly you need to check but here’s a list of things to do:

  1. Check CustomBuildRules and ensure that the 4.0 rule is selected instead of the 3.2 one
  2. Check build properties and look at the build commandline
  3. The commandline found in 2 will show you where the nvcc being used is. Run the nvcc at that address with the argument --version to confirm the nvcc is 4.0

I’m using driver api. There is no setup besides pointing the header include path to the sdk and linking with cuda.lib.

You are not linking with the correct cuda.lib

You were using 3.2 and then did an update, right? It seems you did not update the environment variables containing the path of nvcc and the libraries.