Configure Accurately Scheduling Inference Services based on the CUDA version
Introduction
在 Kubernetes 集群中,不同 GPU 节点的 GPU 型号和 CUDA 驱动版本不一致,会导致以下问题:
-
版本不匹配:应用使用的 CUDA 运行时版本可能与某些节点上的 CUDA 驱动版本不兼容,导致失败或性能问题。
-
调度挑战:Kubernetes 原生调度器不了解 CUDA 版本依赖,无法保证应用被调度到版本兼容的 GPU 节点上。
-
高维护开销:手动管理节点与应用之间的 CUDA 版本依赖增加了运维复杂度。
本文档提供了基于 CUDA 运行时版本和 Nvidia Driver 版本配置精确调度推理服务的分步指南。通过这些设置,您可以在 Kubernetes 调度层面解决 CUDA 运行时与 CUDA 驱动版本不匹配的问题,确保应用被调度到兼容的 GPU 节点。
Steps
在节点标签中添加 CUDA 版本
-
在每个 GPU 节点上,运行以下命令以获取支持的 CUDA 运行时版本:
例如,输出可能是 12.4。
-
在控制节点上,为 GPU 节点添加对应的主版本和次版本标签:
TIP
如果您的集群中有大量 GPU 节点,手动打标签较为困难。您可以安装 Node Feature Discovery 集群插件。
通过部署 Node Feature Discovery (NFD) 集群插件并启用 GFD 扩展,GPU 节点将自动带有 CUDA 版本标签。
Node Feature Discovery 集群插件可从 Customer Portal 获取。详情请联系 Consumer Support。
配置基于 CUDA 版本的精确调度推理服务
从 Alauda AI 1.5 版本开始,产品将自动根据 CUDA 版本调度推理服务的 Pod。对于早期版本,您可以按照以下步骤操作:
- 确定创建推理服务时需要选择的 ClusterServingRuntime。
- 解析 ClusterServingRuntime 标签:
如果
cpaas.io/accelerator-type为 nvidia,进一步解析cpaas.io/cuda-version(例如 11.8)。 - 在推理服务中添加 nodeAffinity 字段,示例: