侧边栏壁纸
博主头像
蜉蝣的博客博主等级

行动起来,活在当下

  • 累计撰写 39 篇文章
  • 累计创建 6 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Orion: Interference-aware, Fine-grained GPU Sharing for ML Applications

蜉蝣
2025-09-04 / 0 评论 / 0 点赞 / 26 阅读 / 6415 字

引入

  • 背景

    • GPU比CPU吞吐量高几个数量级,高利用率使用GPU节能且节省开销

  • 问题

    • LC推理任务以小批量来满足SLO,并行度低;训练任务最大批量受限且受数据处理或通信瓶颈影响,都导致利用率低

  • 分析

    • DL负载由一系列数据依赖算子组成,各自有不同的计算和内存需求

    • 总会有某种类型资源闲置,吞吐量和带宽利用率呈爆发式,平均利用率低

  • 解决

    • GPU共享

  • 当前GPU共享问题

    • 时分共享以推理或一个训练批次为粒度,调度需等待GPU上任务完成,产生队头阻塞

    • 空分共享粒度过粗或无法充分感知任务干扰

  • Orion

    • 拦截内核启动启动请求,算子粒度,充分利用HP微秒级空闲的计算和内存资源

GPU架构背景

编程抽象

  • DL框架将卷积等运算编译后作为CUDA内核提交到GPU,同时进行显存、内存管理

  • 应用将内核启动和内存操作关联到一个CUDA流,流是按序执行的操作序列

GPU硬件调度

  • 如图3

  • 当SM上的某项资源被占满后,停止调度线程束

GPU利用率指标

  • SM利用率

    • 忙碌SM占比,但只要SM某一部分资源在使用即为忙碌,粒度粗

  • 计算吞吐量利用率

    • SM计算单元的利用率(激活时间占比)

  • 显存利用率

    • 已分配显存占比

  • 显存带宽利用率

    • 峰值显存带宽占比

DNN的GPU利用率

  • 受限于CPU、通信、组调度等瓶颈,利用率普遍较低

  • 除上述原因,批量大小同时影响GPU利用率、训练效率、训练指标

  • LLM推理解码阶段访存密集,不能高利用计算资源

实例分析

  • 所有负载计算吞吐量利用率和显存带宽利用率呈突发性波动,平均利用率低,尽管SM利用率较高

  • 计算吞吐量利用率和显存带宽利用率峰值在时间上交错

  • 大部分内核为计算密集或访存密集,无法同时占满两类资源导致闲置

GPU内核协同

  • 单个作业内核有顺序依赖

  • 跨作业可以协同调度资源密集型互补的内核,可以提高利用率且最小化干扰

GPU共享相关工作

时间共享

  • 多任务间GPU上下文切换实现

  • 现有系统仍依赖单任务串行执行,导致计算资源浪费

空间共享

  • MIG粗粒度分区不灵活,模型需要检查点恢复

  • MPS自由共享计算、存储和缓存资源,干扰大

  • 略,都未考虑内核密集型协同调度

Orion

  • 面向HP + BE,通过DLL形式实现

  • 拦截GPU操作根据离线剖析进行调度后提交执行,支持分布式

调度器

  • 针对闭源GPU,不考虑内核在SM中的分布控制和抢占

  • 客户端形式实现

内核调度策略

  • 轮询多客户端队列,直接提交HP内核到HP流

  • 离线剖析BE内核的计算/显存资源、SM利用率和执行时长,当无PH或BE规模小且与PH内核互补时调度

    • 根据PH吞吐量二分搜索BE内核的SM阈值,对于未知内核,直接乐观执行

    • BE内核只在未完成BE内核总预期耗时小于HP任务请求延迟(推理)或迭代周期(训练)时启动,避免长时间执行导致HP饥饿

实现机制

  • GPU流优先级

    • 优先调度HP流的新内核,因为不保证BE流内核被抢占

  • CUDA事件

    • 监控GPU流进度而无需流同步操作

内存管理

  • 内存操作(拷贝、分配)只消耗CPU-GPU带宽,与内核调度分离,直接提交

  • 内存操作可以考虑竞争来优化

  • 对于内存分配等设备同步操作,同步所有客户端避免无效内存访问

  • 与上层集群调度器正交,假设已选择与显存合适的任务共置运行

负载剖析

  • 任务执行前离线剖析:

    • 各内核计算吞吐量、内存吞吐量和执行时间

    • SM需求

    • HP任务请求延迟(单批推理/一轮训练)

DL框架集成

  • 框架无感知,通过动态链接集成,对用户透明

Pytorch原型

  • 通过封装CUDA内核启动和高性能库中的必要函数,将信息提交到客户端队列

评估

方法论

负载

  • 经典DL负载

  • 共置模式

    • 1 HP推理 + 1 BE训练

    • 1 HP训练 + 1 BE训练

    • 1 HP推理 + 1 BE推理

请求到达模式

  • 推理

    • 均匀分布、泊松分布

      • 平均到达率:匹配MAF前20常见应用

    • Apollo trace:视觉模型

      • PH使用时间戳,共置的BE均匀分布

  • 训练

    • 闭环提交

Baseline

  • 简单时分

  • MPS

  • GPU Streams

  • REEF-Nvidia

  • Tick-Tock

  • Ideal

指标

  • PH推理:p99延迟

  • 总吞吐量

实验

略,感觉有很多不合理的实验和分析

性能分析拆分

  • 给一个baseline逐渐增加Orion的优化模块,测试HP推理p95延迟变化

缺陷

  • 需要作业剖析,几十毫秒级的推理任务需要对每个内核进行2-5秒的离线剖析

    • 只适用于ML应用场景,模型固定,在作业无感知情况下不可行

0

评论区