WSL2 Ubuntu22.04 + 3070安装cuda11.6 +Pytorch1.13.0全纪录

安装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就能安装。

安装完成后效果:
运行gpustatgpustat -i可以查看gpu状态,-i表示动态查看。
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值