CUDA 驱动与运行时兼容性
目录
分层架构与核心概念

1. CUDA Runtime API 层
技术定位
- 功能范围:为开发者提供高层抽象接口,封装核心 GPU 操作(内存分配、流管理、内核启动等)
- 版本绑定:由构建时使用的 CUDA Toolkit 版本决定(例如 CUDA 12.0.1)
版本检测方法
如果发现多个库版本,应检查程序实际使用的版本,如 PATH、LD_LIBRARY_PATH 或其他程序设置
2. CUDA Driver API 层
技术定位
- 功能范围:低层接口,直接与 GPU 硬件交互,负责指令翻译和硬件资源调度
- 版本绑定:由 NVIDIA 驱动版本决定,遵循 SemVer 规范
版本检测方法
版本兼容矩阵与约束
物理 GPU 部署 - 核心兼容原则
首先参考 NVIDIA 官方声明,基本约束为
- 驱动版本必须始终 ≥ 运行时版本
- NVIDIA 官方保证 向后兼容 1 个主版本(例如 CUDA Driver 12.x 支持 Runtime 11.x)
- 跨两个主版本兼容(例如 Driver 12.x 与 Runtime 10.x)既不官方支持也不推荐
部署 cuda 程序时,请遵守基本约束
正式规则
虚拟化场景增强(HAMI/GPU-Manager)
使用 GPU-Manager 或 HAMI 等虚拟 GPU 方案时,除遵守上述基本约束外,还必须满足以下额外约束:
版本要求
GPU-Manager 特别说明: 我们实现了部分跨 1 主版本兼容(例如基线 12.4 支持 vLLM 11.8),但这需要针对每个应用进行 hook 调整,需逐案分析。
部署最佳实践
推荐策略
• 新 GPU 集群规划时,建议采用较新 CUDA 版本(如 CUDA 12.x)作为驱动和运行时版本
旧系统替代方案
1. 物理 GPU 调度或 GPU-Manager 整卡分配
整卡调度提供与物理 GPU 访问等效的原生兼容性
GPU-Manager 可通过设置 tencent.com/vcuda-core 为 100 的正整数倍(如 100、200、300)启用整卡模式
2. 节点标签策略
根据支持的驱动 CUDA 版本为节点打标签:
表示该节点为 cuda 12.4
在部署时配置调度亲和性:
可根据程序所需的 cuda 运行时版本设置 cuda-major-version 和 cuda-minor-version
3. 运行时版本升级
旧版 CUDA Runtime 可能存在安全漏洞(CVE)且不支持新 GPU 特性,优先升级至 CUDA 12.x。
NVIDIA 推荐同时升级驱动和运行时
