id | title | type |
---|---|---|
high_service |
high_service与torchpipe异同比较 |
explainer |
high_service是阿里妈妈 预测引擎团队打造的一款多媒体AI推理服务加速。综合以下公开信息,我们将其与torchpipe进行简单的对比:
项目 | 相同点 |
---|---|
目标 | 提升GPU利用率以及避免GPU资源浪费,解决用Python上线目标业务时AI推理服务GPU利用率低的问题 |
项目 | high_service | torchpipe |
---|---|---|
团队 | AI-Serving异构计算团队(为多媒体在线预估服务打造,并扩展到内容风控业务) | 音视频算法团队 |
核心差异总结 | 包含完整集群调度,服务优化,模型封装,采用多个cpu进程和一个gpu进程(类似4 workder gunicorn + 1 triton)结构 | 包含后两者,以多线程结构为基础;并着重于完整多节点调度。 |
角度 | 集群服务调度、服务架构优化、模型推理加速 | 服务架构优化、模型推理加速、预置计算节点加速 |
挑战 | GIL,资源使用率不高,资源使用效率不足,流量不均匀 | python等运行时损耗,GIL,资源使用率不高,资源使用效率不足 |
http等接口 | 含有 | 无,提供线程安全函数接口 |
集群 | 基于业务优先级的自动扩缩容多租户复用,开启multi-process services,利用MIG | 放弃;着重于最大化利用单节点,此部分交由上层 |
服务架构 | 多进程架构,多个cpu进程和一个(或多个)gpu进程,与gunicorn+triton类似; | 多线程为基础,可扩展多进程 |
模型优化层面 | 引入针对tensorrt等高度的封装,支持onnx, tensorrttensor,集成一些工具 | 内置部分后端,高度可扩展 |
独有特点 | 集群管理,解决多服务互相影响和请求波峰波谷的问题。这个问题非常难以处理 | 细粒度后端,预制大量gpu后端,全流程gpu化;多节点调度/条件控制流;复杂逻辑通过AOT全流程GPU化;pytorch前端,易用性上更多的保证 |
核心劣势 | 跨进程使得全流程gpu化困难,运行时损耗更严重 | 多线程架构下,非适配的python节点,受限于GIL锁带来的性能影响,需要结合多进程后端适配器/RPC以及python后端 |