返回
Eliminating Redundancy: Ultra-compact Code Generation for Programmable Dataflow Accelerators
DOI:10.1109/CGO68049.2026.11395195.png)
摘要
En 中文
现代AI加速器采用数据流架构以实现高峰值吞吐量(TOPS)和能效(TOPS/W)。这些设计具有宽数据通路和层次化暂存内存,为密集计算阵列提供高带宽数据访问和广泛的操作数复用。与计算-内存子系统相辅相成的是轻量级控制路径,用于协调数据移动、程序加载和寄存器初始化。为降低能耗和面积开销,传统处理器特性(如指令缓存、执行栈和分支预测)被有意省略。尽管这种精简设计最大化了效率,但将关键责任转移给了编译器:需将复杂内核转换为高度紧凑的指令流,且必须完全适配于加速器可编程单元的有限指令缓冲区(IBUFFs)中。在本文中,我们引入两种新型编译器转换技术——循环吸收(Loop Absorption, LA)和循环索引集合并(Loop Index Set Merging, LISM)以实现超紧凑代码生成。循环吸收将同构的兄弟操作合并到单个循环体中,而LISM将具有相似循环体的相邻循环统一为统一的迭代空间。这些互补技术共同消除了冗余代码模式,并生成紧凑的层次化循环嵌套。我们在IBM Spyre编译器中实现了LA和LISM,并在包括ResNet-50、Inception-v3、SSD和BERT-Large在内的多样化深度学习工作负载上进行了评估。在所有模型中,我们的组合方法相较于基线实现了1.48倍的几何平均压缩率,使原本超出IBUFF容量的层能够成功编译。
Keyword:
Loop Absorption
Loop Index Set Merging
Dataflow Accelerators
Compiler Optimization
Code Compression

