国庆闲来无事,决定自己实际操作一下。首先要完成的任务就是环境搭建。本教程是Nvdia独显+Windows电脑+WSL2环境下的PyTorch安装以及使用PyCharm连接环境

安装

安装Miniconda

最简单的方法就是安装依赖Python 3.x的Miniconda。 如果已安装conda,则可以跳过以下步骤。访问Miniconda网站,根据Python3.x版本确定适合的版本。

对于64位元的Linux作业系统,可以使用以下官方提供的指令:

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm ~/miniconda3/miniconda.sh

初始化环境

~/miniconda3/bin/conda init

初始化完成后,提示关闭当前终端,重新打开新的终端

创建一个新的环境,其名称可以修改:

conda create --name d2l python=3.9 -y

切换到d2l环境

conda activate d2l

注意每次运行都要运行此指令。例如每次source .bashrc 之后。

如要退出当前环境:conda deactivate
如要完整删除名为dal的环境:conda remove -n d2l --all

安装CUDA

CUDA(官网)是英伟达官方的深度学习工具包,如图是WSL的选项。运行下载代码。

image-20240930231219011

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.6.1/local_installers/cuda-repo-wsl-ubuntu-12-6-local_12.6.1-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-12-6-local_12.6.1-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-6

从官网安装的CUDA貌似需要手动设置环境变量

sudo vi ~/.bashrc
conda activate d2l

i进入insert模式,添加以下代码到文件最后,注意修改为对应版本,此处使用cuda12.1。

export PATH=/usr/local/cuda-12.1/bin{PATH:+:{PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64\{LD_LIBRARY_PATH:+:{LD_LIBRARY_PATH}}

Esc, :wq,回车保存。

source ~/.bashrc
conda activate d2l

测试

在终端中执行 nvcc -V,若安装成功,应输出:

image-20240930231618394

执行nvidia-smi,应输出当前设备信息:

image-20240930231732593

安装PyTorch

PyTorch官网选择合适版本,CUDA版本可向下兼容。

image-20240930231856110

确保指令在d2l环境下运行.

PyCharm连接WSL

新建一个Interpreter On WSL

image-20240930232723219

等待检查完成

image-20240930232821372

选择之前步骤中创建的d2l环境

image-20240930234014534

在python终端中测试可用性

image-20240930234256684

本文在写作过程中参考了以下资料

https://zh.d2l.ai/chapter_installation/index.html

https://blog.yotroy.cool/?p=274

https://www.jetbrains.com/help/pycharm/using-wsl-as-a-remote-interpreter.html#wsl-terminal