https://zhuanlan.zhihu.com/p/642412124

[](data:image/svg+xml;base64,PHN2ZyB2aWV3Ym94PSIwIDAgNjQgMzAiIGZpbGw9IiMxNzcyRjYiIHdpZHRoPSI2NCIgaGVpZ2h0PSIzMCIgY2xhc3M9ImNzcy0xaGxyY3hrIj48cGF0aCBkPSJNMjkuMDUgNC41ODJIMTYuNzMzVjI1Ljk0aDMuMDE4bC40MDMgMi41NzIgNC4wODEtMi41NzJoNC44MTVWNC41ODJ6bS01LjIwNyAxOC42OWwtMi4zOTYgMS41MDktLjIzNS0xLjUwOGgtMS43MjRWNy4yMzNoNi43OHYxNi4wNGgtMi40MjV6TTE0LjQ2IDE0LjE5MUg5Ljk4MmMwLS40NzEuMDMzLS45NTQuMDM5LTEuNDU4di01LjVoNS4xMDZWNS45MzVhMS4zNTIgMS4zNTIgMCAwIDAtLjQwNC0uOTU3IDEuMzc4IDEuMzc4IDAgMCAwLS45NjgtLjM5Nkg1Ljc4M2MuMDI4LS4wODguMDU2LS4xNzcuMDg0LS4yNTUuMjc0LS44MiAxLjE1My0zLjMyNiAxLjE1My0zLjMyNmE0LjI2MiA0LjI2MiAwIDAgMC0yLjQxMy42OThjLS41Ny40LS45MTIuNjgyLTEuMzcxIDEuOTQ2LS41MzIgMS40NTMtLjk5NyAyLjg1Ni0xLjMxIDMuNjkzQzEuNDQ0IDguNjc0LjI4IDExLjAyNS4yOCAxMS4wMjVhNS44NSA1Ljg1IDAgMCAwIDIuNTItLjYxYzEuMTE5LS41OTMgMS42NzktMS41MDIgMi4wNTQtMi44ODNsLjA5LS4zaDIuMzM0djUuNWMwIC41LS4wNDUuOTgyLS4wNzMgMS40NmgtNC4xMmMtLjcxIDAtMS4zOS4yNzgtMS44OTMuNzc1YTIuNjM4IDIuNjM4IDAgMCAwLS43ODMgMS44NzRoNi41MjdhMTcuNzE3IDE3LjcxNyAwIDAgMS0uNzc4IDMuNjQ5IDE2Ljc5NiAxNi43OTYgMCAwIDEtMy4wMTIgNS4yNzNBMzMuMTA0IDMzLjEwNCAwIDAgMSAwIDI4Ljc0czMuMTMgMS4xNzUgNS40MjUtLjk1NGMxLjM4OC0xLjI5MiAyLjYzMS0zLjgxNCAzLjIzLTUuNzI3YTI4LjA5IDI4LjA5IDAgMCAwIDEuMTItNS4yMjloNS45Njd2LTEuMzdhMS4yNTQgMS4yNTQgMCAwIDAtLjM3My0uODk5IDEuMjc5IDEuMjc5IDAgMCAwLS45MDktLjM3eiIgLz48cGF0aCBkPSJNMTEuMjcgMTkuNjc1bC0yLjMxMiAxLjQ5MSA1LjAzOCA3LjQ1OGE2LjkwNSA2LjkwNSAwIDAgMCAuNjcyLTIuMjE4IDMuMTUgMy4xNSAwIDAgMC0uMjgtMi4xNjhsLTMuMTE4LTQuNTYzek01MS40NDkgMTUuMTk1VjUuODQyYzQuMTgxLS4yMDUgNy45ODgtLjQwNSA5LjQzOC0uNDgzbC44NTEtLjA1Yy4zODctLjM5OS44ODUtMi4zOTUuNjg5LTMuMDIxLS4wNzMtLjI1LS4yMTMtLjY2Ni0uNjM4LS41NTVhMzMuMjc5IDMzLjI3OSAwIDAgMS00LjI3Ny43MjdjLTIuNzY2LjMyMS0zLjk3LjQwNC03LjgwNC42ODItNi43MTguNDg3LTEyLjcwOS43Mi0xMi43MDkuNzJhMi41MTggMi41MTggMCAwIDAgLjc4OCAxLjgzNCAyLjU2NyAyLjU2NyAwIDAgMCAxLjg4My43MDZjMi4yNzgtLjA5NSA1LjU5OC0uMjUgOC45OTYtLjQxdjkuMjAzaC0xMi43OGMwIC43MDMuMjgxIDEuMzc3Ljc4MyAxLjg3NGEyLjY5IDIuNjkgMCAwIDAgMS44OTIuNzc3aDEwLjEwNXY3LjA3NWMwIC44ODctLjQ2NCAxLjE5Mi0xLjIzMSAxLjIxNGgtMy45MmE0LjE1IDQuMTUgMCAwIDAgLjgzNyAxLjU0NCA0LjIgNC4yIDAgMCAwIDEuNDAzIDEuMDY3IDYuMjE1IDYuMjE1IDAgMCAwIDIuNzEuMjc3YzEuMzYtLjA2NiAyLjk2Ny0uODI2IDIuOTY3LTMuNTd2LTcuNjA3aDExLjI4Yy4zNDIgMCAuNjctLjEzNS45MS0uMzc0LjI0Mi0uMjM5LjM3OC0uNTYzLjM3OC0uOTAydi0xLjM3NUg1MS40NDl6IiAvPjxwYXRoIGQ9Ik00Mi42MTQgOC44NzNhMi4zMDQgMi4zMDQgMCAwIDAtMS41MDgtLjkyNiAyLjMzNCAyLjMzNCAwIDAgMC0xLjcyNy40MDVsLS4zNzYuMjcyIDQuMjU1IDUuODUgMi4yNC0xLjYyLTIuODg0LTMuOTh6TTU3LjM1IDguNjhsLTMuMTI1IDQuMDk3IDIuMjQgMS42NjMgNC41MTctNS45MjctLjM3NS0uMjc3YTIuMzIgMi4zMiAwIDAgMC0xLjcyMi0uNDUyIDIuMzI3IDIuMzI3IDAgMCAwLTEuNTM2Ljg5NnoiIC8+PC9zdmc+)

一、子图融合(subgraph fusion)

图融合技术即通过将多个 OP(算子)合并成一个 OP(算子),来减少Kernel的调用。因为每一个基本 OP 都会对应一次 GPU kernel 的调用,和多次显存读写,这些都会增加大量额外的开销。

1.1 FasterTransformer by NVIDIA

FasterTransformer(FT) 是一个用于实现基于Transformer的神经网络推理的加速引擎。FT框架是用C++/CUDA编写的,依赖于高度优化的 cuBLAS、cuBLASLt 和 cuSPARSELt 库,与 NVIDIA TensorRT 等其他编译器相比,FT 的特点是它支持以分布式方式推理 Transformer 大模型

图融合是FT 的一个重要特征,将多层神经网络组合成一个单一的神经网络,将使用一个单一的内核进行计算。 这种技术减少了数据传输并增加了数学密度,从而加速了推理阶段的计算。 例如, multi-head attention 块中的所有操作都可以合并到一个内核中。

image.png

除此之外,FT还对部分大模型分别支持:

1.2 DeepSpeed Inference by Microsoft

对于 Transformer layer,可分为以下4个主要部分:

  1. Input Layer-Norm plus Query, Key, and Value GeMMs and their bias adds.
  2. Transform plus Attention.
  3. Intermediate FF, Layer-Norm, Bias-add, Residual, and Gaussian Error Linear Unit (GELU).
  4. Bias-add plus Residual.