- 简介随着大型语言模型(LLM)在各个领域中变得越来越重要,但是在加速LLM推理方面仍然存在以下挑战:(1)同步部分softmax更新。softmax操作需要在每个部分softmax结果之间进行同步更新操作,导致LLM中注意力计算的开销约为20%。(2)扁平GEMM的计算未充分利用。在LLM推理中执行GEMM的矩阵形状是扁平的,导致计算未充分利用,在之前的设计中填充零后性能损失超过50%。(3)静态数据流导致的性能损失。LLM中的内核性能取决于不同的输入数据特征、硬件配置等。单一和静态的数据流可能导致LLM推理中不同形状的GEMM性能损失高达50.25%。我们提出了FlashDecoding++,这是一个支持主流LLM和硬件后端的快速LLM推理引擎。为了解决上述挑战,FlashDecoding++提出了以下创新:(1)异步softmax与统一最大值。FlashDecoding++为不同的部分softmax计算引入了统一的最大值技术,避免了同步。(2)扁平GEMM优化与双缓冲。FlashDecoding++指出,具有不同形状的扁平GEMM面临着不同的瓶颈。然后,引入了双缓冲等技术。(3)启发式数据流与硬件资源自适应。FlashDecoding++使用不同的硬件资源考虑输入动态启发式优化数据流。由于FlashDecoding++中优化的多功能性,与Hugging Face实现相比,FlashDecoding++可以在NVIDIA和AMD GPU上实现高达4.86倍和2.18倍的加速。FlashDecoding++还在主流LLM上实现了平均1.37倍的速度提升,超过了最先进的LLM推理引擎。
-
- 图表
- 解决问题FlashDecoding++旨在解决加速大型语言模型推理过程中的三个挑战:同步部分softmax更新、平坦GEMM的低效利用和静态数据流带来的性能损失。
- 关键思路FlashDecoding++提出了三种创新技术来解决上述挑战:异步softmax与统一的最大值、平坦GEMM优化与双缓冲以及启发式数据流与硬件资源自适应。
- 其它亮点FlashDecoding++可以支持主流的大型语言模型和硬件后端,并且可以实现高达4.86倍和2.18倍的加速。论文还介绍了实验设计和使用的数据集,并开源了代码。
- 相关论文包括:Hugging Face、OpenAI、Google等机构的大型语言模型推理引擎的研究。
NEW
提问交流
提交问题,平台邀请作者,轻松获得权威解答~
向作者提问

提问交流