开发者学堂课程【如何利用飞天AI解决方案帮助升级异构计算的AI架构:升级3:飞天AI推理加速引擎】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/648/detail/10749
升级3:飞天AI推理加速引擎
内容介绍:
一、基于异构计算 AI 应用架构的问题三
二、AIACC-Inference 架构
三、高性能算子库底层性能优化技术
四、客户案例
一、基于异构计算 AI 应用架构的问题三
在解决训练问题之后,又遇到一个推理的问题,会有客户反映推理延迟太高,可能需要实时性的要求,推理可能在10毫秒之内就要返回,但往往推理时达不到用户的需求,其中一个重要原因是 GPU 计算能力不能充分发挥,GPU的利用率低,另外一个问题是对 PyTorch 没有做优化;第二个问题是客户场景多样化,不同的计算框架、不同的场景都要做优化;第三个问题是缺乏统一推理优化引擎,Tensorflow、TensorRT、Serving、PyTorch、MXNET 都有自己的特定引擎,所以遇到不同客户不同需求时,要针对不同的场景,不同的引擎做优化。所以升级3是飞天 AI 推理加速引擎。AIACC 推理加速引擎(AIACC-Inference),它支持 AIACC-Tensorflow、AIACC-PyTorch、AIACC-MXNET、AIACC-Kaldi 的统一优化。
二、AIACC-Inference架构
AIACC-Inference 架构如下图所示,Tensorflow、PyTorch、MXNET、Kaldi 的模型都可以通过框架做自动的优化,Tensorflow 直接通过模型的Loader来做模型的自动优化,包括子图分割、层融合优化以及量化优化,最终转化成含TensorRT 的高性能算子库,含有自行研发的 keno,PyTorch、MXNET、Kaldi 先通过模型的转换,转换成 ONNX 的模型,对其进行自动优化,最终通过子图分割、层融合优化以及量化优化之后,转化成高性能算子库的优化,最终只需要对高性能算子库做一份底层优化的代码,就可以满足这些优化的需求。
三、高性能算子库底层性能优化技术
优化技术主要针对 GPU 底层的优化,包括数据分块优化,将合适的数据分块,减少矩阵元素 load 次数;缓存优化,将数据分块放入共享内存、寄存器,双缓冲区,计算前先 load 下一个块,避免 bankconflict 性能恶化、数据布局偏置;同时访存带宽优化,每个线程读多个数据,合并访问,提高显存带宽利用率;计算优化,计算、访存重叠,隐藏数据访问开销,同时控制单线程寄存器数量,提高并行度;自动参数搜索,自动找到最合适的优化方式;优化结果,最终卷积性比 TensorRT6提升到1.3~2.4倍。
四、客户案例
客户案例一是加速视频超分推理性能视频超分配置是T4GPU,性能优化包括把视频解码移植到 GPU、前后处理移植到GPU、自动凑 Batch、做卷积深度优化,最终性能提升到2.7倍,QBS 从之前的150提升到现在的400多。
客户案例二是加速图像合成推理性能,性能优化包括前后处理移植到 GPU,自动凑 Batch,卷积深度优化,最终整体性能提升到4倍。
客户案例三是加速 CTR 预估推理性能,模型是 Wide&Deep 模型,配置是 M40GPU,性能优化包括流水线优化,模型拆分,子模型分别优化,最终性能提升到6.1倍
客户案例四是加速 NLP 推理性能,模型是 Bert 模型,配置是 T4GPU,之前的 QBS 是100,优化后可以提升到350,性能提升到3.3倍。