内容提要
AI工厂是共享GPU基础设施的平台,核心挑战是利用率与租户隔离。通过Kubernetes原生工具(如DRA、MIG、vCluster)实现资源分配与安全隔离,结合网络、存储、可观测性及可靠性层,支持多团队高效协作。关键在于平衡密度、隔离与成本,并确保拓扑感知调度,而非单纯部署技术。
延伸解读
利用率与隔离的平衡
文章指出,AI工厂的核心瓶颈是GPU利用率,而非模型服务性能。传统设备插件模型下,即使GPU利用率仅10%,也会独占整卡,造成浪费。DRA(动态资源分配)虽能更精细地描述设备,但真正的密度提升依赖于底层设备实现(如MIG、HAMi)。同时,严格的租户隔离往往导致资源闲置,因此需要在密度与隔离之间找到平衡点。
租户隔离的两种模式
租户隔离分为控制面和数据面。控制面采用虚拟集群(如vCluster)模式,为每个团队提供独立的Kubernetes API服务器,实现RBAC、CRD等隔离,且符合标准Kubernetes,避免锁定。数据面则依赖网络隔离(如VXLAN、EVPN)和硬件加速(如DPU),强调硬件级隔离而非仅靠命名空间。实践中,高信任租户可能获得专用集群,而成本敏感租户则共享池化资源。
拓扑感知调度的重要性
文章强调,GPU性能高度依赖硬件拓扑,如NVLink域、NUMA节点、RDMA路径等。若调度不考虑这些因素,集体通信可能因最慢链路而停滞。因此,调度器需具备拓扑感知能力,而不仅仅是资源感知。这要求平台在分配GPU时,考虑GPU间的互联方式,以及GPU与网络、CPU的相对位置,以确保高性能计算。
Q&A
什么是AI工厂?
AI工厂是一个共享GPU基础设施的平台,允许多个团队同时使用同一批GPU进行模型微调、推理服务、评估等任务,并通过Kubernetes原生工具实现资源分配和租户隔离。
AI工厂面临的核心挑战是什么?
核心挑战是GPU利用率和租户隔离。传统模型下,一个Pod即使只使用GPU的10%也会独占整个加速器,导致利用率低;同时,为了安全隔离,平台往往为每个团队分配专用GPU,造成资源浪费。
Kubernetes中如何实现GPU的细粒度分配?
通过动态资源分配(DRA)和分区工具如MIG、HAMi。DRA允许调度器将加速器视为具有属性、内存和拓扑的丰富设备,但本身不分割GPU;MIG在硬件层面隔离内存和故障,HAMi在软件层面强制每Pod的内存和计算限制,从而实现多个Pod共享一张GPU卡。
如何实现多租户隔离?
通过控制面和数据面两层隔离。控制面使用租户集群模式(如vCluster)为每个团队提供独立的虚拟控制平面,数据面则通过网络隔离(VXLAN、EVPN、分区键)、存储隔离、配额和运行时边界(如沙箱运行时)实现。对于高信任租户,可使用专用硬件或物理隔离。
AI工厂中如何保证可靠性?
通过主动和被动的健康检查(如DCGM)、节点问题检测器(Node Problem Detector)和自动修复循环(cordon和drain)来检测和恢复节点故障。可靠性是评级系统的重要指标,因为客户首先感受到的是可靠性而非峰值性能。
AI工厂如何实现自服务和计费?
通过API优先的方式,租户可以通过API、Terraform或GitOps自助创建和删除集群,资源以声明式CRD表达。计费通过DCGM驱动的GPU秒数和OpenCost分配实现,按租户导出成本。
为什么拓扑感知调度很重要?
因为GPU性能高度依赖拓扑,如哪些GPU共享NVLink域、节点如何连接网络、GPU/NIC/CPU是否在同一NUMA节点等。如果不考虑拓扑,集体操作会因最慢的链路而停滞,因此调度必须拓扑感知,而不仅仅是资源感知。