一篇文章理清GPU、CUDA、CUDA Toolkit、cuDNN的关系
创作时间:
作者:
@小白创作中心
一篇文章理清GPU、CUDA、CUDA Toolkit、cuDNN的关系
引用
CSDN
1.
https://m.blog.csdn.net/weixin_45756161/article/details/143331929
本文将帮助读者理清GPU、CUDA、CUDA Toolkit和cuDNN之间的关系,并提供详细的安装步骤。文章内容主要面向需要使用GPU进行深度学习开发的技术人员。
GPU&驱动
说明
GPU是一个硬件,只需要在合适的主板位置接口上进行安装即可,在电气层面上,只要GPU接入到主板上,主板就能意识到有一个新的硬件设备加入进来,但是对于计算机操作系统来说,此时,并不能识别到新加入的硬件设备,需要安装GPU驱动,才可以使得OS识别到GPU。所以,显卡驱动的作用就是让计算机操作系统识别到GPU,驱动作为软硬件之间的API。
安装
说明:当拿到GPU服务器之后,肯定都已经预安装显卡驱动,只需要运行nvidia-smi这一命令即可,当出现GPU详细信息,说明已经安装显卡驱动,就不用再安装了。下面的安装针对如何在个人电脑上进行安装GPU驱动,针对Ubuntu系统,其他系统请自行百度。
- 查看自己电脑的显卡型号所推荐安装的nvidia驱动
ubuntu-drivers devices
- 有个recommended的就是推荐安装的驱动,如果就想安装推荐驱动,直接运行下面命令,无需进行任何其它设置,就可以安装成功,安装成功之后,需要重启,重启后,查看是否安装成功
sudo ubuntu-drivers autoinstall
sudo reboot
nvidia-smi
- 卸载显卡(当需要更换显卡的时候),首先打开软件和更新,选择使用独显来显示,不然直接从硬件换显卡会黑屏
- 选中后,应用更改,等待完成之后,进行重启,重启之后可以进入设置确认一下是否已经更换好,这里不再是nvidia的即可,可继续卸载显卡驱动了
sudo apt remove nvidia-*
- 接着就可以关机、拆显卡、装显卡、接好屏幕,开机,应用上述的教程即可安装新显卡对应的驱动
CUDA
说明
通过CUDA来使用显卡,CUDA就是操作系统与GPU之间的API接口。
- 人们可以通过07年推出的CUDA(Compute Unified Device Architecture)用代码来控制GPU进行并行计算
- CUDA提供了一套 API,允许开发者通过编写并行代码来高效利用 GPU 的计算资源。
- CUDA为开发者提供了基于 C/C++ 的 API,使用户能够直接控制 GPU 中的多线程执行,从而极大地加速计算任务
安装
说明:当拿到GPU服务器之后,系统CUDA大概率也都是预安装,这时,你只需要运行nvcc --version即可查看是否安装系统CUDA。下面的安装还是针对Ubuntu系统,其他系统请自行百度。
- 前提需要先安装好显卡驱动
- 进入官方下载网站下载cuda并安装
https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_local
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.6.0/local_installers/cuda-repo-ubuntu2004-12-6-local_12.6.0-560.28.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-6-local_12.6.0-560.28.03-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-6
- 接下来配置环境变量,先去
/usr/local/目录下找到cuda的安装路径,然后配置环境变量
sudo gedit ~/.bashrc
export PATH=/usr/local/cuda-12/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-12/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda-12
# 更新系统环境
source ~/.bashrc
sudo ldconfig
# 验证是否成功
nvcc -V
CUDA Toolkit(最重要)
说明
Pytorch → CUDA → 显卡:通过CUDA这一平台,可以将指令发送到显卡上进行执行
- CUDA Toolkit都是在安装Pytorch时自动安装(必须使用Pytorch官网的安装命令),可以看到,无论是使用conda安装还是pip安装,都会自动将CUDA Toolkit安装到Python环境中去,系统安装CUDA和Pytorch安装的CUDA Toolkit是独立的,两者并不需要相互依赖,仅安装Pytorch和CUDAToolkit即可正常使用GPU
- 且当Pytorch运行时,会优先使用conda或者pip安装的CUDA Toolkit,而不是系统CUDA,因此,即使系统CUDA版本不同,Pytorch依然会使用其内部的CUDA Toolkit,两者的版本可以不同
nvcc --version命令显示的是系统CUDA的版本,所以在大多数情况下并不是Pytorch使用的CUDA版本,这个时候需要通过代码来查看Pytorch代码使用的CUDA版本,可以看到,Pytorch使用的CUDA版本和系统的CUDA版本是不一致的- 对于深度学习炼丹来说,从不严谨的角度来看,可以将系统CUDA和CUDA Toolkit视作两套并行的CUDA,一般我们不需要理会系统CUDA,因为它在服务器上也是默认安装的,只需要关心在安装Pytorch时,附加安装的CUDA Toolkit即可,没有系统CUDA,对于使用GPU也是没有影响的
- 如果在安装Pytorch时,没有将CUDA Toolkit安装上,这时候,如果系统CUDA已安装,且与你的Pytorch版本兼容,那么Pytorch就会直接调用系统CUDA运行时库,如果两者不兼容,例如你的 PyTorch 版本需要 CUDA 11.3,但系统安装的是 CUDA 10.2,则运行 PyTorch 的 GPU 加速时会报错,提示找不到 CUDA 相关库,这时需要重新安装Pytorch,并将CUDA Toolkit安装上去
import torch
# 检查 PyTorch 中 CUDA 是否可用
if torch.cuda.is_available():
print("CUDA 已安装且可用")
print("PyTorch CUDA 版本:", torch.version.cuda)
print("当前使用的 GPU 设备:", torch.cuda.get_device_name(0))
else:
print("CUDA 未安装或不可用")
安装
- 当激活对应的Python环境之后,去Pytorch官网复制下载命令,即可安装
- CUDA Toolkit中默认包含cuDNN,不需要再单独安装
- 但是系统CUDA是需要单独安装cuDNN
cuDNN
说明
全称是CUDA Deep Neural Network Library
- 是一个专门为深度学习设计的高效GPU加速库,提供了常用的神经网络操作(如卷积、池化、激活等)的高性能实现,对常用的深度学习操作进行了高度优化,通过直接调用cuDNN函数,深度学习框架(Pytorch等)可以利用GPU实现比-框架自带的基础CUDA实现-更加高效
- cuDNN是CUDA Toolkit的一部分,但独立于CUDA Toolkit发布,因此需要单独安装
- cuDNN并非强制安装,只是安装之后,可以显著加速许多计算密集的深度学习操作,尤其是CNN中的卷积、池化、激活、归一化等操作,大部分的深度学习框架(Pytorch、Tensorflow)在检测到cuDNN时会自动使用它,以提升GPU的计算效率,无需显式调用cuDNN的接口
- 通过下面的代码即可检查cuDNN是否安装成功以及是否可用
import torch
import torch.nn
print("cuDNN 是否可用:", torch.backends.cudnn.is_available()) # 检查 cuDNN 可用性
安装(仅限使用系统CUDA时安装)
说明:Python环境中安装Pytorch时会自动包含支持GPU加速的CUDAToolkit和cuDNN,不需要再单独安装。下面安装针对Linux系统,win系统请自行百度查询
https://developer.nvidia.cn/rdp/cudnn-archive
- 第一步下载对应cuda版本的cudnn的tar.xz文件
- 解压下载的cudnn.tar.xz文件
- 使用下面两条指令复制cudnn文件夹下的文件到
/usr/local/cuda-xx/lib64/和/usr/local/cuda-xx/include/中
cp cuda/lib/* /usr/local/cuda-xx/lib64/
cp cuda/include/* /usr/local/cuda-xx/include/
- 拷贝完成后,我们可以使用如下的命令查看cuDNN的信息:
cat /usr/local/cuda-xx/include/cudnn_version.h | grep CUDNN_MAJOR -A 2
热门推荐
医用甘油可以护肤吗
一文读懂!美体医用甘油到底有啥用处
创建参数查询 (Power Query)
婴幼儿食品执行标准:确保宝宝健康饮食的关键
马蹄菜——一种美味营养的水生植物(马蹄菜的别名及药用价值)
马蹄的最佳食用季节(挑选)
2024广东“干货”,全在这里→
破伤风的症状
“早睡早起”是错的?医生提醒:老人65岁后,睡觉尽量做到这4点
当代作家邹武的《与天空说情话》:一首登顶中国网的佳作
美国留学生寒暑假安排指南
300度近视配1.56还是1.61?一文详解镜片折射率选择
白癜风缺铜铁锌怎么补
SSD是否分区?性能、寿命、管理全方位解析
ITSM中的客户满意度测量方法
高速行车,两驱车与四驱车的安全对比真相大揭秘
四驱为什么安全?
英国作家戴维·赫伯特·劳伦斯的生平与作品
血液病与低血压有关吗
星际迷航:人类距离实现太空旅行还有多远?
周华健经典歌曲名称及解读
电机功率越大匝数越小,讨论电机功率与匝数的关系
冬季的诗意,探寻寒冷季节中的文学之美
促消费方案发布 消费电子概念股业绩向好(附名单)
为大脑补充食物,准备对抗脑退化疾病
专家解析:胰腺癌后期腹部肿大的处理方法
认识佛性、自性、空性
唐扬鸡块:外酥里嫩的日式炸鸡制作详解
标准衣柜规格尺寸(衣柜的厚度)
生物源全降解地膜:给土壤穿上“环保衣”,助力农业、生态双效收益