手把手教你升级PyTorch 2.0和CUDA

开发 前端
本文将手把手带你升级到PyTorch 2.0。

为什么要升级?

  • PyTorch 2.x更快,更符合Python语言习惯,仍然具有动态性。
  • 弃用CUDA 11.6和Python 3.7支持。

升级目标

升级之后,使Python、CUDA、CUDNN、PyTorch的版本如下所示:

  • Python ≥ 3.8,≤ 3.11
  • CUDA ≥ 11.7.0
  • CUDNN ≥ 8.5.0.96
  • PyTorch ≥ 2.0.0

使用PyTorch 2后,人们将大大提升日常使用PyTorch的方式。

数据科学家将能够在PyTorch 2.x中完成与1.x相同的任务,并且可以更快速、更大规模地完成任务。

升级步骤

如果你的Python版本≥ 3.8,≤ 3.11,请跳到下一部分

将Python从≤3.8升级到3.10的步骤:

  1. 对于全新安装,请删除所有现有的Python相关文件
# 用实际的版本号替换X
sudo apt --purge remove python3.X
sudo apt-get autoremove
sudo apt-get autoclean
  1. 预安装操作
sudo apt update

# 安装所需的依赖项
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget
  1. 从源代码安装Python 3.10.6

从Python网站下载所需的版本(这里是3.10.6)。

【网址】:https://www.python.org/downloads/source/

# 提取源代码
tar -xvf Python-3.10.6.tgz

# 配置构建 
cd python-3.10.6
./configure --enable-optimizations --prefix=/usr/local

# 开始构建过程
make -j $(nproc)

# 构建完成后,安装Python
sudo make install

打开./bashrc文件,并在末尾添加以下行:

export PATH="/usr/local/bin:$PATH"

保存文件并通过运行以下命令更新当前会话的环境变量:

source ~/.bashrc

验证Python版本:

python3 --version

which python3

如果CUDA≥11.7.0,请跳到下一部分

使用Nvidia Geforce RTX显卡在Ubuntu 22.04上升级Cuda ≤ 11.7的步骤:

  1. 对于全新安装,请删除所有现有的CUDA相关文件
sudo apt-get --purge remove "*cuda*" "*cublas*" "*cufft*" "*cufile*" "*curand*"  "*cusolver*" "*cusparse*" "*gds-tools*" "*npp*" "*nvjpeg*" "nsight*"
sudo apt-get --purge remove "*nvidia*"
sudo apt-get autoremove
sudo apt-get autoclean
  1. 预安装操作:
# 验证你是否拥有支持CUDA的GPU
lspci | grep -i nvidia

# 验证系统是否已安装gcc
gcc --version

# 验证系统是否已安装正确的内核头文件和开发包
sudo apt-get install linux-headers-$(uname -r)
  1. 安装NVIDIA CUDA工具包11.7.1(推荐使用Debian安装程序)
# 安装存储库元数据,更新GPG密钥,更新apt-get缓存并安装CUDA
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.7.1/local_installers/cuda-repo-ubuntu2204-11-7-local_11.7.1-515.65.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-11-7-local_11.7.1-515.65.01-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

有关更多关于在Ubuntu 22.04上升级CUDA的详细步骤,你可以参考以下链接:https://developer.nvidia.com/cuda-toolkit-archive。

在安装CUDA时,可能要求你为MOK管理创建密码,请执行此操作。

重新启动系统以加载NVIDIA驱动程序。如果出现蓝屏,请不要继续启动,而是登记提供你之前创建的密码的密钥,然后继续启动。

打开./bashrc文件,并在末尾添加以下行:

export PATH=/usr/local/cuda-11.7/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-11.7/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存文件并通过运行以下命令更新当前会话的环境变量:

source ~/.bashrc

验证CUDA版本:

nvcc --version

nvidia-smi

如果已经CUDNN≥8.5.0.96,请跳到下一部分

升级CUDNN≤ 8.5.0.96的步骤:

  1. 安装CUDNN 8.5.0.96(建议使用Debian安装程序)
wget https://developer.nvidia.com/compute/cudnn/secure/8.5.0/local_installers/11.7/cudnn-local-repo-ubuntu2204-8.5.0.96_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-8.5.0.96_1.0-1_amd64.deb

# 导入CUDA GPG密钥
sudo cp /var/cudnn-local-repo-ubuntu2204-8.5.0.96/cudnn-local-*-keyring.gpg /usr/share/keyrings/

# 刷新存储库元数据
sudo apt-get update

# 安装运行时的库
sudo apt-get install libcudnn8=8.5.0.96-1+cuda11.7

# 安装开发人员库
sudo apt-get install libcudnn8-dev=8.5.0.96-1+cuda11.7

有关详细信息,请参见此处(https://developer.nvidia.com/rdp/cudnn-archive)。

如果你已经有PyTorch≥ 2.0.0,则非常棒。

升级PyTorch≤ 2.0.0的步骤:

# 如果你有virtualenv并使用pip作为管理器
pip install torch==2.0.0+cu117 torchvision==0.15.1+cu117 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu117

对于其他操作系统或包管理器,请参见此处(https://pytorch.org/get-started/previous-versions/)。

有关下载wheel文件的详细信息,请参见此处(https://download.pytorch.org/whl/cu117)。

验证PyTorch 2.0的安装:

python3 -c "import torch; print(torch.__version__)"

责任编辑:武晓燕 来源: Python学研大本营
相关推荐

2011-05-03 15:59:00

黑盒打印机

2011-01-10 14:41:26

2011-02-22 13:46:27

微软SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中断唤醒系统Linux 系统

2021-08-04 08:55:02

Socket Java开发

2009-11-09 14:57:37

WCF上传文件

2020-04-14 10:20:12

MySQL数据库死锁

2011-03-25 12:45:49

Oracle SOA

2021-09-30 18:27:38

数据仓库ETL

2020-07-09 08:59:52

if else模板Service

2009-04-22 09:17:19

LINQSQL基础

2016-04-27 09:49:16

用户模型产品总结

2011-01-06 10:39:25

.NET程序打包

2022-01-17 07:50:37

Linux Patch项目

2021-07-14 09:00:00

JavaFX开发应用

2021-08-18 07:29:41

密码验证 PAT

2011-05-16 17:32:05

投影机技巧

2019-07-28 20:24:30

PyTorch深度学习代码

2017-05-18 12:45:35

数据分析数据理解数据
点赞
收藏

51CTO技术栈公众号