CUDA cuDNN和pytorch(GPU版)的完整安装教程

* 说明: 本教程使用wsl-ubuntu20.04, 其他发行版linux的命令可能有所区别.

*实测机型: i5-13500HX | RTX 4060 Laptop

一、下载CUDA12.X版本

这里以下载CUDA12.2为例。

  1. 前往cuda-12.2下载页, 按照如图方式选择合适的选项:
  2. 按照官方给出的命令, 在bash中依此执行:
bash 复制代码
​wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
sudo apt-get -y install cuda
  1. 添加环境变量
    使用vim等打开~/.bashrc,在末尾添加:
bash 复制代码
export PATH=/usr/local/cuda-12.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64:$LD_LIBRARY_PATH
  1. 验证安装是否成功
bash 复制代码
source ~/.bashrc
nvcc -V  # 查看CUDA版本
二、下载cuDNN
  1. 前往cuDNN Archive 下载合适的cudnn版本。由于我们下载的是CUDA12.X版本,这里我们就选择下载8.9.7版本的cudnn.

    点击后浏览器会接管下载, 可以通过如图方式复制下载链接.

  2. 安装cudnn软件包

我们在终端中输入以下命令:

bash 复制代码
wget -O cudnn.deb <你的下载链接>  # 下载的文件会命名为cudnn.deb
dpkg -i cudnn.deb  # 安装前置软件包
sudo apt update # 更新并获取cudnn的下载源
sudo apt-get install libcudnn8 # 正式安装cudnn软件包
sudo apt-get install libcudnn8-dev # 安装cudnn开发库(可选)

完成上述工作后,可通过下述命令检测是否安装成功:

bash 复制代码
ls /usr/lib/x86_64-linux-gnu/libcudnn*
ls /usr/include/cudnn.h
dpkg -l | grep -i cudnn
三、安装GPU版的pytorch

Pytorch下载地址

Pytorch包含三个库:torch,torchvision和torchaudio;根据社区的说明,torch-cu118版本能够兼容CUDA12.X,可通过该命令进行安装:

bash 复制代码
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

* 官方更新后通过pip默认下载的就是支持CUDA12.1的pytorch, 命令如下:

bash 复制代码
pip3 install torch torchvision torchaudio

注: 本教程安装的是cu118版本, 读者可尝试第二种方法进行安装。

四、验证pytorch的CUDA可用性
  1. 先确定pytorch有没有装错,可以在终端输入pip list,查看torch版本,cu后缀就表示支持GPU。
  2. 在python中执行torch.cuda.is_available() 返回True说明使用的就是GPU版本。
五、体验Pytorch GPU和CPU运算的速度差距
python3 复制代码
import torch
from time import perf_counter

def cpu_process():
    x = torch.rand(1000,10000)
    y = torch.rand(10000,10000)
    start = perf_counter()
    x.mm(y)
    end = perf_counter()
    print('CPU process time:',end-start)
    
def gpu_process():
    x = torch.rand(1000,10000).cuda()
    y = torch.rand(10000,10000).cuda()
    start = perf_counter()
    x.mm(y)
    end = perf_counter()
    print('GPU process time:',end-start)

if __name__ == '__main__':
    cpu_process()  # CPU process time: 0.5139300849996289
    gpu_process()  # GPU process time: 0.02356865599995217

可以明显看到GPU运算速度相比CPU快了20倍左右 !

相关推荐
Kai HVZ17 分钟前
python爬虫----爬取视频实战
爬虫·python·音视频
古希腊掌管学习的神20 分钟前
[LeetCode-Python版]相向双指针——611. 有效三角形的个数
开发语言·python·leetcode
浊酒南街21 分钟前
决策树(理论知识1)
算法·决策树·机器学习
m0_7482448322 分钟前
StarRocks 排查单副本表
大数据·数据库·python
雨中rain27 分钟前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
B站计算机毕业设计超人29 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
路人甲ing..32 分钟前
jupyter切换内核方法配置问题总结
chrome·python·jupyter
学术头条33 分钟前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客38 分钟前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon41 分钟前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归