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设置修改为指定显卡

成功解决

posted on 2024-03-18 16:06  stypro  阅读(296)  评论(0编辑  收藏  举报