0.前置说明
- win11系统 开启子系统wsl2
- 安装Ubuntu2004版本子系统(2204版本未测试,请自测)
1.安装wsl2-Ubuntu2004子系统
win11 以上默认是wsl2了,win10参考列表第一个
子系统可以微软商店下载安装,如果要改变子系统的存放位置可以参看我上一篇 wsl2安装与配置
2.安装cuda、cudnn环境
- 宿主win11安装英伟达驱动,按自己型号选择下载安装 https://www.nvidia.cn/geforce/drivers/
- Ubuntu安装cuda-toolkit
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.0-1_all.deb
sudo dpkg -i cuda-keyring_1.0-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda
- 设置环境变量
sudo vim ~/.bashrc
文末追加
export PATH=/usr/local/cuda-11.1/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
配置生效
source ~/.bashrc
- 安装依赖库
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
- 验证cuda是否安装成功
cat /usr/local/cuda/version.json
版本提示类似
-
安装cudnn
若是toolkit用wsl-Ubuntu版本,默认已经安装了 -
验证cudnn是否安装
nvcc -V
或者demo测试下,最后出现Test passed说明安装成功。
cd /usr/local/cuda/samples/4_Finance/BlackScholes
sudo make
./BlackScholes
3.安装python3 可选 anaconda(配置工具)
apt install python3
apt install python-is-python3
4.安装PyTorch
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113
- 验证
python 进入编辑环境
python
import torch
x=torch.rand(5,3)
print(x)
print(torch.cuda.is_available())
如果显示True,表示成功安装GPU版本pytorch
注意
注: 原来cuda的API分为两种类型,一种是驱动(driver)API,另一种是运行(runtime)API。而我们通过nvidia-smi
查看的cuda版本正是驱动API版本。通过nvcc -V
和 cat /usr/local/cuda/version.json
查看的一般是运行API,因此两者存在出入是正常的。
但是我们运行程序时所使用的是运行API,我们时常讲的cuda,cudnn,tensorflow-gpu版本之间的对应,也是针对运行API来讲的,也就是后两者查看的版本。
附上对照表
参考
- 1.wsl2安装子系统 https://zhuanlan.zhihu.com/p/76032647
- 2.win11的ubuntu子系统 WSL2 下配置cuda、cudnn、GPU pytorch环境 https://blog.csdn.net/syz201558503103/article/details/122800423
- 3.ubuntu 之 查看 cuda,cudnn版本 https://blog.csdn.net/qq_41368074/article/details/107785536
- 4.announcing-cuda-on-windows-subsystem-for-linux-2 https://developer.nvidia.com/blog/announcing-cuda-on-windows-subsystem-for-linux-2/
一些技巧
- 安装好python3后如何配置别名
安装apt install python-is-python3即可