Kubernetes 上并发 LLM 代理的 GPU 时间切片

系统级深入探讨 Kubernetes GPU 时间切片的隐藏微架构成本,以及共置 Agentic AI 工作负载的实际成本。Kubernetes 上并发 LLM 代理的 GPU 时间切片后文章首先出现在《走向数据科学》上。

来源:走向数据科学

。生产代理争夺同一个 GPU,在一张共享卡上,对延迟敏感的代理的 p99 延迟悄然恶化了 66%,而每个 Pod 仍然报告健康。这是这场战斗的实际成本,以 p99 来衡量,而不是挥手。

这是“生产级代理推理”系列的第 2 部分。每个部分都从代理 LLM 管道中删除一种冗余工作。第 1 部分消除了冗余预填充。第 2 部分(本部分)解决冗余等待问题 — 多个微代理如何通过时间切片共享一个 GPU。第 3 部分使用自定义 CUDA Top-K 内核在 GPU 上保留 RAG 检索。第 4 部分在切换过程中保持代理状态,以便下一个代理永远不会出现冷启动问题。

要点

  • 共享 GPU 不是免费的,您的调度程序也不会告诉您。当两个代理共享一个时间切片 GPU 时,Kubernetes 会愉快地将两个 pod 报告为“正在运行”。损坏隐藏在延迟尾部。
  • 中位数谎言;尾巴说的是实话。在我的运行中(只有 2 个特工),两者都保持了几乎不变的 p50。但小型、延迟敏感的 p99 从 3.68 ms 跃升至 6.10 ms (≈1.66×),其抖动 (p99/p50) 从 1.02 升至 1.70。
  • 对延迟敏感的代理首先降级。小型、不稳定的工作负载比繁重、稳定的工作负载遭受的损失要大得多,即使两者“都有 GPU”。
  • 吞吐量几乎没有变化,这就是整个陷阱。平均速率吞吐量代理仅下降了几个百分点 - 因此,观察平均值的仪表板会认为这是成功的,而您的尾部敏感代理却悄然错过了五十分之一的最后期限。
  • 它运行在 150 美元的 GPU 上。下面的所有内容都是在使用了 5 年的 GTX 1080 上测量的,并使用了 NVIDIA Kubernetes 设备插件和 CUDA 时间切片。没有 H100,没有米格,没有魔法。这是故意的,并不是每个人都能买得起 H100 – 有些人仍然继续使用他们的旧硬件。老实说,在 H100 上运行代理 AI 制作不需要任何魔法;但在 150 美元的 GPU 上,它确实可以。
  • Github 仓库:https://github.com/AnubhabBanerjee/Kube-Timeslice-Profiler

    同时...