预先说明
- pytorch在使用GPU的时候需要用到cuda toolkit,该工具是软件与硬件的桥梁。
- cuda有两个意思,一个是运行时cuda(cuda toolkit),一个是驱动器cuda(cuda driver)。通常我们的服务器上已经安装过了cuda driver,一般不需要再重新安装,所以本文所安装的cuda指的是安装运行时cuda,即cuda toolkit。
找到pytorch、python、cuda的版本对应关系
一般我们会根据深度学习项目的环境需求先定下来pytorch的版本,比如chatglm系列要求pytorch>=2.0.0,那么我们就需要根据该要求根据下表找到与之对应的python与cuda的对应版本。
这里我们选择安装pytorch2.0.1、python3.9、cuda11.7。
还有一个重要的点是安装的cuda toolkit版本不能超过cuda driver的版本,cuda driver的版本通过nvidia-smi命令查看,下图的右上角即是服务器的cuda驱动版本(12.2),这里我们安装的11.7的cuda toolkit满足要求。
新建conda虚拟环境(可选)
这一步不是必要的,但请确保已经安装了正确版本的python。
这里我们新建一个conda虚拟环境,名为pytorch2.0,顺带安装3.9版本的python。
# 创建虚拟环境
conda create -n pytorch2.0 python=3.9
# 安装过程中选择y确定安装python,安装完后激活该虚拟环境
conda activate pytorch2.0
至此虚拟环境已建好,python已经安装完成。
安装cuda(cuda toolkit)
下载cuda toolkit安装包
-
进入cuda官网,选择11.7版本的cuda toolkit。
-
根据自己系统的版本信息进行选择:
下载安装包:
# 通过wget下载安装包
wget https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda_11.7.1_515.65.01_linux.run
# 也可以用浏览器访问上面的网址,先下载到本地,然后再传到服务器上
安装cuda toolkit
一般网上的教程安装都是用sudo命令,但是对于非管理员用户,我们可以通过更改安装目录避免使用sudo命令。
- 找到cuda toolkit安装包的位置,然后使用如下命令安装:
- 等待一段时间(半分钟左右),终端会弹出cuda的安装界面。
- 输入accept,表示接受协议。
- 用回车键取消除cuda toolkit外的所有安装选项。
- 回车进入options,再进入toolkit options,把里边所有选项都取消,然后进入change toolkit install path,更改为自定义的非管理区的路径,回车表示完成,回车Done。
- 再进入options下的Library install path,修改同样的路径。
- Options Done后,回车install开始安装cuda toolkit。
- 出现如下信息表示cuda toolkit已经安装到指定的位置,根据信息提示,我们需要配置环境变量。
# 配置用户环境变量
vim ~/.bashrc
# 在该文件的最末尾添加两行
export PATH=/path/to/cuda11.7/bin:$PATH
export LD_LIBRARY_PATH=/path/to/cuda11.7/lib64:$LD_LIBRARY_PATH
# :wq保存文件,source命令更新用户环境
source ~/.bashrc
至此,cuda toolkit11.7已经安装完毕,输入nvcc -V命令,安装成功会显示如下信息:
当我们要更换其他版本的cuda toolkit的时候,只需要按照同样的流程走下来,然后修改环境变量就好。
安装pytorch
先用conda在线安装pytorch(大概率是cpu版本)
- 先配置conda清华镜像源,打开~/.condarc文件(没有的话自己创建一个),将如下内容复制到该文件中:
channels:
- defaults
show_channel_urls: true
channel_alias: http://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
custom_channels:
conda-forge: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
- 用conda搜索可用的pytorch版本,确保想要的版本存在,然后用conda安装指定版本的pytorch:
# 搜索可用的pytorch版本
conda search pytorch
3. 使用conda在线安装pytorch2.0.1,注意此时conda会优先安装cpu版本的pytorch。
# conda在线安装pytorch(大概率是cpu版本的,先安装,之后我们用gpu版本的覆盖)
conda install pytorch=2.0.1
再手动安装gpu版本的pytorch
- 到清华镜像中找到我们需要的gpu版本的pytorch安装包。
- 可以右键复制该安装包的链接,通过如下命令下载安装包:
# wget下载pytorch安装包
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/pytorch-2.0.1-py3.9_cuda11.7_cudnn8.5.0_0.tar.bz2
3. 下载完成后,找到gpu版本的pytorch安装包所在目录,输入如下命令安装,这个过程会覆盖掉之前安装的cpu版本的pytorch:
cd pytorch安装包下载的目录
conda install --offline pytorch-2.0.1-py3.9_cuda11.7_cudnn8.5.0_0.tar.bz2
4. 至此,pytorch2.0.1已安装完毕,下面验证pytorch能否成功使用gpu(cuda),输入torch.cuda.is_available()返回true表示pytorch和cuda适配成功。