To reduce the requirements for users’ software environments, we need to determine the minimum driver version required to run the program rather than always requiring users to update to the latest driver. Previously, we determined the minimum required driver version based on the CUDA features we used, which dictated the minimum CUDA version. However, after encountering several compiler bugs, I believe a more reliable approach is to compile with different CUDA versions and test on machines with the corresponding driver versions.
It should be possible to install multiple CUDA versions on the same system. The current question is: how can we install multiple drivers on the same system and selectively run them?
It is possible to switch between multiple installed Linux kernels or also multiple operating systems on different disk drivers. So the detailed question should be, what files or kernel configurations have to minimally change for activating different driver versions or whether some standard way works, e.g.
There is the kernel module with the same name between versions. You would have to copy or mount a drive or directory with the version you would like during bootup-time.
Everything else installed by Nvidia. Shared libraries and so on.
Even if it is technically possible, if it is not officially supported (as Robert says), it involves a lot of manual work to set it up.
A driver install involves both userspace and kernelspace components. Certainly switching from one kernel image to another is going to affect the kernelspace components. But the userspace components are going to have to be kept in sync. As Curefab says
is indeed the question. I don’t have an answer or recipe for you, and I’ve never heard of anyone doing anything like this. It may be possible, I don’t know. Its certainly not typical.
The typical method to
is to install both versions, installing the later version last. That ensures the newer driver is in place, which will work with the older version. There is no need to
You simply enumerate the versions of CUDA you have tested with or support, and if the user has a proper install of one of those, things should work.