WSL2 配置 tensorflow 环境
Windows 系统中更新NVIDA驱动
这里可以直接通过 Geforce Experience 直接更新
更新完成后可以在命令行/wsl中输入 nvidia-smi
可以看到输出
这里的CUDA Version指的是该驱动版本最高可支持的CUDA版本
安装CUDA
到NVIDIA官网下载符合条件的CUDA
这里我一开始直接选择安装了最新版的CUDA 12.4,随后发现Tensorflow 目前(2024.3.17) 并不支持 12.4,于是重新安装,选择了CUDA 11.2
直接下载EXE版本安装即可
在安装时,会发现安装报错 cuda you already have a newer version of the nvidia frameview sdk installed
这里需要到系统设置里卸载NVIDIA frameview sdk 组件,我使用的是Geek进行卸载,很干净
注意:不要直接到NVIDIA 文件夹删除对应文件
下载ANACONDA
到最新下载地址找到对应的ANACONDA版本,复制链接
https://www.anaconda.com/products/distribution#linux
wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh
bash ./Anaconda3-2021.11-Linux-x86_64.sh
根据脚本说明安装并编辑环境变量
export PATH="/path/to/conda/bin:$PATH"
使用conda init
进行初始化
WSL中下载CUDA TOOLKIT
前往官网找到对应版本的TOOLKIT:https://developer.nvidia.com/cuda-toolkit-archive
复制官网指令进行安装
注意:如果不是最新版本,需要将最后一行修改为对应的版本号
错误处理
这里如果之前安装过不同版本的TOOLKIT,可能会报错
Errors were encountered while processing:
/tmp/apt-dpkg-install-vFgFO4/00-cuda-cudart-11-2_11.2.72-1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
这里需要卸载已有的CUDA TOOLKIT
sudo dpkg --force-all -P $(dpkg -l | grep cuda | awk '{print $2}')
发现报错:
Removing cuda-toolkit-12-4-config-common (12.4.99-1) ...
Removing alternatives
Purging configuration files for cuda-toolkit-12-4-config-common (12.4.99-1) ...
Removing alternatives
Processing triggers for libc-bin (2.31-0ubuntu9.14) ...
/sbin/ldconfig.real: /usr/lib/wsl/lib/libcuda.so.1 is not a symbolic link
运行 ls -l /usr/lib/wsl/lib/libcuda.so*
发现对应文件不是一个符号链接
-r-xr-xr-x 1 root root 162552 Mar 2 07:04 /usr/lib/wsl/lib/libcuda.so
-r-xr-xr-x 1 root root 162552 Mar 2 07:04 /usr/lib/wsl/lib/libcuda.so.1
-r-xr-xr-x 1 root root 162552 Mar 2 07:04 /usr/lib/wsl/lib/libcuda.so.1.1
删除错误的 libcuda.so.1
文件:
sudo rm /usr/lib/wsl/lib/libcuda.so.1
创建一个新的符号链接,使 libcuda.so.1
指向具体版本的文件,如 libcuda.so.1.1
:
sudo ln -s /usr/lib/wsl/lib/libcuda.so.1.1 /usr/lib/wsl/lib/libcuda.so.1
运行 ldconfig
来更新库的缓存信息:
sudo ldconfig
使用
sudo apt-get autoremove
sudo apt-get autoclean
清理本地存储库里的软件包信息
重新安装即可
安装cuDNN
还是一样,找到对应的安装文件:https://developer.nvidia.com/rdp/cudnn-archive,这里需要注册登录后才能下载
使用windows下载完成后移动到Ubuntu系统中。WLS2中:
- Linux 文件系统被映射到\wsl$\Ubuntu-20.04\
- Windows的磁盘被挂载到了/mnt下,可以直接访问
完成后通过sudo dpkg -i NAME
即可安装
使用conda建立对应版本的python虚拟环境
conda create --name myenv python=3.8
conda activate myenv
之后即可使用对应指令安装对应版本的TensorFlow
pip install tensorflow-gpu==2.11.0
Jupyter
pip install jupyterlab
使用如下命令启动jupyter lab:jupyter lab --no-browser
测试tensorflow
import tensorflow as tf
tf.config.list_physical_devices()
发现报错
在windows桌面右键打开NVIDIA控制面板
将PhysX设置修改为指定显卡
成功解决