Reputation: 6958
I know that each CUDA toolkit has a minimum required driver, what I'm wondering is the following: suppose I'm loading each function pointer for each driver API function (e.g. cuInit
) via dlsym
from libcuda.so
. I use no runtime API and neither link against cudart
. My kernel uses virtual architectures to be JIT-ted at runtime (and the architecture is quite low, e.g. compute_30
so that I'm content with any kepler-and-above device).
Does the minimum driver required restriction still apply in my case?
Upvotes: 0
Views: 666
Reputation: 152143
Yes, there is still a minimum driver version requirement.
The GPU driver has a CUDA version that it is designed to be compatible with. This can be discovered in a variety of ways, one of which is to run the deviceQuery
(or deviceQueryDrv
) sample code.
Therefore a particular GPU driver will have a "compatibility" associated with a particular CUDA version.
In order to run correctly, Driver API codes will require an installed GPU Driver that is compatible with (i.e. has a CUDA compatibility version equal to or greater than) the CUDA version that the Driver API code was compiled against.
The CUDA/GPU Driver compatibility relationships, and the concept of forward compatibility, are similar to what is described in this question/answer.
To extend/generalize the ("forward") compatibility relationship statement from the previous answer, newer GPU Driver versions are generally compatible with older CUDA codes, whether those codes were compiled against the CUDA Runtime or CUDA Driver APIs.
Upvotes: 1