NPU 上的 Kernel Fusion:独立任务的资源互补与多引擎调度
我们的优化目标是在同一 NPU 的执行范围内,将输入已经就绪、彼此无数据依赖、主要使用不同执行资源的任务横向融合,显式调度矩阵、向量和数据搬运引擎,使它们重叠执行,缩短相同工作量的完成时间。 常见 megakernel 工作把更大的算子链或任务图放入统一设备入口,结合中间数据复用、跨算子流水、启动开销摊销和设备侧调度;我们的切入点是其中的独立任务资源互补。Megakernel 可以承载这种执行方式,但是否长期驻留、是否覆盖整模型,与能否实现资源重叠是不同问题;第一阶段静态组织两个或三个独立任务,就可以研究配额、同步域和片上缓冲区如何影响收益。
1. 问题边界与优化目标
研究对象首先是 HMX 主导的矩阵任务 + HVX 主导的独立向量任务,确认并发后再加入 DMA。任务可以来自同一图的独立分支、不同 micro-batch 或不同请求。一个 GEMM 与读取其输出的归一化存在依赖;要重叠它们,需要另行设计 tile 流水。
| 任务 | 初始实验对象 | 希望主要使用的资源 | 必须检查的实际行为 |
|---|---|---|---|
| 矩阵任务 | 输入布局已准备好的 GEMM | HMX | 是否仍需大量 HVX packing、反量化或数据搬运 |
| 向量任务 | 另一份数据的激活、归约或 normalization | HVX | 是否与 争用 VTCM 访问或 DDR 带宽 |
| 搬运任务 | 独立缓冲区的 DDR ↔ VTCM 传输 | DMA | 是否确实由 DMA 推进;copy 的名称不能证明执行路径 |
“独立”要求输入已就绪,读写区间不存在 RAW、WAR、WAW 冲突,临时缓冲区也不发生别名冲突。图上的独立性还需经过内存规划核对:QNN 文档指出,VTCM 地址复用会给原本可重排的算子增加执行顺序约束qnn-scheduling。
核心假设是:后端的提交、等待或资源保留粒度,大于任务实际使用的资源粒度,使其他 ready task 无法充分利用空闲引擎。 应从时间线定位限制发生在提交队列、算子返回边界、worker pool、片上内存生命周期,还是引擎配额。具体平台的现有能力见执行资源与平台约束。
优化目标分为三项,分别测量:
- 提高有效重叠:矩阵、向量、搬运在依赖允许时独立推进,降低整体完成时间。
- 控制并发代价:联合选择 tile、worker 份额和缓冲区,限制共享带宽竞争、等待和拖尾。
- 保留独立进度:任务完成后可释放自己的状态与缓冲区,为后续领取工作保留条件。
执行入口合并还能减少提交与调用开销;这项收益应与引擎重叠分开报告。
2. 与其他融合和执行概念的关系
HFuse 将 horizontal fusion 用于独立 kernel 的线程级并行和资源互补[1];MPK 则将任务图放入 persistent megakernel,由设备侧 runtime 管理依赖和执行[2]。二者的联系是扩大可调度范围,并暴露更细的执行机会。
| 概念 | 主要处理的问题 | 与本课题的关系 |
|---|---|---|
| Horizontal fusion | 独立任务如何在共同执行范围内交错或并发 | 当前的直接研究对象 |
| Vertical fusion | 生产者—消费者怎样复用中间结果、减少往返 | 作为后续组合优化;第一阶段独立任务没有直接的中间结果复用 |
| Co-scheduling | 多个任务如何同时运行并控制竞争 | 直接相关;可保留多个 kernel,是必须比较的基线 |
| Persistent kernel | 执行实例是否长期驻留、持续领取工作 | runtime 的实现选择;静态融合任务对不要求长期驻留 |
| Megakernel | 如何在更大的设备执行范围内组织多个任务或算子 | 可以同时容纳横向融合、纵向流水、依赖管理与开销摊销 |
| Resource-decoupled execution | 计算、搬运等资源能否按各自依赖独立推进 | 为多引擎执行器提供抽象;不要求每种资源都对应一个物理核 |
把三个阻塞函数顺序放进一个入口,只改变执行边界。要产生资源互补收益,还需要异步发起、独立推进以及合适的等待位置。
3. 相关工作的观察与优化思路
下表按与一期问题的联系整理。GPU 方法提供设计依据;其性能结果仍需在目标 NPU 上验证。CCF 等级采用 2026 年 3 月 31 日发布的第七版目录,标注的是会议或期刊的现行等级,论文年份仍保留发表年份;预印本暂无适用等级ccf-directory。
| 工作 | CCF 等级 | 关键观察 | 优化思路 | 对我们的直接启发 |
|---|---|---|---|---|
| Tacker,HPCA 2022[3] | A | 整体显示忙碌时,Tensor Core 与 CUDA Core 仍可能交替闲置 | 静态融合互补任务,调整工作份额,预测融合时长并按 QoS 选择 | 检查各引擎同时做了多少工作;研究矩阵与向量配额 |
| Aker,IEEE TC 2025[4] | A | 互补性还包括计算与访存;输入和资源竞争会改变最佳配置 | 扩展任务分类,生成融合版本,自适应选择及回退 | 用资源画像选择任务对,保留不融合的路径 |
| HFuse,CGO 2022[1] | B | 独立指令流可增加可执行线程,隐藏不同指令的等待 | 在同一 CTA 内划分线程区间,隔离 barrier,搜索线程比例 | 显式配额、局部同步;与双 stream 并发比较 |
| POD-Attention,ASPLOS 2025[5] | A | 不同请求的 prefill 与 decode 互补,普通并发无法保证同一 SM 共驻留 | SM-aware CTA 调度,控制配比、tile 和独立同步 | 从真实请求中寻找任务;调度粒度和放置影响收益 |
| GoPTX,DAC 2025[6] | A | 共同执行后,任务内部的指令依赖仍会造成气泡 | 合并控制流,按依赖与延迟交织 PTX 指令 | 引擎级重叠成立后,再考虑更细的编译调度 |
| VDCores,2026 预印本[7] | —(预印本) | 任务级等待会阻止已经就绪的后续微操作发射 | 将计算与搬运分解为微操作,以依赖和资源可用性推进虚拟执行单元 | 缩小等待范围;参考同 runtime 的发射屏障消融 |
| HyperParallel-MoE,2026 预印本[8] | —(预印本) | 所测 Ascend 路径中,AIC/AIV 随完整算子边界交替闲置 | tile 任务、Cube/Vector 队列、静态事件调度和统一 launch | NPU 上直接的异构执行先例;优先做低开销静态编排 |
| Rammer,OSDI 2020[9] | A | 把算子视为黑盒会分割算子间和算子内调度空间 | 用 rTask 统一表达细粒度工作,生成静态时空调度 | 从完整算子进一步拆成可独立执行的任务 |
| PipeThreader,OSDI 2025[10] | A | 专用计算和搬运单元要求显式的软件流水 | sTask 图、分层硬件抽象和流水搜索 | 为矩阵、向量、搬运定义资源类型明确的编译表示 |
| MPK,OSDI 2026[2] | A | 逐算子入口限制跨算子任务流水与通信重叠 | SM 级任务图 + persistent megakernel + 分散调度 | 后续扩展到更大的依赖图和持续执行 |
| Orion,EuroSys 2024[11] | A | 并发收益受干扰和执行粒度影响 | 干扰感知的细粒度 GPU 共享调度 | 建立保留独立 kernel 的调度对照 |
最直接的前序是 Tacker/Aker 与 HFuse;VDCores 与 HyperParallel-MoE 最适合帮助设计多引擎执行抽象;POD-Attention 与 GoPTX 分别补充真实负载和指令调度经验。不能只凭“在 NPU 上融合矩阵和向量工作”界定新贡献,应说明新的执行控制、存储约束处理方式,以及相对现有最佳并发路径增加了哪些能力。
4. 主题目录与研究推进
| 页面 | 主要回答的问题 |
|---|---|
| GPU 横向融合前序 | Tacker/Aker、HFuse、POD-Attention、GoPTX 观察到什么,分别怎样融合? |
| 资源解耦与任务执行 | VDCores、HyperParallel-MoE、Rammer、PipeThreader、MPK 怎样暴露更细的工作与资源? |
| 执行资源与平台约束 | Hexagon 已有哪些异步机制?QNN、Ascend、AMD XDNA 的执行边界有何不同? |
| 一期实现与实验设计 | 如何做独立矩阵+向量原型,并分离入口合并、内部重叠与竞争成本? |
| 五类收益与配套优化 | 原有 A–E 分类:资源互补、工作迁移、工作削减、中间数据复用、开销摊销 |
一期先完成静态独立矩阵+向量任务对,再扩展到独立 DMA。采用“现有串行、现有最佳并发、单入口内部串行、单入口内部并发”四组对照;内部串行与并发尽量共用实现,通过屏障开关隔离重叠收益。下一阶段再加入更多任务、动态 ready task 集合和依赖图。
ccf-directory. 中国计算机学会,第七版《中国计算机学会推荐国际学术会议和期刊目录》,2026-03-31 发布。版本说明:https://www.ccf.org.cn/Academic_Evaluation/By_category/ ;TC、HPCA、ASPLOS、DAC、CGO、EuroSys 的分级:https://www.ccf.org.cn/Academic_Evaluation/ARCH_DCP_SS/ ;OSDI 的分级:https://www.ccf.org.cn/Academic_Evaluation/TCSE_SS_PDL/ (访问日期:2026-10-11)。 ↩
qnn-scheduling. Qualcomm QNN HTP 文档,Scheduling and Allocation:部分后台算子可拆成 launch/wait,最终调度增加并行;VTCM 地址复用可能限制重排。https://docs.qualcomm.com/doc/80-63442-10/topic/scheduling_and_allocation.html (访问日期:2026-10-11)。 ↩
参考文献
[1] LI A, ZHENG B, PEKHIMENKO G, et al. Automatic horizontal fusion for GPU kernels[C]//Proceedings of the 2022 IEEE/ACM International Symposium on Code Generation and Optimization (CGO). 2022: 14–27. https://doi.org/10.1109/CGO53902.2022.9741270
[2] CHENG X, ZHANG Z, ZHOU Y, et al. MPK: a compiler and runtime for mega-kernelizing tensor programs[C]//20th USENIX Symposium on Operating Systems Design and Implementation (OSDI 26). 2026: 1909–1926. https://www.usenix.org/conference/osdi26/presentation/cheng
[3] ZHAO H, CUI W, CHEN Q, et al. Tacker: tensor-CUDA core kernel fusion for improving the GPU utilization while ensuring QoS[C]//Proceedings of the 2022 IEEE International Symposium on High-Performance Computer Architecture (HPCA). 2022: 800–813. https://doi.org/10.1109/HPCA53966.2022.00064
[4] ZHAO H, DENG J, CUI W, et al. Adaptive kernel fusion for improving the GPU utilization while ensuring QoS[J]. IEEE Transactions on Computers, 2025, 74(2): 386–400. https://doi.org/10.1109/TC.2024.3477995
[5] KAMATH A K, PRABHU R, MOHAN J, et al. POD-Attention: unlocking full prefill-decode overlap for faster LLM inference[C]//Proceedings of the 30th ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). 2025. https://arxiv.org/abs/2410.18038
[6] WU K, LIN Z, XI M, et al. GoPTX: fine-grained GPU kernel fusion by PTX-level instruction flow weaving[C]//Proceedings of the 62nd Annual ACM/IEEE Design Automation Conference (DAC). 2025: 1–7. https://doi.org/10.1109/DAC63849.2025.11132627
[7] HE Z, SAMPSON A, ZHANG Y, et al. VDCores: resource decoupled programming and execution for asynchronous GPU[J/OL]. arXiv preprint arXiv:2605.03190, 2026. https://arxiv.org/abs/2605.03190
[8] JIN Z, AI C, ZHANG G, et al. HyperParallel-MoE: multi-core interleaved scheduling for fast MoE training on Ascend NPUs[J/OL]. arXiv preprint arXiv:2605.23764, 2026. https://arxiv.org/abs/2605.23764
[9] MA L, XIE Z, YANG Z, et al. Rammer: enabling holistic deep learning compiler optimizations with rTasks[C]//14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20). 2020: 881–897. https://www.usenix.org/conference/osdi20/presentation/ma
[10] CHENG Y, WANG L, SHI Y, et al. PipeThreader: software-defined pipelining for efficient DNN execution[C]//19th USENIX Symposium on Operating Systems Design and Implementation (OSDI 25). 2025: 767–783. https://www.usenix.org/conference/osdi25/presentation/cheng
[11] STRATI F, MA X, KLIMOVIC A. Orion: interference-aware, fine-grained GPU sharing for ML applications[C]//Proceedings of the Nineteenth European Conference on Computer Systems (EuroSys). 2024: 1075–1092. https://doi.org/10.1145/3627703.3629578
© 2026 Yang Huan · yanghuan9812@qq.com