总结:

GPU硬件:是用于执行计算任务的物理设备。
GPU驱动:是操作系统与GPU硬件之间的通信桥梁,允许操作系统控制和使用GPU。
CUDA:是NVIDIA推出的编程模型和平台,允许开发者在GPU上进行并行计算。
CUDA Toolkit:是开发者在CUDA平台上编程时使用的工具集,包括编译器、库、工具等。
nvcc:是CUDA的编译器,用于将CUDA代码编译成可在GPU上执行的代码。是CUDA Toolkit的一部分。
cuDNN:是NVIDIA为深度学习和神经网络训练优化的库,基于CUDA开发,提供了一些高度优化的运算库,特别适用于深度学习中的卷积操作。

  1. GPU硬件
  • 硬件层面的图形处理器,最初用于图形渲染,后因其并行计算能力被广泛用于通用计算
  • 如Tesla、A100、RTX系列
  1. CUDA:
  • 由NVIDIA推出的并行计算平台和编程模型,透过这个技术,用户可利用GPU进行图像处理之外的运算,即允许开发者利用GPU进行通用计算。
  • 通过nvidia-smi可查看驱动支持的CUDA版本上限

3.GPU驱动(NVIDIA Driver)

GPU驱动是操作系统与GPU硬件之间的桥梁,负责使操作系统能够识别和使用GPU资源

  • 驱动版本决定了支持的最高CUDA版本,因此可以通过更新GPU驱动来支持更高版本的CUDA(可以从NVIDIA官网下载并安装新版驱动->系统驱动),但是当GPU硬件过老的时候NVIDIA会停止为该GPU进行驱动更新。
  • 通过nvidia-smi命令查看驱动版本,如下图我的驱动版本是Driver Version: 546.30。支持的cuda最高版本为12.3。GPU硬件为RTX 3050。(GPU硬件!=GPU驱动)

在这里插入图片描述
4. CUDA Toolkit(官方完整工具包)

*开发者通过CUDA Toolkit可以轻松地将计算任务分配给GPU来执行,充分利用GPU的并行计算能力。 是CUDA 开发包,包含所有CUDA开发所需的工具和库,包括nvcc,CUDA运行时库,数学加速库等。其中nvcc是CUDA的编译器,它可以将CUDA代码(即包含GPU加速部分的代码)编译成能够在NVIDIA GPU上执行的二进制代码。(nvcc -c可以查看已有系统cuda版本,而不是驱动支持的cuda版本上限)

  • CUDA Toolkit需要驱动才能调用GPU的计算能力
  • 安装方式:从NVIDIA官网下载。
  1. cudatoolkit(CUDA Toolkit精简版)
  • 仅包含运行预编译程序所需的最小依赖,是CUDA运行时环境包,不包含nvcc编译器、调试工具、文档等。
  • 安装方式:通过conda或pip安装conda install cudatoolkit=11.8

为什么PyTorch推荐用cudatoolkit而不是完整CUDA Toolkit?

  • 深度学习框架已预编译好,只需CUDA运行时库,无需开发工具。
  • cudatoolkit通过conda安装更轻量,且避免污染系统环境。

cudatoolkit和完整CUDA Toolkit能共存吗?

可以:conda环境的cudatoolkit与系统CUDA Toolkit互不干扰。
在这里插入图片描述

有了CUDA ToolKit/cudatoolkit才能实现CUDA

总结一下安装cuda的流程

  1. 通过nvidia-smi命令,查看是否有gpu硬件,gup驱动,以及gpu驱动所支持的最高cuda版本。
  2. 可以选择通过官网下载系统cuda,即CUDA ToolKit,然后通过命令nvcc --version来查看是否成功安装系统cuda,以及系统cuda的版本。
  3. 如果仅仅是跑实验的话推荐使用pip/conda下载cudatoolkit
  4. 使用命令conda install cudatoolkit=版本号即可下载cudatoolkit。如果是搭配torch,使用conda下载时,如使用命令conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 cudatoolkit=11.7 时默认安装的是cpu版本的torch。即使先conda install cudatoolkit=11.7conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 ,仍然下载的是cpu版本的torch。因为conda install命令在不指定特定频道时,依赖解析器会优先选择最容易安装的CPU版本包。要确保安装GPU版本,最可靠的方法是直接从PyTorch官方频道(-c pytorch)安装。官方频道会提供完整的、带CUDA构建的包。如conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 cudatoolkit=11.7 -c pytorch -c conda-forge。此外如果使用命令conda install pytorch torchvision pytorch-cuda也会下载gpu版本的torch,因为参数 pytorch-cuda,这是一个元数据包,专门用来告诉 conda 安装支持CUDA的PyTorch版本,但是pytorch-cuda 依赖于 cuda-cudart 等精确版本的 CUDA 组件,这些组件是 NVIDIA 官方维护的,所以要有-c nvidia/conda-forge 这两个官方频道否则可能会报错。
  5. 使用pip安装时直接# pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118就好,会包含安装PyTorch以及运行PyTorch所需的最小CUDA运行时库。这个命令从pytorch官网上找哈。
    在这里插入图片描述
    然后输入以下命令查看是否安装成功
python
import torch
print(torch.cuda.is_available())
exit()

在这里插入图片描述

Logo

欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。

更多推荐