Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


程序:cuda:开发环境中各个组件

CUDA开发环境中各个组件[AI]


以下是关于 NVIDIA GPU 开发环境中各个组件(显卡型号、驱动版本、CUDA Driver、CUDA Runtime、CUDA Toolkit、nvcc、NVIDIA 其他 Toolkit/SDK)之间的层级结构、包含关系和版本对应逻辑的清晰总结。

一、总体层级结构(由底到上)

硬件层(物理)
└── 1. GPU 显卡(如 RTX 3060,A100)
     └── 定义“计算能力” (Compute Capability),例如 8.6

驱动层(系统支持)
└── 2. NVIDIA 显卡驱动(NVIDIA Driver)
     └── 提供 CUDA Driver(内嵌)
         └── 支持运行 CUDA 程序(最大支持某一版本的 CUDA Toolkit)

开发工具层(编译和构建)
└── 3. CUDA Toolkit(例如 12.3)
     ├── 包含 nvcc 编译器
     ├── 包含 CUDA Runtime(如 libcudart.so)
     └── 包含开发库(cuBLAS、cuFFT 等)

应用层(程序)
└── 4. 你的 CUDA 应用程序
     └── 使用 nvcc 编译,依赖 Runtime,运行时受 CUDA Driver 支持

二、组件定义与关系说明

名称 类型 包含/依赖关系 说明
GPU 显卡 硬件 物理设备,定义了支持的“计算能力”
NVIDIA Driver 软件 包含 CUDA Driver 系统级显卡驱动,决定可运行的最高 CUDA 版本
CUDA Driver 软件API 包含于 NVIDIA Driver CUDA 程序运行的基础支持层
CUDA Toolkit 软件开发包 包含 nvcc、CUDA Runtime、头文件、开发库 用于编写、编译、链接 CUDA 应用程序
CUDA Runtime 包含于 Toolkit 程序运行所依赖的动态链接库,如 libcudart.so
nvcc 编译器 包含于 Toolkit CUDA 源码编译工具
应用程序 用户代码 使用 Toolkit 构建,运行依赖 Runtime 和 Driver 最终运行的 CUDA 可执行程序
NVIDIA 其他 SDK 附加工具 如 cuDNN、TensorRT、Nsight、DeepStream 等 面向特定领域的高级开发库和分析工具

三、版本关系(重点)

项目 版本编号格式 对应关系说明
NVIDIA Driver 例如 535.104.12 支持某一最大版本的 CUDA Toolkit(如 12.2)
CUDA Driver API 如 12.2 内嵌在 NVIDIA Driver 中,对应支持的最高 CUDA Toolkit 版本
CUDA Toolkit 如 12.1、12.3 包含编译工具链与开发库;运行时需要匹配的 CUDA Driver
CUDA Runtime 同 Toolkit 每个 Toolkit 带一个对应版本的 Runtime,应用运行时需要它
nvcc(编译器) 同 Toolkit 用来将 .cu 文件编译为二进制代码,随 Toolkit 提供
应用程序(可执行文件) 编译时版本决定 使用某个版本 Toolkit 编译,运行时依赖系统中的 Driver 和 Runtime
cuDNN 等深度库 与 Toolkit 兼容 cuDNN 会指明可兼容的 CUDA Toolkit 版本范围

四、安装和使用注意事项

  1. CUDA Toolkit 可以并存多个版本,如 /usr/local/cuda-11.8, /usr/local/cuda-12.3
  2. 系统只能有一个 NVIDIA 驱动版本,它决定你最多能运行哪个版本的 CUDA Toolkit 程序
  3. nvcc 版本 = 当前使用的 Toolkit 版本
  4. 如果程序编译用了 CUDA 12.3,那么运行时至少需要:

    • NVIDIA 驱动支持 CUDA Driver 12.3
    • 存在 CUDA Runtime 12.3 的动态库(系统或打包)

五、示意图(简化版)

[GPU: RTX 3060] -- supports compute capability 8.6
        ↓
[NVIDIA Driver: 535.104] -- includes CUDA Driver API (max 12.2)
        ↓
[CUDA Toolkit 12.1]
    ├── nvcc 12.1
    ├── libcudart.so (Runtime 12.1)
    └── cuBLAS, cuFFT, etc.
        ↓
[Your CUDA App] (compiled with nvcc 12.1)

个人补充

nvidia-smi结果:
NVIDIA-SMI 535.104.12 Driver Version: 535.104.12 CUDA Version: 12.2
Driver Version: 535.104.12: 安装的 NVIDIA 驱动版本
CUDA Version: 12.2: 表示这个驱动最多支持 CUDA Toolkit 12.2

/var/www/DokuWikiStick/dokuwiki/data/pages/程序/cuda/开发环境中各个组件.txt · Last modified: 2025/05/28 09:58 by zhonghui