想象一下高档餐厅里繁忙的厨房。厨师就是计算机内部强大的GPU(图形处理器),而源源不断的订单则是AI 请求(例如要求计算机识别汽车零件的缺陷或识别人脸)。
通常,这些厨房会尝试通过同时烹饪多份订单(批处理)或依次烹饪来提高效率。但存在一个问题:有时厨房会变得过于拥挤,导致“VIP 订单”(如停止危险机器等紧急任务)被延误,因为它们被困在较慢、较不重要的订单(如调节室温)之后。
这篇论文介绍了一个名为Strait的新系统(将其想象为一位超级聪明的行政主厨),旨在解决这种混乱。以下是其工作原理的简化说明:
1. 问题:厨房里的“交通堵塞”
在普通厨房中,如果有一份 VIP 订单进来,厨师可能会尝试将其插队。然而,论文发现,仅仅喊出"VIP 优先”并不总是奏效,因为存在干扰。
- 类比:想象两位厨师试图同时使用同一个烤箱和同一块砧板。即使 VIP 厨师速度更快,他们也可能因为等待另一位厨师切完菜而被迫停滞。
- 现实情况:当计算机尝试在同一芯片上同时运行两个 AI 任务时,它们会争夺资源(如内存和处理能力)。这会导致 VIP 任务意外变慢,有时甚至错过其必须完成的截止时间。
2. Strait 的解决方案:“水晶球”与严格的时间表
Strait 通过做两件主要事情来解决这个问题:
A. 水晶球(干扰预测)
在行政主厨(Strait)决定将新订单放入烤箱之前,它会使用“水晶球”来预测新订单将确切地使正在烹饪的订单减慢多少。
- 工作原理:它会查看新订单所需的“空间”和“工具”与当前已使用的资源相比有多少。
- 转折:这个水晶球不是静态的;它会学习。如果厨房开始变得异常繁忙,或者订单类型发生变化,水晶球会实时更新其预测,以免被误导。
B. 严格的时间表(感知优先级的调度)
一旦行政主厨知道新订单会造成多少流量,他们就会做出明智的决定:
- 如果 VIP 订单可以在不破坏当前 VIP 订单的前提下按时完成:他们允许其进入。
- 如果 VIP 订单会导致正在烹饪的 VIP 订单错过截止时间:他们会扣留新订单或完全丢弃它。
- 对于“低优先级”订单:它们被视为“尽力而为”。如果厨房过于拥挤,这些订单可能会被延迟或跳过,以保护 VIP 订单。然而,Strait 力求公平,以便这些低优先级订单在情况平静时仍有机会被烹饪。
3. 测试时发生了什么?
研究人员在模拟的高压环境(如非常繁忙的工厂车间)中测试了 Strait。
- 结果:Strait 成功挽救了 VIP 订单。它将高优先级任务错过截止时间的数量显著减少(比其他系统多出 1% 到 11%)。
- 权衡:低优先级订单确实变得稍慢,或者更频繁地错过截止时间,但论文认为,为了确保关键任务(如安全检查)始终按时完成,这是可以接受的代价。
- 对比:与其他试图通过“抢占”(强制停止)任务来腾出空间的系统相比,Strait 更加公平和稳定,因为它在交通堵塞发生之前就预测到了它,而不是在混乱开始后才试图修复它。
总结
Strait是 AI 计算机的智能管理者。它不再只是大喊"VIP 优先!”并寄希望于最好的结果,而是精确计算新任务会造成多少流量。然后,它决定是允许任务进入、延迟它还是丢弃它,从而确保即使在计算机满负荷(100% 容量)工作时,最关键的任务也能按时完成。
以下是论文《Strait:感知机器学习推理服务中的优先级与干扰》的详细技术总结。
1. 问题陈述
机器学习(ML)推理服务系统在本地部署场景下,当 GPU 利用率较高时,面临重大挑战,具体涉及任务优先级和截止时间满足问题。
- 优先级支持不足:现有系统(如 TensorFlow Serving、NVIDIA Triton)往往缺乏对关键任务(如安全监控、质量控制)优于非关键任务的稳健优先级支持。虽然它们可能支持 CUDA 流优先级,但这些硬件提示往往无效,因为并发内核仍会争用共享资源,可能导致高优先级(HP)任务遭受严重干扰或错过截止时间。
- 不可预测的干扰:当前的调度通常依赖时间共享(顺序执行)或静态空间共享(并发执行)。
- 时间共享 suffers from 队头阻塞(HOL)和利用率不足。
- 空间共享 提高了利用率,但在并发内核执行和数据传输期间引入了干扰。这种干扰是非线性的且难以估计,导致延迟不可预测并违反截止时间。
- 缺乏抢占:商用 GPU 通常不支持真正的任务级抢占。一旦批次被分发,就无法中断。因此,调度决策必须主动做出,以避免违反截止时间,这需要在干扰存在的情况下进行准确的延迟估计。
2. 方法论:Strait 系统
Strait 是一个推理服务系统,旨在通过显式建模和管理干扰,增强双优先级流量(高优先级和低优先级)的截止时间满足率。
A. 系统架构
Strait 在拥有多个 GPU 的节点上本地运行。它由以下部分组成:
- 感知优先级的调度器:管理不同模型的任务队列,为其分配 HP 或 LP 状态。
- 干扰预测引擎:一个全局模型,用于估计由数据传输和内核执行干扰引起的延迟。
- 自适应学习循环:根据运行时反馈持续更新预测模型,以处理工作负载漂移和硬件差异。
B. 干扰建模
Strait 将推理延迟(Tinf)分解为四个组件:
Tinf=Tisol+Tdata+Tkernel+Tqueue
数据传输干扰(Tdata):
- 基于以下观察进行建模:使用固定内存的 PCIe 数据传输遵循FIFO(先进先出)过程。
- 延迟基于 PCIe 链路上前一批次的完成时间计算。
- 由于输出大小较小,下游传输干扰通常可以忽略不计。
内核执行干扰(Tkernel):
- 预测模型:使用自适应指数增长模型来估计减速。其直观逻辑是:在低资源压力下,干扰增加缓慢,但随着压力增大(超过 GPU 隐藏延迟的能力),干扰会超线性加速。
- 输入:该模型使用共置批次的资源吞吐量指标(如 L1/L2 缓存、DRAM、Tensor 核心、CUDA 核心)的时间加权平均值。
- 优先级系数:包含一个可学习参数(coeffp),以反映在相同压力下,由于 CUDA 流优先级,HP 任务可能比 LP 任务遭受更少的干扰。
- 自适应:该模型使用Adam 优化和Huber 损失在线更新参数。它根据预测内核执行延迟与实际延迟之间的差异重新校准,确保对概念漂移(例如,模型架构或 GPU 类型的变化)具有鲁棒性。
C. 感知优先级的调度算法
调度器采用二分搜索来确定最佳批次大小和 GPU 分配。它强制执行两个主要约束:
- 不违反更高/同等优先级:只有当新批次不会导致正在进行的 HP 或同等优先级任务错过截止时间时,才会对其进行调度。
- 自身截止时间可行性:新批次必须能够满足其自身的截止时间,需保守估计(假设其在 GPU 运行时吞吐量的一半下运行)。
- LP 节流:为了保护 HP 任务,系统使用**加法增加乘法减少(AIMD)**策略动态限制 LP 任务的聚合吞吐量(Clow)。如果 HP 任务错过截止时间,Clow 将重置为保守基线。
3. 主要贡献
- 感知干扰的调度:Strait 是首个将显式干扰预测(包括数据传输和内核执行)直接集成到双优先级 ML 流量调度决策中的系统。
- 自适应预测模型:提出了一种新颖的自适应回归模型,能够动态学习资源争用模式,克服了静态模型在工作负载或硬件发生变化时失效的局限性。
- 无需抢占的优先级管理:展示了如何在非抢占式 GPU 上实现有效的任务优先级,通过主动阻塞或节流低优先级任务来保护高优先级截止时间。
- 全面评估:提供了针对最先进基线的严格评估,包括时间共享、静态/反应式空间共享以及软件定义的抢占(XSched)。
4. 评估结果
实验在 NVIDIA L4 GPU 上使用多种 DNN 模型(ResNet、ViT、YOLO、RoBERTa)在随机、均匀和生产 traces 下进行。
- 截止时间满足率:
- 与现有的空间共享和抢占方法相比,Strait 将高优先级任务的截止时间违规减少了 1.02 到 11.18 个百分点。
- 它对低优先级任务造成的性能权衡在可接受范围内(最坏情况退化仅为0.61 个百分点)。
- 与抢占(XSched)的比较:
- 与 XSched(一种内核级抢占系统)相比,Strait 实现了相当的 HP 截止时间满足率,但为 LP 任务提供了更公平的性能。
- 当 HP 请求占主导地位时,XSched 遭受 LP 任务的队头阻塞,而 Strait 的主动调度通过管理并发和批次大小避免了这一问题。
- 适应性:
- 当在不同模型集(CNN 与 Transformer)或 GPU 架构(Ada Lovelace 与 Ampere 与 Hopper)之间转换时,自适应预测模型显著优于静态模型,将 p99 预测误差降低了7.2 到 8 个百分点。
- 开销:
5. 意义
Strait 解决了本地 ML 基础设施中的一个关键差距,在该环境中确定性延迟和任务优先级至关重要(例如,工业自动化、安全系统)。通过从被动资源管理转向主动干扰感知,Strait 实现了:
- 更高的可靠性:确保关键任务即使在重负载下也能满足严格的截止时间。
- 更好的资源利用率:允许安全的空间共享,而无需依赖通常迫使系统采用低效时间共享的不可预测性。
- 可扩展性:该方法与集群级自动扩展正交,可集成到现有的服务栈(如 Triton)中,以增强其优先级处理能力,而无需专门的硬件抢占支持。
总之,Strait 提供了一个稳健的框架,用于管理现代 GPU 加速推理服务中并发、干扰和优先级之间的复杂权衡。
每周获取最佳 machine learning 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。