Mark 下,记录 在window 11 安装ubuntu 2404和安装pytorch/numba并运行在RTX 5070 GPU上踩的坑。
准备安装ubuntu
开启WSL相关功能
首先打开控制面板——按下键盘【Win徽标键 + R键】,在“运行”窗口中输入“control”并回车

选择【程序】-->【启用或关闭windows功能】

在弹窗中勾选【Hyper-v】、【适用于Linux的Windows子系统】、【虚拟机平台】三项

随后点击确定,系统会安装相关组件并在结束后需要重启。
用curl 或wget 下载相关的版本
https://aka.ms/wslubuntu2004
在我的环境中,使用wsl cmd失败,网络非常慢如wsl --update 得花费几个小时。wsl --install 也不成功。
下载下载完相关的imge 后,再添加app,导航到包含下载的文件夹,并在该目录中运行以下命令,其中 app-name 是 Linux 分发.appx文件的名称。需要以管理员运行PowerShell
Add-AppxPackage .\app_name.Appx
Appx 包下载完成后,可以通过双击 appx 文件开始运行新分发版。
然后双击下载的appx

点击启动便启动ubuntu
安装cuda
在nvidia的开发网站上找到相关的cuda 版本,cuda 版本需要和gpu dirver 兼容
查看cuda 兼容的版本
nvidia-smi 输出如下,

cuda 版本是12.8
如此如下 cuda 版本也有WSL的

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/12.8.0/local_installers/cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-8-local_12.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-8
按上面的步骤即可安装。
安装 numba/torch torchvision
我安装的版本python版本为Python 3.12.3,当运行pip3 install
torch torchvision 报如下错

使用 pip3 install --break-system-packages torch torchvision 可以解决。
然而由于torch包很大,网络比较慢,安装很费劲。
使用国内的镜像,完美解决。
pip3 install --break-system-packages torch torchvision -i https://mirrors.aliyun.com/pypi/simple/安装完成后,运行


torch 成功。
但是在安装numba后,进行计算时,总找不到GPU,使用CPU 进行计算。总是报“numba.cuda.cudadrv.driver.CudaAPIError: [100] Call to cuInit results in CUDA_ERROR_NO_DEVICE”。
torch 能找到,而numba初始化错误。安装环境应该没有问题。
经过摸索找到solution:需要在LD_LIBRARY_PATH中加入WSL的path /usr/lib/wsl/lib
vim ~/.bashrc
export LD_LIBRARY_PATH=/usr/lib/wsl/lib:/usr/local/cuda-12.8/lib64:$LD_LIBRARY_PATH
source ~/.bashrc 加入后numba也能成功的在GPU 上跑。