《昇腾推理技术的优化实践.pdf》由会员分享,可在线阅读,更多相关《昇腾推理技术的优化实践.pdf(35页珍藏版)》请在三个皮匠报告上搜索。
1、昇腾推理技术的优化实践演讲人:张君目录01020304大模型推理的现状及挑战昇腾硬件亲和的FA融合算子性能优化实践基于Ascend C的MC通算融合算子性能优化总结与展望01大模型推理的现状以及挑战现状1:模型规模增大及自回归解码带来访存及算力利用率压力NNNNNNNNNN缓存Decode阶段Prefill阶段batchseq小迭代多步不同请求输入长度不同batchseq大不同用户请求输出长度不同迭代步数多的请求时延长每token串行02时延决定用户体验,吞吐衡量系统成本模型规模大,内存容量和访存是瓶颈内存容量不足导致单卡无法推理模型参数:百亿/千亿模型参数超过单卡内存容量KVCache:随着
2、batchsize和序列长度增长,占用更多内存;访存带宽制约50ms/token推理时延达成多路并发缓和带宽压力,提升吞吐但增加时延随着序列增长,KVCache访存成为瓶颈,推理时延成倍增长自回归算力利用率低,低时延高吞吐难以兼顾Prefill和Decode两阶段推理差异大,难以充分利用算力资源基于request的调度导致大量算力空闲:同batch序列长度差异大不同阶段的请求难以batch:prefill/decode输入、kvcache维度差别大Decode阶段每token串行解码算力利用率低串行解码以GEMV为主,计算访存比低KVCache访存量随序列长度增长,Attention占比增加现
3、状2:KV Cache导致内存墙”瓶颈进一步加剧 推理计算量=L (4 2 +24 Seq Dim2)KVCache内存占用=2 L Attention计算量与序列长度成平方关系,线性层计算量与序列长度成正比不采用KV Cache,全量计算硬推,计算量随序列长度增加指数级增涨采用KV Cache,推理内存开销数线性增长,形成“内存墙”和”带宽墙”=S =oftmax(S)Attention计算结果 2K Cache V Cache=oftmax(S)S 2Attention计算结果 2示例:以Llama2 70B为例,1M序列长度推理时延52秒,算力利用率50%,需要消耗216NPU卡(备注:
4、L网络层数,特征维度,序列长度,KVB为精度)示例:以Llama2 70B为例,1M序列长度推理时延52秒,HBM利用率50%,需要消耗18 NPU卡内存墙:KV Cache内存占用随序列长度、Batch size增加,KV cache显存开销成倍上升,采用HBM存储KV Cache成本依然很高。原理:矩阵 矩阵,瓶颈:算力 原理:向量 矩阵,瓶颈:HBM或者显存开销大模型推理常用加速技术算法层优化 模型分片:分片策略优化,增量推理 投机推理:自投机增量推理 模型量化:8Bit量化,4Bit量化 Attention计算优化 02算子层优化 算子融合:QKV融合大算子,提升增量响应。高性能加速库
5、:cuBLAS,FasterTransformer,ATB等 01框架层优化 Continous Batching PageAttention PD分离部署 03发力点02昇腾硬件亲和的FA融合算子性能优化实践挑战1:vector能力不足,如何用cube补齐 受限于昇腾Atlas 300I上Vec算力相较于Cube低很多,FA(FlashAttention)算子的性能分析结果呈现很明显的VecBound(Vector是性能瓶颈,约占总执行时间的90%)Click to add text FA/PA算法的重点就是使用onlineSoftmax(分块、动态)的方法小步快跑,逐步对kv cache进
6、行计算,提升计算效率,减少内存占用 onlineSoftmax算法一般涉及exp、sub、Mul、Add等步骤,由于它们都是向量操作,所以一般放在Vec进行更新计算,这部分约占算子执行总时间的15%但Mul和Add操作是非常亲和矩阵乘计算的,所以现考虑能否把这两个计算步骤改到Cube进行计算,提升性能AI Core的耦合架构 Cube计算单元和Vector计算单元同核部署,Cube计算单元和Vector计算单元共享同一个Scalar单元,统一加载所有的代码段。列出了计算架构中的存储单元和计算单元,箭头表示数据处理流向,MTE1/MTE2/MTE3代表搬运单元。Scalar,Vector计算单元