介绍
目录
硬件加速器介绍
Kubernetes 硬件加速器套件是一款企业级解决方案,旨在优化云原生环境中的 GPU 资源分配、隔离和共享。基于 Kubernetes 设备插件和 NVIDIA 原生技术构建,提供三个核心模块:
-
vGPU 模块
基于开源 GPU-Manager,实现细粒度 GPU 虚拟化,将物理 GPU 切分为具有内存/计算配额的可共享虚拟单元。适用于需要动态资源分配的多租户环境。 -
pGPU 模块
利用 NVIDIA 官方 Device Plugin,提供完整的物理 GPU 隔离和 NUMA 感知调度。专为需要专用 GPU 访问的高性能计算(HPC)工作负载设计。 -
MPS 模块
实现 NVIDIA 的多进程服务,允许在资源受限条件下并发执行 GPU 上下文。通过 CUDA 内核融合优化延迟敏感型应用。
产品优势
vGPU 模块
- 动态切片:将 GPU 切分以支持多进程共享同一物理 GPU
- QoS 保证:保证计算单元(vcuda-core)和内存配额(vcuda-memory)
pGPU 模块
- 硬件级隔离:通过 IOMMU 保护的直接 PCIe 直通
- NUMA 优化:自动绑定 NUMA 节点,最小化跨插槽数据传输
MPS 模块
- 低延迟执行:通过 CUDA 上下文融合降低 30-50% 延迟
- 资源限制:限制单进程 GPU 计算(0-100%)和内存使用
- 零代码改动:兼容未修改的 CUDA 应用
应用场景
vGPU 使用场景
- 多租户 AI 平台:跨团队共享 A100/H100 GPU,保障 SLA
- VDI 环境:为 CAD/3D 渲染提供 GPU 加速虚拟桌面
- 批量推理:通过分配部分 GPU 资源实现模型服务并行化
pGPU 使用场景
- HPC 集群:运行 MPI 作业,独占 GPU 访问,用于天气模拟
- ML 训练:大语言模型训练的全 GPU 利用
- 医学影像:处理高分辨率 MRI 数据,无资源争用
MPS 使用场景
- 实时推理:使用并发 CUDA 流实现低延迟视频分析
- 微服务编排:在共享硬件上共置多个 GPU 微服务
- 高并发服务:推荐系统 QPS 提升 3 倍
技术限制
需要特权权限
硬件设备访问要求
设备文件权限
NVIDIA GPU 设备需要直接访问受保护的系统资源:
- 要求:需要 root 权限读写设备文件
- 后果:非 root 容器会出现权限拒绝错误
内核级操作
关键 NVIDIA 驱动交互
K8s 设备插件架构要求
- Socket 创建:写入
/var/lib/kubelet/device-plugins - 健康监控:访问
nvidia-smi和内核日志 - 资源分配:修改设备 cgroups
vGPU 限制
- 仅支持 CUDA 版本低于 12.4
- 启用 vGPU 时不支持 MIG
pGPU 限制
- 不支持 GPU 共享(1:1 Pod 到 GPU 映射)
- 需要 Kubernetes 1.25+ 并启用 SR-IOV
- 仅限 PCIe/NVSwitch 连接的 GPU
MPS 限制
- 融合上下文间可能发生故障传播
- 需要 CUDA 11.4+ 支持内存限制
- 不支持 MIG 切片 GPU