由于一个下篇文章会提到的性能问题,需要在WSL重新部署一套CUDA和JupyterLab环境,简单记录一下。

WSL

安装WSL组件

较新的Windows 10/11已经预装有WSL,只需要预先在BIOS中开启VT并在Windows控制面板中启用“Windows虚拟机监控程序平台”。

可以查看支持安装的Linux发行版,不过我这里是炼丹用,还是选Ubuntu了。

wsl --list --online
wsl --install -d Ubuntu-22.04

在WSL中使用代理

这里使用了ZingLix的解决方案,用ta写的脚本配置环境变量,使用宿主机的HTTP代理。以下脚本的作者是@ZingLix,我只是在此引用并使用,感谢ta分享的这个好用的脚本

2024-02-24编辑:

**注意:**使用. proxy.sh setsource proxy.sh set设置代理;假如使用bash执行脚本的话,环境变量不会被应用

#!/bin/sh
hostip=$(cat /etc/resolv.conf | grep nameserver | awk '{ print $2 }')
wslip=$(hostname -I | awk '{print $1}')
port=<host_proxy_port>

PROXY_HTTP="http://${hostip}:${port}"

set_proxy(){
    export http_proxy="${PROXY_HTTP}"
    export HTTP_PROXY="${PROXY_HTTP}"

    export https_proxy="${PROXY_HTTP}"
    export HTTPS_proxy="${PROXY_HTTP}"
}

unset_proxy(){
    unset http_proxy
    unset HTTP_PROXY
    unset https_proxy
    unset HTTPS_PROXY
}

test_setting(){
    echo "Host ip:" ${hostip}
    echo "WSL ip:" ${wslip}
    echo "Current proxy:" $https_proxy
}

if [ "$1" = "set" ]
then
    set_proxy

elif [ "$1" = "unset" ]
then
    unset_proxy

elif [ "$1" = "test" ]
then
    test_setting
else
    echo "Unsupported arguments."
fi

将WSL中的服务对局域网公开

使用Windows的转发功能,在管理员权限的PowerShell执行以下命令,一目了然:

netsh interface portproxy add v4tov4 listenport=<host_port> listenaddress=0.0.0.0 connectport=<wsl_port> connectaddress=$($(wsl hostname -I).Trim());

安装JupyterLab

跟Windows下没啥区别,只是注意JupyterLab的组件名变成了jupyterlab

pip install jupyterlab
python3 -m jupyterlab --generate-config
python3 -m jupyterlab

配置方法也没有什么区别,在此不赘述。

安装CUDA

按照英伟达官网的提示一步步走就好,注意选择发行版时需要选择WSL-Ubuntu。我使用了离线安装,下面的命令也是官网抄来的:

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

安装完之后没有额外配置,pip安装相关依赖就可以直接使用了。

参考