介绍

目录

硬件加速器介绍

Kubernetes 硬件加速器套件是一款企业级解决方案,旨在优化云原生环境中的 GPU 资源分配、隔离和共享。基于 Kubernetes 设备插件和 NVIDIA 原生技术构建,提供三个核心模块:

  1. vGPU 模块
    基于开源 GPU-Manager,实现细粒度 GPU 虚拟化,将物理 GPU 切分为具有内存/计算配额的可共享虚拟单元。适用于需要动态资源分配的多租户环境。

  2. pGPU 模块
    利用 NVIDIA 官方 Device Plugin,提供完整的物理 GPU 隔离和 NUMA 感知调度。专为需要专用 GPU 访问的高性能计算(HPC)工作负载设计。

  3. 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 设备需要直接访问受保护的系统资源:

# 设备文件所有权和权限
ls -l /dev/nvidia*
crw-rw-rw- 1 root root 195,   0 Aug 1 10:00 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Aug 1 10:00 /dev/nvidiactl
crw-rw-rw- 1 root root 195, 254 Aug 1 10:00 /dev/nvidia-uvm
  • 要求:需要 root 权限读写设备文件
  • 后果:非 root 容器会出现权限拒绝错误

内核级操作

关键 NVIDIA 驱动交互

操作权限要求目的
模块加载CAP_SYS_MODULE加载 NVIDIA 内核模块
内存管理CAP_IPC_LOCKGPU 内存分配
中断处理CAP_SYS_RAWIO处理 GPU 中断

K8s 设备插件架构要求

  1. Socket 创建:写入 /var/lib/kubelet/device-plugins
  2. 健康监控:访问 nvidia-smi 和内核日志
  3. 资源分配:修改设备 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