I apologize in advance if I am just missing some fundamental resource or my search engine abilities have let me down but I have looked for a while and have never found anything to answer the following question.
Does anyone know where you could find a list of NVIDIA GPUs and the minimum version of CUDA they support?
Currently, I have to go to a card’s webpage, open each of their ‘Product Brief’ PDFs, go to the ‘Product Specifications’ section, look at ‘Table 3. Software Specifications’, and look at the ‘NVIDIA CUDA Support’ specification. See below for a couple of specifications from some cards’ ‘NVIDIA CUDA Support’ Specification:
Below are two example scenarios where having a resource like this would prove useful.
I am specifying or assembling hardware that will need to run a piece of software but it only supports CUDA 11.8 and their is currently no known roadmap to move to CUDA 12.0 or later I could look to see what GPU cards that support CUDA 11.8.
You have an x86 environment with L40 GPUs, L40S GPUs, and H100 GPUs and you wish to compile software once that will run on all of the GPUs. I would think that the H100 (11.8+) would need a more recent CUDA version than the L40S (12.2+) or the L40 (12.0+) but in fact the L40S has the highest minimum required CUDA version of 12.2 or later.
Does this resource exist? Am I missing something really obvious?
Thank you for taking the time to read and let me know if you have any questions
If you know the compute capability of a GPU, you can find the minimum necessary CUDA version by looking at the table here.
The compute capabilities of those GPUs (can be discovered via deviceQuery) are:
H100 - 9.0
L40, L40S - 8.9
A100 - 8.0
A40 - 8.6
Looking at that table, then, we see the earliest CUDA version that supported cc8.0 is CUDA 11.0. The earliest version that supported cc8.6 is CUDA 11.1. The earliest CUDA version that supported either cc8.9 or cc9.0 is CUDA 11.8
For older GPUs you can also find the last CUDA version that supported that compute capability. For example, if you had a cc 3.5 GPU, you could determine that CUDA 11.x supports that GPU (still) whereas CUDA 12.x does not.
I acknowledge this is not a perfectly on-target answer to your question. I don’t know of a such a table/list. A list of GPU compute capabilities is here, but it is not always perfectly up-to-date (i.e. you may find omissions.) And if you have the GPU at hand/installed, you can find its compute capability via deviceQuerysample app.
I’m sure you may notice that there are discrepancies between my list and yours. For example your list indicates CUDA 12.2 minimum for L40S. This is a statement about the driver level CUDA API. By that I mean that each GPU also has its own minimum GPU driver version. I for one do not try to keep track of this, but instead simply offer the advice to install the latest driver. The latest currently available driver will work on all the GPUs you mention, and using a “CUDA 12.2” driver e.g. something like an R535 driver will not prevent you from using e.g. CUDA 11.8. This is a standard compatibility path in CUDA: newer drivers support older CUDA toolkit versions.
And when it comes to a software stack “needing CUDA 11.8”, that is primarily a statement about the necessary CUDA toolkit version (i.e. the runtime API version), not a required driver version. The driver simply needs to be new enough to support the specified CUDA version for the particular software stack. A newer driver will not preclude operation.
Yeah I was hoping for a straightforward authoritative list of CUDA versions supported by various GPUs but it sounds like that does not currently exist. It would be great if in the future NVIDIA might have more documentation in this regard.
It sort of threw me when the L40 and L40S have a lower cc than the H100 but need a newer version of CUDA.