2023年了,在有sudo的条件下,别再手动安装cuda了
保命:现在wsl上面的坑还是不少,有条件用Linux还是老老实实用Linux
1. wsl2 + 单显卡
前置要求
- windows 11
- nVidia显卡
- 科学上网工具需自行解决
现在我们假设这是一台全新的windows电脑,我们要在这台电脑上面配置wsl的深度学习环境
1.1 安装wsl2
跟着这个来 在win11上安装wsl2
1.2 安装显卡驱动
下载Studio Driver
版本的,实测这个能成功,Game Ready的没试过
1.3 更新你的windows 11到最新版
在某一个版本之后的win11和PyTorch,wsl不再需要手动安装cuda和cuDNN了,可以直接调用宿主机的cuda,跑一下nvidia-smi
看看
1.4 安装miniconda和pytorch
使用conda可以给你省去很多麻烦
在这里下载conda安装包, 由于是wsl,我们需要选择Miniconda3 Linux 64-bit,也可以直接复制粘贴如下的命令行
1 | wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh |
按Enter阅读安装协议
到这一步按q
退出即可,之后一路回车就是了。
新建conda环境, <name>
写你自己的名字,这里推荐用3.10. 因为3.11用最新的pytorch不支持torch.compile
1 | conda create -n <name> python=3.10 |
注意这里的pytorch-cuda版本要在(PyTorch官网)[https://pytorch.org/get-started/locally/]上找对应的
安装完了就可以打开Python来验证了,轻松加愉快
1 | python -c "import torch; print(torch.cuda.is_available())" |
2. wsl2 + 多卡
很显然,wsl对单卡适配不错,但是到了多卡,就很折磨了,需要额外安装一个部件,nccl,分布式通信框架。下面的命令,跟着跑一遍就可以了。如果你的系统不是Ubuntu 22.04/20.04。 这篇文章没把对应的脚本出来,你需要有一个nvidia开发者账号,然后到(这里)[https://developer.nvidia.com/nccl]点击 Download NCCL,进去填写一个没啥用的survey, 找到自己的系统复制粘贴给出的命令即可。
1 | Network Installer for Ubuntu22.04 |
安装完成之后,重启,打开pytorch,但是有一个bug
,要调用多显卡,必须先调用torch.cuda.device_count()
,使用torch.cuda.is_available()
才能使用多显卡
3. Linux 平台安装cuda
不需要手动安装cuDNN了,因为conda自动处理好了。由于手动安装cuda各种报错,这里推荐使用包管理器一把梭
在这里找到你需要的cuda版本,这里我们直接无脑最新的,点击版本号,然后依次按照下图选择
我这里演示的是Ubuntu 22.04,有其他版本也可以根据要求自定义。然后直接复制粘贴下面4行命令,直接完事
如果是多GPU,安装nccl的过程参考wsl的