目录

CUDA及开发工具

CUDA版本问题

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

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

nvcc

 nvidia-smi

编辑


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。

nvcc和nvidia-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

如何查看pytorch是否在GPU 查看pytorch cuda版本_CUDA

 nvidia-smi

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

 CUDA有两个主要的API:runtime(运行时) API和driver 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。

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

如何查看pytorch是否在GPU 查看pytorch cuda版本_pytorch_02