· DAG Scheduling · NPU
面向 NPU 的缓存感知 DAG 调度与流水优化
将 SIMD/NPU 算子依赖建模为有向无环计算图,在缓存受限条件下联合研究拓扑调度、数据驻留与流水优化,减少可避免的执行空隙与数据搬运。
问题背景
面向 SIMD/NPU 架构,计算图调度既要满足算子的拓扑依赖与执行单元约束,也要处理片上缓存容量、数据驻留和 DMA 搬运开销;缓存受限时,简单的就绪队列策略容易产生重复换入换出和流水空隙。
数学与算法方法
将算子依赖建模为 DAG,在拓扑约束和缓存驻留条件下使用 WCB 类评分确定调度顺序;结合连续多池内存分配、SPILL 受害者选择与换入换出节点插入,并通过 ASAP 风格流水压缩在执行单元约束下前移任务。
个人贡献
参与问题抽象、算法设计、实验验证和代码库整理,重点关注图调度与缓存管理之间的耦合。
结果与产出
项目以总执行时钟和数据搬运量为主要优化目标,获得 2025 年“华为杯”研究生数学建模竞赛全国三等奖,并整理为带有统一 CLI、冒烟测试和中英文说明的可复现代码库。
方法流程
- 01
图调度
在拓扑依赖、数据驻留和执行单元约束下,以 WCB 类评分选择就绪算子。
- 02
内存与 SPILL
在多缓存池中分配连续地址,容量不足时选择 SPILL 对象并插入换入换出过程。
- 03
流水压缩
在执行单元约束下左移任务,减少可消除的流水空隙。