WSL2配置tensorflow GPU环境

前言

自tensorflow2.10版本后已不再支持windows本机环境了,而 Windows 10 19044 或更高版本上的 WSL2 支持具有 GPU 访问权限的 TensorFlow。这对应于 Windows 10 版本 21H2,即 2021 年 11 月的更新。所以你要是想用新一点的版本又想用GPU训练的话那就只能在WSL2里面装了。

WSL2说白了你可以理解为和windows共用一套文件系统的linux操作系统,它可以使用linux系统执行windows系统里面的文件,下面开始配置基于WSL2的tensorflow gpu环境,首先确认你有N卡,不要拿着核显或者A卡来搞这个,A卡不适用下面的教程。

安装WSL2

完整的安装步骤请参考安装 WSL | Microsoft Learn,官方的基本是最准的,这里介绍一种更简洁的安装方式,先打开控制面板,选择程序程序和功能,按下图选择

然后进Microsoft Store,搜索wsl,选一个你要的点击安装,它就自己安装好了,这里我安装的是ubuntu22.04LTS

接下来键盘按win+r,打开powershell,先输入wsl --update,更新内核,接着输入wsl进系统,开始进去会要你注册用户名和密码,自己输入注册就是,然后进系统,差不多就是这个界面。记住你的用户名

然后输入nvidia-smi看看可不可以看见N卡,有下面的显示就是可以,之后记住你的cuda version,后面安装的cuda版本一定要低于这个cuda version!,比如我的cuda version是12.7,那我安装的cuda版本就不能大于12.7,一定记住不要装错了

配置cuda和cuDNN环境

先刷新下系统,执行

sudo apt update && sudo apt upgrade

现在我们需要确定确定CUDA和cuDNN驱动版本的确定,在tf官网https://www.tensorflow.org/install/source的Linux/macOS下面,找到Tested build configurations下面Linux的GPU选项,如下图所示,按着你的cuda version版本去选,尽量选新一点的,比如我的是12.7版本的,那我就可以安装tensorflow-2.19.0版本的

之后去nvidia官网CUDA Toolkit 12.6 Update 2 Downloads | NVIDIA Developer,如果是其他版本就去这里找你要的版本CUDA Toolkit Archive | NVIDIA Developer,点进去后按下面的选择,Installer Type中不要选最后一个,第二个从网络安装比较考验你的网络质量,我就选第一个了

下面会有安装指令,一行一行执行它们

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/12.6.2/local_installers/cuda-repo-wsl-ubuntu-12-6-local_12.6.2-1_amd64.deb sudo dpkg -i cuda-repo-wsl-ubuntu-12-6-local_12.6.2-1_amd64.deb sudo cp /var/cuda-repo-wsl-ubuntu-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cuda-toolkit-12-6

完了输入

vim ~/.bashrc

在最下面输入这几句话,然后

注意第一行PATH的home后面那个字段是你的用户名,我的是yyf,你的要改你的,不要照抄

注意第二行CUDA_HOME最后一个数字是你的cuda版本,如果你安装的版本是12.6,那就按着下面的抄就是,如果你是12.3的,那最后一个数字应该是3

export PATH=/home/yyf/.local/bin:$PATH export CUDA_HOME=/usr/local/cuda-12.6 export PATH=$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

完事了输入刷新环境

source ~/.bashrc

之后输入验证环境

nvcc -V

出现这个就证明cuda安装成功了

随后我们安装cuDNN,NVIDIA cuDNN 是一个用于深度神经网络的 GPU 加速原语库。在某些训练中要用到它。cuDNN的版本必须和CUDA版本一一对应,否则tensorflow仍然会无法正常调用N卡,关于版本关系,tensorflow官网给出了说明,我们可以直接查看上面的图片,比如我安装的2.19要求cuDNN版本为9.3,那我们就去这里下载9.3版本的cuDNN(cuDNN 9.3.0 Downloads | NVIDIA Developer)按着下面的点就是,然后往下面翻,会有安装的指令,终端里面输入就是

如果是其他版本,从这个网址找cuDNN Archive | NVIDIA Developer

配置tensorflow环境

先上官网Install TensorFlow with pip,别看中文版,内容很落后,我也不知道为什么。。。

刷新pip

pip install --upgrade pip

之后执行

pip install tensorflow[and-cuda]

完事后terminal里面执行它

python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"

有下面的显示就大功告成了

或者你也可以执行它

import tensorflow as tf print("Num GPUs Available: ", len(tf.config.list_physical_devices('GPU')))

有这句Num GPUs Available: 1证明成功了

完结撒花!