Find supported GPU - cuda

I want to know if the latest CUDA version, which is 8.0, supports the GPUs in my computer, which are GeForce GTX 970 and Quadro K4200 (a dual-GPU system); I couldn't find the info online.
In general, how to find if a CUDA version, especially the newly released version, supports a specific Nvidia GPU?
Thanks!

In general, how to find if a CUDA version, especially the newly released version, supports a specific Nvidia GPU?
All CUDA versions from CUDA 7.0 to CUDA 8.0 support GPUs that have a compute capability of 2.0 or higher. Both of your GPUs are in this category.
Prior to CUDA 7.0, some older GPUs were supported also. You can find details of that here.
Note that CUDA 8.0 has announced that development for compute capability 2.0 and 2.1 is deprecated, meaning that support for these (Fermi) GPUs may be dropped in a future CUDA release.
In general, a list of currently supported CUDA GPUs and their compute capabilities is maintained by NVIDIA here although the list occasionally has omissions for very new GPUs just released.

Related

Nsight Compute says: "Profiling is not supported on this device" - why?

I have a machine with an NVIDA GTX 1050 Ti GPU (compute capability 6.1), and am trying to profile a kernel in a program I built with CUDA 11.4. My OS distribution is Devuan GNU/Linux 4 Chimaera (~= Debian 11 Bullseye).
NSight Compute starts my program, and shows me API call after API call, but when I get to the first kernel launch, it gives me an error message in the Details column of the API call listing:
Error: Profiling is not supported on this device
Why? What's wrong with my device? Is it a permissions issue?
tl;dr: Nsight Compute no longer supports Pascal GPUs.
Nsight Compute used to support Pascal-microarchitecture GPUs (Compute Capability 6.x) - up until version 2019.5.1. Beginning with 2020, Nsight Compute dropped support for Pascal.
If you're wondering why that is - no reason or justification was given to my knowledge (see also the quote below). This is especially puzzling, or annoying, given the short period of time between the release of post-Pascal GPUs and this dropping of support (as little as 1.5 years if you look at consumer GTX cards).
On the other hand, you may still use the NVIDIA Visual Profiler tool with Pascal cards, so they did throw you entirely under the bus. And you can also download and use Nsight Computer 2019.5.1.
To quote an NVIDIA moderator's statement on the matter on the NVIDIA developer forums:
Pascal support was deprecated, then dropped from Nsight Compute after Nsight Compute 2019.5.1. The profiling tools that support Pascal in the CUDA Toolkit 11.1 and later are nvprof and visual profiler.

Pytorch Hardware Requirement

What is the minimum Computation Capability required by the latest PyTorch version?
I have Nvidia Geforce 820M with computation capability 2.1. How can I run PyTorch models on my GPU (if it doesn't support naturally)
Looking at this page, PyTorch (even the somewhat oldest versions) support CUDA upwards from version 7.5. Whereas, looking at this page, CUDA 7.5 requires minimum Compute Capability 2.0. So, on paper, your machine should support some older version of PyTorch which allows CUDA 7.5 or preferably 8.0 (as of writing this answer, the latest version uses minimum CUDA 9.2).
However, PyTorch also requires cuDNN. So, cuDNN 6.0 works for CUDA 7.5. But cuDNN 6.0 requires Compute Capability of 3.0. So, mostly, PyTorch won't work on your machine. (Thanks for pointing out the cuDNN part Robert Crovella)

NVIDIA driver - what does the 'toolkit' option mean?

Not a duplicate of this question
When downloading NVIDIA GPU drivers, I've also been asked for some time which CUDA toolkit I prefer.
Now, what does this choice imply when downloading a driver?
As far as I know, different CUDA toolkits have different minimum drivers supporting them (also stated in the release notes), but what does this choice at the driver download page imply?
Generally speaking, there is a backwards compatibility strategy for drivers with respect to CUDA toolkits. For example, the latest driver should work with any older CUDA toolkit. An older driver may not work with a newer CUDA toolkit.
That is a general statement of compatibility. You can find it expressed here (e.g. table 1) also.
However, each CUDA toolkit ships with a particular driver branch. For example CUDA 10.1 ships with a 418.xx driver branch (this corresponds to the version of the GPU driver that is bundled with the CUDA toolkit installer).
So even though a 430.xx driver is compatible with and should work with CUDA 10.1, that isn't actually the driver branch that ships with CUDA 10.1
The dropdown allows you to select a driver that is in the same branch as the driver that particular CUDA toolkit was shipped with and has the highest test coverage with.

Caffe using GPU with NVidia Quadro 2200

I'm using the deep learning framework Caffe on a Ubuntu 14.04 machine. I compiled CAFE with CPU_ONLY option, i.e. I disabled GPU and CUDA usage. I have an NVidia Quadro K2200 graphics card and CUDA version 5.5.
I would like to know if it is possible to use Caffe with CUDA enabled with my GPU. On NVidia page, it is written that Quadro K2200 has a compute capability of 5.0. Does it mean that I can use it with CUDA versions up to release 5.0? When it is possible to use Caffe with GPU-enabled with Quadro K2200, how can I choose the appropriate CUDA version for that?
CUDA version is not the same thing as Compute Capability. For one, CUDA is current (7.5 prerelease), while CC is only at 5.2. K2200 supports CC 5.0.
The difference:
CUDA version means the library/toolkit/SDK/etc version. You should always use the highest one available.
Compute Capability is your GPU's capability to perform certain instructions, etc. Every CUDA function has a minimum CC requirement. When you write a CUDA program, it's CC requirement is the maximum of the requirements of all the features you used.
That said, I've no idea what Caffe is, but a quick search shows they require CC of 2.0, so you should be good to go. CC 5.0 is pretty recent, so very few things won't work on it.

Is it possible for lower CUDA toolkit version with higher driver version?

The hardware seems to newer than the highest-support hardware of the driver version of the lower toolkit. Is it possible for this newer hardware with the newer driver, but with the lower cuda toolkit?
For example,
the hardware is NVIDIA GTS 450,
the cuda toolkit is cuda 2.3, because the driver of cuda 2.3 seems not to support the GTS 450, so I want to install a newer driver, but the toolkit is still cuda 2.3.
Does this work?
In general, older CUDA toolkits should be compatible with newer GPU drivers. CUDA toolkit 2.3 is very old however, so I don't know what other issues you may run into. I would suggest updating to a newer CUDA toolkit as well.