GPU池化如何帮助AI业务混合部署

GPU池化如何帮助AI业务混合部署
文章图片
前情提要
在之前的文章《
然而 , GPU池化不仅仅只是GPU共享 , 在共享的基础之上 , GPU池化还提供很多实用的功能 , 帮助人工智能业务更好的落地 , 实现对GPU资源的高效管理 。 今天 , 我们从业务的角度来看一下GPU池化的高级功能 。
业务类型与业务现状
AI业务按类型大致可以分成以下几种:
1.在线推理类业务 , 这类业务时效性要求较高 , 比如身份证识别、人脸识别、智能外呼等;
2.离线推理业务 , 这类业务时效性要求没那么高 , 比如文档智能抽取、资料审核、量化分析等;
3.模型训练任务 , 主要用于上述各种算法模型的更迭 , 运行时间较长 , 运行时段灵活 。
通常 , 为了确保业务的隔离性、相互之间无干扰、保障服务的SLA , 大多数企业都是将各个业务分别部署在独立的GPU卡上 , 如下图:
GPU池化如何帮助AI业务混合部署
文章图片
GPU池化如何帮助AI业务混合部署】这个部署方式SLA是有保障了 , 但是也带来了一些问题:
1.闲置资源较多 。
2.业务数量与GPU数量深度绑定 , 随着大规模AI应用的上线,GPU数量容易成为业务扩展的瓶颈 。
3.扩容GPU服务器成本高昂 , 交付周期长 。
4.在线、离线、训练业务交叉轮流使用 , 变动流程繁琐 , 协调成本高 , 交付速度慢 , 体验不佳 。
5.缺少全局统一的GPU资源配置和监控中心 。
GPU池化优化的场景一:多个在线推理混合部署
通常在大多数推理场景下 , GPU卡很难发挥100%的性能 , 如果简单的按卡为单位进行分配 , 会有很多资源闲置浪费 。
为此 , 我们可以将GPU卡的算力和显存根据实际业务需求进行切分 , 分成若干个虚拟GPU , 每个虚拟GPU给到一个业务使用 。 这样 , 多个在线推理业务可以部署在同一张GPU上 。
业务收益:①充分挖掘和有效利用了现有GPU资源 , 可以服务和支撑更多业务 , 满足了业务对弹性并发的需求 。 ②提高GPU利用率 , 消除硬件瓶颈 。
OrionX池化能力关键词:化整为零 , 动态释放 。
GPU池化如何帮助AI业务混合部署
文章图片
GPU池化优化的场景二:在/离线推理混合部署 , 算力超分 , 昼夜复用
某些在线推理业务 , 在时间维度有着非常显著的时间分布特性 , 比如OCR模型、身份识别等 。 它们在白天上班时间有着频率极高的业务请求量 , 在晚上下班之后请求量变得极低 。 与之相对应的是对GPU算力的占用也呈现出强烈的波峰波谷效应——在业务请求密集的时间段 , GPU算力几乎100%运转;到了夜晚几乎无任何业务请求 , 算力100%闲置 。
为了复用这部分算力资源开展离线业务 , 运维人员需要在夜晚手动调整在线业务部署 , 再拉起离线推理业务 。 在线/离线业务变更涉及资源分配、网络调整等一系列动作 , 变动流程繁琐 , 需要一定的资源、人力协调成本 。 同时 , 算力资源运维监控缺乏统一界面呈现 , 运维人员无法第一时间获取资源利用情况 。
为了削峰填谷 , 错峰运行 , 我们可以有更简化 , 更智能的办法 。 OrionX支持任务级别的自动化管理 , 可以设定任务的自动上线时间及运行周期 。 在夜间在线业务低谷期 , 离线业务定时上线 , 开始执行离线审核类业务 , 业务完成后 , 离线业务自动下线 。
与此同时 , 在线业务无需下线 , 可以不间断运行 。 OrionX支持算力超分 , 允许单个GPU卡分配超过100%的算力资源 。 因此 , 我们可以将在线与离线两个业务同时调度到一个GPU卡上同时运行 。 由于在线与离线业务存在客户响应时间的差异 , 因此我们支持对这两个业务设置不同优先级 。 夜晚 , 当在线业务有请求到来时 , OrionX优先保障高优先级的在线业务所需的算力资源 , 离线业务应用此时暂时挂起 , 等待在线业务处理完成后再继续执行 。