Tensorflow Install
Procedure to install the most recent tensorflow package compatible with your nvidia machine:
Make sure your nvidia drivers is up to date.
You can check that the Nvidia drivers is properly install with the command:
nvidia-smi
It should print something like this:
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 515.65.01 Driver Version: 515.65.01 CUDA Version: 11.7 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |===============================+======================+======================| | 0 NVIDIA GeForce ... Off | 00000000:01:00.0 Off | N/A | | N/A 44C P3 13W / N/A | 4MiB / 4096MiB | 0% Default | | | | N/A | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: | | GPU GI CI PID Type Process name GPU Memory | | ID ID Usage | |=============================================================================| | 0 N/A N/A 1090 G /usr/lib/xorg/Xorg 4MiB | +-----------------------------------------------------------------------------+
Check the most recent CUDA Drivers version you can install using this cuda link.
Now that you know the latest version of CUDA you can install, check which latest version of Tensorflow (GPU) you can install using this tf link.
Install the CUDA version you choose in section 3.
CUDA Download link: https://developer.nvidia.com/cuda-toolkit-archive CUDA Installation guide: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html
Warning
if you know your nvidia drivers matches with this CUDA version, when running the runfile installation of CUDA add
--toolkit
(sudo sh cuda_11.2.2_460.32.03_linux.run --toolkit
) in the install command to make sure nvidia drivers won’t be updated.You will need to update environment variables PATH and LD_LIBRARY_PATH in your .bashrc: (It is not mandatory to define these variable globally, you can also set them only when activating your conda environment, see below)
# These are symlinks ! be sure it point to the desired CUDA version you installed export PATH="/usr/local/cuda/bin:$PATH" export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH="/usr/local/cuda/include:$LD_LIBRARY_PATH"
You can check if CUDA is properly installed by running the command (won’t work if you prefer to define environment variables for conda only):
nvcc -V
Download the cuDNN version you choose in section 3.
cuDNN: https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html
tar -xf cudnn-linux-x86_64-*.tar.xz sudo cp cudnn-linux-x86_64-*/include/* /usr/local/cuda/include/ sudo cp cudnn-linux-x86_64-*/lib/* /usr/local/cuda/lib64/
Warning
You may encounter problem if you don’t have the official kernel version as cuDNN works with specific version of kernel: https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html. (In my case cuDNN 8.5 is properly working with kernel 5.19 although 5.15 version is officialy supported)
Install tensorflow on conda:
As of now, I’ve not being able to install tensorflow with GPU capability using conda:
conda install -c conda-forge tensorflow=2.9
(from v2.0, the tensorflow package already include gpu capbility). Using pip did work:pip install tensorflow-gpu==2.9 # If you want to define the environment variables only for the current conda environment conda env config vars set PATH="/usr/local/cuda/bin:$PATH" conda env config vars set LD_LIBRARY_PATH="/usr/local/cuda/lib64:/usr/local/cuda/include:$LD_LIBRARY_PATH"
You can check tensorflow properly detect your GPU using the command:
import tensorflow as tf tf.test.gpu_device_name()