FlashDecoding++:比flashdecoding更快的推理加速策略

向量数据库大模型ClickHouse

        
          
https://arxiv.org/pdf/2311.01282v1.pdf  

      

主要研究了如何在GPU上加速大型语言模型(LLM)的推理过程。论文针对LLM推理中存在的三个挑战提出了相应的解决方案:

picture.image

  1. 同步部分Softmax更新:在LLM中,注意力计算需要对每个部分Softmax结果进行同步更新,导致约20%的开销。为了解决这个问题,作者提出了一种异步Softmax方法,通过引入一个统一的最大值技术,使得不同部分的Softmax计算可以避免同步。
  2. 平坦GEMM(General Matrix Multiplication)的计算资源利用率低:在LLM推理的解码阶段,矩阵形状往往是扁平的,导致计算资源利用率低。为了解决这个问题,作者提出了一种双缓冲优化策略,将矩阵大小填充到8而不是64,从而提高计算利用率。此外,针对不同形状的扁平GEMM,作者还引入了双缓冲等技术来进一步提高内核性能。
  3. 静态数据流导致的性能损失:由于输入数据特征和硬件配置的多样性,单一静态数据流可能导致LLM推理中不同形状GEMM的性能损失。为了解决这个问题,作者提出了一种启发式数据流优化方法,根据输入动态和硬件资源(如Tensor Core或CUDA核心)来调整内核优化。

通过这三种创新方法,FlashDecoding++在NVIDIA和AMD GPU上分别实现了与Hugging Face实现相比高达4.86倍和2.18倍的加速。此外,与当前最先进的LLM推理引擎(如FlashDecoding)相比,FlashDecoding++在主流LLM(如Llama2、ChatGLM2等)上实现了平均1.37倍的加速。

总之,这篇论文提出了一种名为FlashDecoding++的快速LLM推理引擎,通过创新地解决了LLM推理中的三个关键挑战,从而在GPU上实现了更快的大型语言模型推理。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
DevOps 在字节移动研发中的探索和实践
在日益复杂的APP工程架构下,如何保证APP能高效开发,保障团队效能和工程质量?本次将结合字节内部应用的事件案例,介绍DevOps团队对移动研发效能建设的探索和思考。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论