2023年了,在有sudo的条件下,别再手动安装cuda了

保命:现在wsl上面的坑还是不少,有条件用Linux还是老老实实用Linux

1. wsl2 + 单显卡

前置要求

  • windows 11
  • nVidia显卡
  • 科学上网工具需自行解决

现在我们假设这是一台全新的windows电脑,我们要在这台电脑上面配置wsl的深度学习环境

1.1 安装wsl2

跟着这个来 在win11上安装wsl2

1.2 安装显卡驱动

下载Studio Driver版本的,实测这个能成功,Game Ready的没试过

image-20230809201519122

1.3 更新你的windows 11到最新版

在某一个版本之后的win11和PyTorch,wsl不再需要手动安装cuda和cuDNN了,可以直接调用宿主机的cuda,跑一下nvidia-smi看看

image-20230809202620595

1.4 安装miniconda和pytorch

使用conda可以给你省去很多麻烦

这里下载conda安装包, 由于是wsl,我们需要选择Miniconda3 Linux 64-bit,也可以直接复制粘贴如下的命令行

1
2
3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x ./Miniconda3-latest-Linux-x86_64.sh
bash ./Miniconda3-latest-Linux-x86_64.sh

按Enter阅读安装协议

image-20230809202952552到这一步按q 退出即可,之后一路回车就是了。

新建conda环境, <name> 写你自己的名字,这里推荐用3.10. 因为3.11用最新的pytorch不支持torch.compile

1
2
3
conda create -n <name> python=3.10
conda actiate <name>
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch-nightly -c nvidia

注意这里的pytorch-cuda版本要在(PyTorch官网)[https://pytorch.org/get-started/locally/]上找对应的

image-20230809203332815

安装完了就可以打开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
2
3
4
5
6
7
8
9
10
Network Installer for Ubuntu22.04

$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
$ sudo dpkg -i cuda-keyring_1.0-1_all.deb
$ sudo apt-get update

Network Installer for Ubuntu20.04
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-keyring_1.0-1_all.deb
$ sudo dpkg -i cuda-keyring_1.0-1_all.deb
$ sudo apt-get update

安装完成之后,重启,打开pytorch,但是有一个bug,要调用多显卡,必须先调用torch.cuda.device_count(),使用torch.cuda.is_available()才能使用多显卡

3. Linux 平台安装cuda

不需要手动安装cuDNN了,因为conda自动处理好了。由于手动安装cuda各种报错,这里推荐使用包管理器一把梭

这里找到你需要的cuda版本,这里我们直接无脑最新的,点击版本号,然后依次按照下图选择

image-20230809205158644

我这里演示的是Ubuntu 22.04,有其他版本也可以根据要求自定义。然后直接复制粘贴下面4行命令,直接完事

如果是多GPU,安装nccl的过程参考wsl的