云原生时代下大规模GPU资源利用率优化最佳实践 张伟 快手基础技术部容器云技术中心 目录页 Contents 1背景与趋势 2GPU虚拟化与混部 3GPU潮汐混部实践 4持续演进与展望 快手编排调度发展历程 2018~2019 发展启动 推动业务容器化 2019~2020 扩量与精细化 CPU在离线混部CPU潮汐混部 2021~2022 成本与稳定性 大套餐预留策略 实时负载&节点健康度调度 服务间亲和反亲和 社区策略定制 服务画像机制 服务内亲和反亲和 本地多磁盘策略 多集群联邦 计量计费 GPU虚拟化与GPU混部AI训练与潮汐混部NUMA亲和 2023~后续 全局资源效率 资源合池 多场景统一调度全局弹性能力扩量 业务背景与趋势 服务量动态增长微服务改造、长尾增多 实时流量潮汐实例负载及规模快速变化 资源池共享推理/训练/近线多场景混合 算力需求多样化 GPU 算力强需求 与 提升GPU资源效率 卡类型多样 GPU硬件多年持续迭代 平台系统损耗 故障及主机异构的调度损耗 资源弹性需求 单卡、多卡、多机多卡场景 云原生化 多业务场景 GPU应用已深刻影响各类业务(搜广推、音视频、MMU、风控等)场景 快手内部GPU在线服务及离线训练任务均完成云原生化迁移 背景:成本问题逐步凸显 核心优化目标:GPU资源利用率提升 图:快手内部某服务GPU使用率趋势 GPU卡规模 主流A100、A30、A10、T4等多型号数万台GPU主机&十万量级GPU卡 十万量级 在线服务(推理等)、AI训练任务及近线服务(特征提取等)多样化场景 GPU服务 数千量级 在线服务GPU峰均差值约30PP训练类算力全天需求旺盛 运行效率 峰均差值 面临挑战 业务框架适配云原生合池 GPU卡型多样 机型异构 成本控制 利用率 云原生下的挑战 容量冗余控制 稳定性 GPU显存约束流量潮汐变化 GPU编解码器新卡性能增强 故障隔离资源配额保障 成本优化是目标,稳定性保障是前提 目录页 Contents 1背景与趋势 2GPU虚拟化与混部建设 3GPU潮汐混部实践 4持续演进与展望 为什么需要虚拟化与混部类技术 任务颗粒度 VGPU 大量单实例无法用满GPU资源 硬件算力持续增强形成浪费 GPU算力 显存 编码器 渲染器 请求优先级 Prioritized-QoS 在线容量冗余,峰值高而日均利用不足 离线训练成本高昂,近线类需求旺盛 高优抢占 分时复用 削峰填谷 消除冗余 高优保障在线峰值流量 提升利用率优化成本 离线训练+近线任务压缩算力成本 保障实时在线需求 如何落地系统能力 业务场景 Services 电商推荐广告搜索音视频…特效处理直播媒体处理风控 框架平台 Framework&Platform 在线推理 音视频增强 服务容器部署平台 特征提取等近线任务 离线AI训练 机器学习平台 VGPU在线业务场景混部GPU离线训练与近线任务 虚拟GPU资源定义与调度 API劫持GPU算力隔离显存隔离限制 显存水位预测算力请求优先级离线时间片兜底 高优QoS抢占 显存分配识别 编解码器拦截 显存实时避让 离线内存监测离线CPU压制 硬件基础设施 Infrastructure GPU卡CPU内存网络存储 路径 允许多容器实例在资源隔离前提下共享GPU卡 方式 VGPU实例:CPU+内存+算力占比+显存占比+器件选配 收益 业务:用量减少成本降低 平台:部署密度增加利用率提升 单实例独占 GPU显存 GPU算力 GPU显存 GPU算力 多实例共享 编解码器可选项 N分之一算力/显存 什么是GPU虚拟化 算力单元 算力单元 GPU 显存 编解码器 渲染器 GPU虚拟化底层技术选型 NvidiaMPS 多进程共享上下文,吞吐指标更优缺乏故障强隔离,容器间异常会传导不支持显存硬隔离 内核层劫持 内核层拦截驱动API隔离显存/算力细粒度的显存和算力调度策略 无需替换CUDA库上层应用无感 CUDA层劫持(vCUDA) CUDA层拦截API隔离显存/算力依赖容器镜像替换CUDA库CUDA发新版需要迭代适配 NvidiaMIG 硬件物理切分方式,适用A100、A30等卡型不支持动态划分 依赖CUDA11及以上高版本 快手GPU虚拟化方案 技术路线:内核态劫持 ●算力隔离:基于内核态的时间片轮转调度,多容器时分复用GPU计算器件 ●显存隔离:基于内核态劫持显存申请、回收等接口,控制容器使用显存配额 共享GPU的多容器 时间片分配周期Period 多容器实例按时间片轮转切换 占用GPU出让GPU Pod1 Pod2 VGPU按时间片调度示意图 时间轴t 性能压测数据 25.000 聚合QPS对比 20.000 15.000 10.000 原生GPU整卡快手虚拟化单卡双实例MPS方案单卡双实例 有效吞吐介于原生整卡与MPS抢占模式间 具备故障强隔离能力,显著优于MPS方案 5.000 0.000 1816 BatchSize 3264 35.00 30.00 P99延迟对比 原生GPU整卡模式快手GPU虚拟化单卡两实例MPS方案单卡两实例 25.00 时间片轮转引入极端场景P99延迟放大 适用具备一定延迟容忍的业务场景 20.00 15.00 10.00 5.00 0.00 18163264 BatchSize GPU虚拟化-产品形态 按比例切分出VGPU单元产品设定不同比例套餐并推荐 (1)在线服务使用整卡 (2)在线服务使用半卡 资源套餐通用GPUA30(8核12GB整卡50%显存) 资源套餐通用GPUA30(4核8GB0.5卡50%显存) VGPU集群资源调度架构 碎片控制 同服务尽力反亲和 1/N卡实例优先组合 存核比匹配优化瓶颈 … 负载感知 编解码器显式分配 离近线+低压力在线优先组合 在线VGPU扩容感知混部GPU … 什么是GPU混部? 允许在线和离近线容器实例在请求优先级保障前提下共享同一块GPU卡 算力抢占 在线服务有GPU计算请求时立刻获取算力执行,离线服务的请求被压制 在线请求实时抢占 立即执行 执行结束 请求resume resume 请求 请求suspend d 请求suspen 在线实例A 离线实列B 离线实例C 显存避让 当剩余GPU显存低于安全阈值时,离线服务实例会被立即驱逐以释放显存供给在线服务进程 时间轴t 整卡显存 缓冲阈值空闲显存 离线已用显存 在线已用显存 离线实例 6重调度后在新主机拉起 1申请显存 kGPU驱动 2实时检测显存余量低于阈值则生成通知事件 4感知显存实时可申请量 单机管理组件 离线进程可用显存 3主动驱动低优离线实例 5阻止低优实例原地拉起 DevicePlugin GPU混部利用率提升 GPU混部提升利用率示意 仅在线服务运行的GPU利用率在线与离近线复用资源下的GPU利用 KGPU驱动-内核模块 /dev/nvidia0 CUDAAPP /dev/nvidia0 CUDAAPP /dev/nvidia0 CUDAAPP 容器1容器2容器N … 抢占调度 权重隔离 GPU算力调度器 虚拟设备透传 业务透明无感切换 KgpuDeviceWrapper 算力调度器 容器N … 容器2 容器1 KGPUDeviceWrapper 离在线混部 Doorbell拦截 显存隔离 CUDA库逆向 显存避让 水位预警 高优QOS抢占 实时退避 Busy检测判断 IOCTL透明劫持 显存分配识别 使用预测 离在线混部 显存隔离 显存避让 核心功能因素 驱动二进制解析 原生Driver 硬件GPU卡 利用率提升效果 GPU日均利用率趋势 完备的故障隔离能力 实时量化干扰指标 稳定性保障 对接服务成本优化超50% 数千卡近线类算力稳态供给 业务成本显著下降 GPU峰均提升约6PP GPU日均提升近7PP 推理类资源池利用率提升显著 JanFebMarAprMayJuneJulyAug 目录页 Contents 1背景与趋势 2GPU虚拟化与混部建设 3GPU潮汐混部实践 4持续演进与展望 潮汐混部业务背景 GPU整机维度分时复用 AI训练计算量大 •多机多卡高算力需求 •多角色Gang调度 •任务非实时可推迟运行 利用率优化痛点 •训练过程需要稳态运行 •内存+IO+网络等多瓶颈 •资源配额实时协调 在线服务强保障 •延时极度敏感 •性能波动关乎收入 •潮汐特征明显 风险与挑战 风险收益 X核心业务延迟增加影响收入 ✔ X网络+磁盘等瓶颈拉低可用性 VS资源复用模型训练吞吐加速 ✔业务成本显著优化 X在线流量变化实时扩量需保障 XAI算法团队研发效率波动风险 潮汐混部的周期切换 实时抢占 推理稳态运行 07:30~08:30早高峰在线流量启动期 抢占 在线服务逐步扩容增加容量,抢占逻辑最高优稳态 保障在线服务资源供给 08:30~22:30在线业务流量持续高位 保障在线推理场景持续稳定运行,冗余资源支持小微低优任务运行 流量预测+弹性扩量+优先级抢占 训练任务运行稳态 转换 23:30~07:30凌晨在线流量持续低谷 干扰观测跟踪+调度策略定制 在离资源转换 22:30~23:30晚高峰在线流量消退期 提升训练任务错峰规模化运行稳定性,尽力减少运行失败导致的无效损耗 在线按容量预测缩容,尽力空出整机 调度实时感知算力分布 调度策略定制+重调度干预 离线训练运行保障 08:30~22:3022:30~23:3023:30~07:3007:30~08:30 离线训练任务运行规模趋势 特点离线GPU资源持续压制状态 空闲整机存在不确定性 离线GPU资源逐步增多空闲整机规模快速增加 离线GPU资源规模趋势于稳定态空闲整机确定性显著增强 离线GPU资源被实时抢占空闲整机规模快速减少 策略低配短时训练任务排队提交 训练任务队列逐步迁移扩量 高配长任务放量启动运行任务队列暂停高优提交 装箱优先策略保持整机空闲预留任务失败自动重试提升成功率 干预缩容实例尽力空出整机二次调度主动腾挪提升装箱率 调度器感知任务优先级+运行时长压制训练任务因资源导致的失败率 训练任务保存结果逐步退出切换适量低配短时训练任务 资源抽取率提升实践 编排控制器干预缩容过程 调度器推荐缩容排序控制器执行缩容过程 整机抽取率>20% 白天装箱率>96% 夜间装箱率>90% 晚高峰后业务并发缩容实例压测完成容量预估HPA缩减实例释放配额 快速释放在线资源 批量空闲离线整机 并发实现碎片聚合 装箱率跟踪 整机空闲转换为离线节点非空闲持续提升装箱指标 重调度主动规整 DeScheduler跨服务并发重调度一次调度策略重聚合空闲整机 潮汐策略运转效果 01GPU日均提升 01成本优化 凌晨时段资源转化抽取率20+% 混部GPU实际分配率近80% GPU日均提升3~5PP 仅以T4和A10型号为统计范围 凌晨时段可转化节省数千块A10卡和T4卡年化收益数千万元 2023年潮汐范围GPU日均趋势 2023年GPU资源转化率趋势 JanFebMarAprMayJune JanFebMarAprMayJune 目录页 Contents 1背景与趋势 2GPU虚拟化与混部建设 3GPU潮汐混部实践 4持续演进与展望 持续演进与趋势 资源及业务趋势平台演进展望 •GPU性能持续增强 •集群增长+硬件异构 •多业务动态共享算力 •训练+在线资源实时双向互通 •提取业务特征,优化多维度瓶颈 •实时负载感知,极限提升利用率 •多队列+优先级,持续提升吞吐 ThankYou! Q&A