CUDA runtime version and CUDA driver version - what's the difference?

CUDA Runtime API provides functions

  • cudaRuntimeGetVersion() and
  • cudaDriverGetVersion()

(see the detailed description here ). I expected the first one to give me “8.0” (for CUDA 8.0), and the second one to get the same line as when studying the kernel module of the nVIDIA GPU driver, for example

 modinfo nvidia | grep "^version:" | sed 's/^version: *//;' 

which in my system is 367.57 .

Now, the first call gives me 8000 - well, just a weird way of saying 8.0, I think; but the second API call also gives me 8000 . So what do they both mean?

The runtime API documentation I referenced does not seem to explain this.

+14
source share
1 answer

The CUDA execution version indicates CUDA compatibility (e.g. version) relative to the installed cudart library (CUDA runtime).

The CUDA driver version (as reported here) reports the same information regarding the driver.

This refers to the driver compatibility model in CUDA. As I am sure, you know that a specific version of the CUDA toolkit (for example, the CUDA runtime library version, nvcc compiler version, etc.) requires a certain minimum driver level for proper use . codes compiled using this toolkit.

The CUDA driver version (as described here) effectively communicates which CUDA versions can be supported by a particular installed driver.

As you have already discovered, it does not report the actual numbered version of the driver.

+10
source

Source: https://habr.com/ru/post/1259724/


All Articles