Keeping up with the TensorFlow GPU training environment.
There are at least 5 dependencies here.
- Software dependency on TensorFlow version.
- TensorFlow dependency on python version.
- TensorFlow dependency on
cuda
andcuDNN
- Cuda dependency on NVidia drivers.
- 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.