Install Tensorflow GPU 2.11 + CUDA 11.2 in WSL Ubuntu 22.04/20.04
=
###### tags: `Note`
1. Uninstall the old version
```bash=
$ sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*" "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*"
$ sudo rm -r /usr/local/cuda-X.X
```
2. Install CUDA tool kit
Check [CUDA on WSL User Guide](https://docs.nvidia.com/cuda/wsl-user-guide/index.html) first because version may vary.
```bash=
$ cd ~
$ sudo apt-key del 7fa2af80
$ wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
$ sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
$ wget https://developer.download.nvidia.com/compute/cuda/11.2.2/local_installers/cuda-repo-wsl-ubuntu-11-2-local_11.2.2-1_amd64.deb
$ sudo dpkg -i cuda-repo-wsl-ubuntu-11-2-local_11.2.2-1_amd64.deb
$ sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-2-local/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get -y install cuda
$ export PATH=/usr/local/cuda-11.2/bin:$PATH
$ export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH
```
3. Install cuDNN
Check [NVIDIA cuDNN Documentation](https://docs.nvidia.com/deeplearning/cudnn/latest/installation/linux.html) first because version may vary.
```bash= !
$ sudo apt-get install zlib1g
$ tar -xvf cudnn-11.2-linux-x64-v8.1.0.77.tgz
$ sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.2/include
$ sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-11.2/lib64
$ sudo chmod a+r /usr/local/cuda-11.2/include/cudnn*.h /usr/local/cuda-11.2/lib64/libcudnn*
```
4. Install Tensorflow
```bash=
$ conda create -n myenv python=3.9
$ conda activate myenv
(myenv) $ conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
(myenv) $ pip install tensorflow-gpu==2.11
```
5. Check GPU availability
```bash=
(myenv) $ python
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()
```
Should return `true` if you're lucky.