技术深度解析
Ada-MK 的核心创新在于将内核优化重新定义为有向无环图(DAG)搜索问题。在传统的大模型推理中,注意力机制、前馈网络和归一化等操作通过预编译的内核执行——这些内核是固定的 CUDA 或 ROCm 操作序列。工程师们针对特定 GPU 架构(如 NVIDIA A100、H100)和模型尺寸手工调优这些内核,但它们无法适应运行时变化,例如批次大小、序列长度或输入稀疏性。
Ada-MK 引入了 MegaKernel 的概念:将多个细粒度内核融合为单个粗粒度操作的粗粒度操作。例如,与其分别启动 QKV 投影、注意力分数计算和 Softmax 的内核,一个 MegaKernel 可以将它们融合为一次传递,从而减少内核启动开销和内存带宽使用。挑战在于,最优的 MegaKernel 配置——融合哪些操作、以何种顺序、采用何种内存布局——差异极大。Ada-MK 将其建模为一个 DAG,其中节点代表候选 MegaKernel 变体,边代表有效的执行序列。然后,它采用束搜索结合轻量级成本模型,在运行时探索这个 DAG,选择使延迟和内存使用联合目标最小化的路径。
架构细节:
- DAG 构建: Ada-MK 首先对模型的计算图进行性能剖析,并生成所有可行的 MegaKernel 融合模式。每个模式是 DAG 中的一个节点,并附有基于少量微基准测试得出的预估成本(延迟、内存)。
- 搜索算法: 宽度为 4-8 的束搜索探索 DAG,剪枝超过延迟或内存阈值的分支。成本模型通过贝叶斯优化在线更新,使 Ada-MK 能够适应硬件特定的特性(例如张量核心利用率、共享内存限制)。
- 运行时自适应: 搜索在每个推理会话(例如批次大小改变时)运行一次,并缓存结果。对于变长序列等动态场景,Ada-MK 使用轻量级启发式方法从缓存路径中选择,如果性能下降则回退到完整搜索。
性能基准测试:
| 模型 | 批次大小 | 延迟(毫秒)- 静态内核 | 延迟(毫秒)- Ada-MK | 内存(GB)- 静态 | 内存(GB)- Ada-MK | 加速比 |
|---|---|---|---|---|---|---|
| LLaMA-2 7B | 1 | 45.2 | 38.1 | 14.2 | 11.8 | 1.19x |
| LLaMA-2 7B | 8 | 112.8 | 89.4 | 16.5 | 13.1 | 1.26x |
| LLaMA-2 13B | 1 | 78.5 | 64.3 | 26.8 | 21.5 | 1.22x |
| LLaMA-2 13B | 8 | 203.4 | 158.7 | 30.2 | 24.0 | 1.28x |
| Falcon 40B | 1 | 215.6 | 172.3 | 82.4 | 66.1 | 1.25x |
| Falcon 40B | 4 | 410.2 | 318.9 | 88.0 | 70.4 | 1.29x |
数据要点: Ada-MK 在不同模型和批次大小下持续实现 19-29% 的延迟降低和 15-20% 的内存节省。在较大批次大小下收益更为显著,因为内核融合缓解了内存带宽瓶颈。
相关开源项目: Ada-MK 团队已在 GitHub 上发布了参考实现,仓库名为 `ada-mk/adaptive-kernels`(目前获得 2.3k 星标)。它与 PyTorch 2.0+ 集成,并支持 NVIDIA 和 AMD GPU。该仓库包含针对 LLaMA、Falcon 和 Mistral 模型的预构建 DAG 搜索配置。
关键参与者与案例研究
Ada-MK 项目由 Meta AI 和 苏黎世联邦理工学院 的研究人员领导,并得到了 Hugging Face 和 NVIDIA 工程师的贡献。第一作者 Elena Vasquez 博士此前在 NVIDIA 的 TensorRT 团队工作,在那里她观察到静态内核库的局限性。该项目目前正在集成到 vLLM 推理引擎中,这是一个拥有超过 30k GitHub 星标的流行开源项目。
竞品方案:
| 方案 | 方法 | 延迟降低 | 内存降低 | 适应性 |
|---|---|---|---|---|
| Ada-MK | DAG 搜索 + MegaKernel 融合 | 19-29% | 15-20% | 高(运行时自适应) |
| TensorRT-LLM | 静态内核库 + 手动调优 | 10-20% | 5-10% | 低(需重新编译) |
| FlashAttention-2 | 融合注意力内核 | 15-25%(仅注意力) | 10-15% | 中(固定融合) |
| CUDA Graphs | 静态图捕获 | 5-10% | 0% | 低(静态) |
| OpenAI Triton | 自定义内核 DSL | 10-15% | 5-10% | 中(手动编码) |
数据要点: Ada-MK 在性能提升和适应性之间提供了最佳平衡。虽然 TensorRT-LLM 在特定模型上可以达到与 Ada-MK 相当的延迟降低,但每个模型-硬件组合需要数天的手动调优。Ada-MK 自动实现了可比较的结果。
案例研究:大规模部署 LLaMA-2 70B
一家中型 AI 初创公司 NexusAI 使用集成 Ada-MK 的 vLLM 为其聊天机器人服务部署了 LLaMA-2 70B。此前,他们花费三周时间为 A100 集群手工调优 TensorRT-LLM 内核,实现了每 token 180ms 的延迟。借助 Ada-MK,他们在一次自动性能剖析后便实现了每 token 145ms 的延迟。