测试环境
Host OS: Windows 11 Pro 21H2 (22000.376)
WSL2 OS: ArchWSL 21.8.28.0
GPU: GeForce RTX 3080 Ti
Nvidia Driver: Game Ready 510.06
启用 WSL2
具体可以参考微软官网的 旧版 WSL 的手动安装步骤,注意执行完后再
wsl --update
一下,否则图形驱动不是最新的。安装 Nvidia 驱动
既然是 WSL2 中的 CUDA 开发,首先要先安装支持 WSL 上 CUDA 的 N 卡驱动,可以在 Nvidia 官网 进行下载安装,和普通的驱动一样,写作此文章时最新的版本是
510.06
安装 Arch Linux for WSL2 子系统
自从上手了下 Manjaro,觉得 AUR 什么的特别方便,这次直接在 WSL2 子系统中安装 Arch Linux 了。
如果你也想在 WSL 中使用 Arch 的话,可以参考一下下面的简单配置步骤 🎉
下载 ArchWSL
安装 ArchWSL
运行
.\Arch.exe
来安装 rootfs
和注册表配置。安装完成之后会生成一个 .vhdx
虚拟磁盘文件,并且 Windows Terminal 会监测到并自动添加配置。Arch 的简单配置
以下以使用 USTC 镜像源作为例子
设置 root
账户密码
passwd
更换 Arch Linux 源
# 设置软件源 echo 'Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist # 添加写保护,防止被修改 chattr +i /etc/pacman.d/mirrorlist # 初始化 keyring pacman-key --init pacman-key --populate pacman -Syu # 更新
(可选)添加 Arch Linux CN 源
在
/etc/pacman.conf
文件末尾添加两行:[archlinuxcn] Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
然后更新一下:
pacman -Syy pacman -S archlinuxcn-keyring
创建普通用户
一般不会直接使用
root
账户,这里我们新建一个普通账户 imbytecat
:# 新建用户:-m 为用户创建家目录;-G wheel 将用户添加到 wheel 用户组 useradd -m -G wheel imbytecat # 设置密码 passwd imbytecat
# 因为 visudo 需要 vi ln -s /usr/bin/vim /usr/bin/vi # 编辑 /etc/sudoers visudo
将以下两行行首的
#
去掉:# %wheel ALL=(ALL) ALL # %wheel ALL=(ALL) NOPASSWD: ALL
切换 WSL 默认以普通用户登陆
回到 PowerShell 中,进入到
Arch.exe
所在的目录,执行:.\Arch.exe config --default-user imbytecat wsl -s Arch
再次重新打开 WSL 便已经切换默认账户了。
安装 Paru
Paru 是一个类似 Yay 的 AUR 助手,使用 Rust 编写,速度更快:
sudo pacman -S --needed base-devel sudo pacman -S git git clone https://aur.archlinux.org/paru.git cd paru makepkg -si
注意出现
fakeroot is in IgnorePkg/IgnoreGroup. Install anyway?
的话,输入 n
不安装 fakeroot
,这是由于 ArchWSL 默认使用的是兼容 WSL 的 fakeroot-tcp
。安装 Miniconda
可以选择安装 Anaconda 或 Miniconda 来管理各个 Python 环境,这里我就直接安装轻一些的 Miniconda 了:
# 安装 archlinuxcn/miniconda paru miniconda # 启用 conda sudo ln -s /opt/miniconda/etc/profile.d/conda.sh /etc/profile.d/conda.sh conda init zsh
测试 PyTorch
这里就用一个 PyTorch 测试一下是否正常调用 CUDA 吧:
conda create -n python39 python=3.9 conda activate python39 conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch
$ python Python 3.9.7 (default, Sep 16 2021, 13:09:58) [GCC 7.5.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> import torch >>> torch.cuda.is_available() True >>> torch.backends.cudnn.is_available() True