Backwards compatibility with new cards and older CUDA versions

I have a GTX 1660 card and am struggling to successfully install CUDA 9.1 on Centos 7. I’m using the archived versions but I can’t help but feel like the problem might be the backwards compatibility. Is this setup problematic?

GTX 1660 is from the Turing generation, compute capability 7.5

Formal support for this compute capability entered at the CUDA 10.0 cycle.

CUDA has a general forward-compatiblity capability, but this does not mean that every possible code is forward-compatible. The forward compatibility hinges largely on having PTX embedded in the binary, during the build cycle.

Therefore, it should be possible to install CUDA 9.1 and use it (up to the capabilities of CUDA 9.1) on a GTX 1660. Features introduced after CUDA 9.1 will not work, and no architecture-specific capabilities of cc7.5 will be usable/exposed. It will not be possible to compile for a cc7.5 target. Instead you would need to compile for an earlier target (e.g. 7.0) and include PTX in the build process.

All of this is predicated on having a proper, recent driver install. The drivers are not generally forward compatible, and you must install a recent driver that is compatible with your GPU.

https://docs.nvidia.com/deploy/cuda-compatibility/index.html

Excellent, thank you for the quick response time. So, the appropriate install for CUDA is to first install the driver (which I have successfully been able to do), and then install CUDA 9.1 from the archive download and installation manual? Is there a preference for the RPM or runtime version? Neither seem to be working for me but I continue to troubleshoot.

Yes, install a recent driver.

If you have a driver already installed, it should be no trouble to install a CUDA toolkit using the runfile installer. That should be nearly bulletproof, if you deselect the option to install the bundled driver.

The package manager installer method should also work when you already have the driver installed. In that case you would want to do something like:

sudo apt-get install cuda-toolkit-9-1 (Ubuntu)
(as root) yum install cuda-toolkit-9-1 (centos)

to skip the driver install. However this can still run into annoying package dependency issues, depending on the history and state of your machine.

If you have a recent driver installed separately, and the toolkit runfile installer proceeds without error, but CUDA is not functional, then it means your driver install is broken or was not done correctly. That has basically nothing to do with the runfile install of CUDA toolkit, assuming you deselect the option to install the bundled driver.