文章目录
安装cuda
提前说明:当WSL的发行版是Ubuntu22.04时,安装过程中会出现一个错误,不过也有办法解决,下文已列出。我搜的其他方法说直接用Ubuntu20.04发行版不会出现这个问题,如果愿意的话,可以选择直接装Ubuntu20.04发行版而非22.04。
查看支持的最大cuda版本
首先通过nvidia-smi
命令查看当前安装的驱动支持的最大cuda版本:
可以看到这里最大支持的是12.3。不过之前实验都是在11.6上做的,所以这里就安装cuda11.6。
根据官网步骤安装
进入cuda11.6的官网并按如下顺序选择:cuda11.6→Linux→x86-64→WSL-Ubuntu→2.0→deb_local
然后会出现官方给的安装流程,比如:
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.6.0/local_installers/cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pub
sudo apt-get update
sudo apt-get -y install cuda
我们可以在任意路径下操作上面的内容,最后cuda-repo-wsl-ubuntu-11-6-local_11.6.0-1_amd64.deb
这个安装包也会下载到这个目录,安装完可以选择删掉。我这里直接在自己的home目录下创建了个for_cuda
目录来操作。
按照上面顺序执行即可。
其中:
sudo apt-key add /var/cuda-repo-wsl-ubuntu-11-6-local/7fa2af80.pub
会有警告可以忽略。
主要是最后一句sudo apt-get -y install cuda
报错了(如果是22.04发行版的话):
The following packages have unmet dependencies:
libcufile-11-6 : Depends: liburcu6 but it is not installable
E: Unable to correct problems, you have held broken packages.
查了下似乎是因为Ubuntu22.04默认没有liburcu6库了。搜到的一个解决方案是:
Unable to install CUDA on Ubuntu 22.04 WSL2
其中提供的解决方法如下:
# ppa:cloudhan/liburcu6 provides a forward-port of liburcu6 for Ubuntu 22.04.
sudo add-apt-repository ppa:cloudhan/liburcu6
sudo apt update
sudo apt install liburcu6
按照上面的顺序先添加ppa:cloudhan/liburcu6
源,更新后可以安装liburcu6了。(似乎需要梯子才能顺利添加ppa源并更新)
最后重新执行最后一句:sudo apt-get -y install cuda
即可
安装完成后的善后
cuda默认安装在/usr/loacl/
下:
cuda和cuda-11都可以理解为cuda-11.6的快捷方式。文件都在cuda-11.6里。看下目录结构:
有bin,有lib和include(后面cudnn要拷贝到这俩里面)
现在就可以进到bin里面执行./nvcc -V
查看版本:
说明安装成功。
下面就是添加环境变量(只是通过python代码去使用cuda的话,不添加也行):
在home的.bashrc文件内添加以下内容:
export CUDA_HOME=/usr/local/cuda-11.6 # 新建环境变量CUDA_HOME
export PATH=$PATH:$CUDA_HOME/bin # 将bin目录添加到PATH这个环境变量
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CUDA_HOME/extras/CUPTI/lib64
# 后两个是添加一些库的路径到LD_LIBRARY_PATH环境变量中,参考别的教程的
之后重新打开bash终端能直接用CUDA_HOME的bin目录下的命令了。如果使用的是zsh终端,在对应的.zshrc
文件中配置。
安装cudnn
cudnn只是一些库,用来加速计算的。需要从官网下载:
链接:cudnn下载
下载需要注册一个NVIDIA账号。
这里下的是8.9.5。下载完成后,通过以下命令解压:
tar -xvf cudnn-linux-x86_64-8.9.5.30_cuda11-archive.tar.xz
(压缩包换成自己的压缩包)
之后进入到解压文件夹里将解压后的lib和include的内容复制到cuda里面对应的lib64和include目录里面:
cd cudnn-linux-x86_64-8.9.5.30_cuda11-archive # 目录也是自己解压后的目录
cp ./lib/* /usr/local/cuda-11.6/lib64 # 拷贝lib下所有内容到cuda的lib64目录
cp ./include/* /usr/local/cuda-11.6/include # 拷贝include下所有头文件到cuda的include目录
*
为通配符,表示“所有”
安装Pytorch
这里推荐使用conda管理python环境
安装miniconda管理python环境
miniconda相对于anaconda更精简。
官网:miniconda
按照提供的安装顺序安装:
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 -rf ~/miniconda3/miniconda.sh
安装完成后还需要为bash初始化:
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh # 如果用的zsh终端可以用这句为zsh终端初始化
之后可以打开一个bash,可以看到前面默认有个(base)。这是conda默认的python环境:
可以通过以下命令创建环境并指定python版本
conda create --name torch_env python=3.7
创建了一个名为torch_env,python为3.7的环境。
之后可以通过conda activate [环境名]
切换不同的环境,并且命令提示符前面也会变成对应的环境名:
在torch_env中安装Pytorch
到Pytorch官网:pytorch。默认提供的是最新的。可以在install previous versions of PyTorch
中安装其他版本:
我这里安装的是1.13.0的版本,根据它提供的命令来安装就行。在上面创建的torch_env环境中安装。
pip install torch==1.13.0+cu116 torchvision==0.14.0+cu116 torchaudio==0.13.0 --extra-index-url https://download.pytorch.org/whl/cu116
下载安装可能会报超时错误。添加--default-timeout=6000
来超时设定时间(单位是秒)
其他错误就自行使用搜索引擎吧。
结果检查
安装完成后,在python里看看能不能用
完成!
gpustat
nvidia-smi查看显卡占用什么的比较不直观,可以使用gpustat。它是一个python模块,直接通过pip install gpustat
就能安装。
安装完成后效果:
运行gpustat
或gpustat -i
可以查看gpu状态,-i
表示动态查看。