Keeping up with the TensorFlow GPU training environment.

There are at least 5 dependencies here.

  1. Software dependency on TensorFlow version.
  2. TensorFlow dependency on python version.
  3. TensorFlow dependency on cuda and cuDNN
  4. Cuda dependency on NVidia drivers.
  5. NVidia driver dependency on NVidia hardware.

Software Dependency

Starting with an (opensource) software install, the typical method calls for installation of various support frameworks in particular TensorFlow. Assuming pip rather than anaconda

pip install tensorflow_gpu

Usually the required version of cuda is that version that was the most up-to-date version when reference tensorflow is compiled.

Tensorflow python requirements

*Python version 3.8+ is supported only by TensorFlow 2.0+
*Python version 3.7 is supported by TensorFlow 1.15.x

Cuda Library Requirements of TensorFlow

*TensorFlow 2.0 requires cuda 10.2
*TensorFlow 1.15.x requires cuda 10.0
*TensorFlow 1.12.x requires cuda 9.2

NN Support Library (cuDNN) Depencies

Likewise there is a cuDNN, cuda set of dependencies. Typically there will be multiple compatible versions, each one is a separate download available from the NVidia developer website (see below); additionally so are the install instructions

*cuda version 10.2 is only compatible with cuDNN version 7.6.5
*cuda versions 10.1, 10.0, 9.2, 9.0 support cuDNN versions 7.6.5, 7.6.4, 7.6.3, 7.6.2, 7.6.1 7.6.0, 7.5.1, 7.5.0
*cuda versions 10.0, 9.2, 9.0 support cuDNN versions 7.4.2, 7.4.1, 7.3.1, 7.3.0
*cuda versions 9.2, 9.0, 8.0 support cuDNN versions 7.1.4, 7.1.3, 7.1.2
*cuda versions 9.1, 9.0, 8.0 supports cuDNN version 7.0.5
*cuda version 9.0 supports cuDNN version 7.0.4
*cuda versions 8.0, 7.5 support cuDNN versions 6.0, 5.1, 5.0
*cuda 7.0 and later supports cuDNN versions 4 and 3
*cuda 6.5 and later supports cuDNN version 2

Cuda NVidia driver compatibility and driver-hardware compatibility

Finally, different versions of the cuda library require different versions of the NVidia drivers while each driver requires a minimum hardware architecture. Generally newer libraries require newer hardware as they leverage newer hardware capabilities. Refer to the NVidia cuda compatibility page for details.