pytorch CUDA版本对应问题解析

CUDA是NVIDIA的并行计算平台,用于GPU加速计算。CUDAToolkit包含CUDA运行时和开发工具,而Pytorch的CUDAToolkit是精简版。nvcc是CUDA编译器,nvidia-smi显示驱动版本。CUDA版本与驱动、工具包需兼容,且CUDA是向前兼容的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

CUDA及开发工具

CUDA版本问题

CUDA Toolkit (Pytorch)与CUDA Toolkit (nvidia)版本

nvcc和nvidia-smi显示的CUDA版本一般不同

nvcc

 nvidia-smi

​编辑


参考:

(109条消息) 一文讲清楚CUDA、CUDA toolkit、CUDNN、NVCC关系_健0000的博客-优快云博客

显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么? - 知乎 (zhihu.com)

Pytorch 使用不同版本的 cuda - yhjoker - 博客园 (cnblogs.com)

CUDA及开发工具

有人说CUDA就是一门编程语言,像C,C++,python 一样,也有人说CUDA是API。CUDA英文全称是Compute Unified Device Architecture,是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。按照官方的说法是,CUDA是一个并行计算平台和编程模型,能够使得使用GPU进行通用计算变得简单和优雅

  • cudnn:为深度学习计算设计的软件库。
  • CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。
  • CUDA Toolkit (Pytorch): CUDA不完整的工具安装包,其主要包含在使用 CUDA 相关的功能时所依赖的动态链接库。不会安装驱动程序。
  • (NVCC 是CUDA的编译器,只是 CUDA Toolkit 中的一部分)

CUDA版本问题

CUDA Toolkit (Pytorch)与CUDA Toolkit (nvidia)版本

在安装CUDA Toolkit (Pytorch)时,会下载相应的toolkit包(Pytorch版本与对应CUDA toolkit版本对应关系可以查看官方列表),也就是说,官方发布了自己提前根据对应CUDA toolkit版本编译的pytorch包,编译好的pytorch包也会直接调用下载的轻量版本的CUDA Toolkit (Pytorch)。

这时候,只需要系统配合与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,不需要重新进行编译过程。

但如果如需要为 Pytorch 框架添加 CUDA 相关的拓展时(Custom C++ and CUDA Extensions),需要对编写的 CUDA 相关的程序进行编译等操作,则需安装完整的 Nvidia 官方提供的 CUDA Toolkit。

nvccnvidia-smi显示的CUDA版本一般不同

nvcc

nvcc --version 
# 如果提示找不到nvcc,是因为nvcc没有被添加到可执行文件环境变量中或在可执行文件目录没有nvcc
# 不应根据提示安装cuda-toolkit,因为安装的版本是软件库的固定版本,一般不适用自己需要的版本
# 可以使用如下命令
sudo cp /usr/local/cuda/bin/nvcc /usr/bin

或者(推荐)

export PATH=/usr/local/cuda-11.3/bin/:$PATH

 nvidia-smi

watch -n 0.1 -d nvidia-smi     #每隔0.1秒刷新一次

 CUDA有两个主要的API:runtime(运行时) APIdriver API。这两个API都有对应的CUDA版本(如11.3和12.0等)。

  • 用于支持driver API的必要文件(如libcuda.so)是由GPU driver installer安装的。nvidia-smi就属于这一类API。
  • 用于支持runtime API的必要文件(如libcudart.so以及nvcc)是由CUDA Toolkit installer安装的。(CUDA Toolkit Installer有时可能会集成了GPU driver Installer)。nvcc是与CUDA Toolkit一起安装的CUDA compiler-driver tool,它只知道它自身构建时的CUDA runtime版本。它不知道安装了什么版本的GPU driver,甚至不知道是否安装了GPU driver。

直白点说

nvidia-smi显示的是驱动版本对应的CUDA版本,即当前驱动支持的最新CUDA版本

nvcc -V显示的是目前设置的CUDA Toolkit版本(nvcc程序在目录cuda/bin/下)

值得一提的是,NVIDIA的CUDA是向前兼容的,所以在安装显卡驱动时,在算力支持的前提下,尽可能安装高的CUDA版本,以支持更多版本的CUDA Toolkit。

具体架构关系如下图所示:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值