算子融合与 Kernel 优化:从 CUDA Graph 到 FlashAttention 的极致性能
在 GPU 推理中,最贵的往往不是计算,而是数据搬运:每一个算子都要把中间结果写回显存、再读出来,内存带宽成为瓶颈。算子融合就是把多个算子合并成一个 kernel,减少显存往返,是 TensorRT、vLLM、PyTorch 编译器都在做的事。本文从融合原理讲起,拆解 FlashAttention 类融合,再到 CUDA Graph 与自定义 kernel 开发流程。一、为什么需要算子融合
tag
在 GPU 推理中,最贵的往往不是计算,而是数据搬运:每一个算子都要把中间结果写回显存、再读出来,内存带宽成为瓶颈。算子融合就是把多个算子合并成一个 kernel,减少显存往返,是 TensorRT、vLLM、PyTorch 编译器都在做的事。本文从融合原理讲起,拆解 FlashAttention 类融合,再到 CUDA Graph 与自定义 kernel 开发流程。一、为什么需要算子融合