Cyclone:递归在分布式与 systolic 架构上的编译
编程语言
2025-11-14 v1
摘要
我们提出了 Cyclone,一个用于将递归方程表达式为流式数据流算法的框架和编译器,这些算法随后可移植地编译到相互链接处理器的分布拓扑结构中。我们的框架提供一种对逻辑张量上的递归的输入语言,随后降低为对逻辑迭代空间上的递归的中间语言,最终转换为针对每个单独处理器的 send、receive 和计算操作的程序。在 Cyclone 的中间表示 (IR) 中,程序经过优化,使得外部内存交互局限于迭代空间的边界。在内部迭代空间内,所有数据访问均为局部:数据访问针对的是驻留在本地快速存储器或相邻处理器上的数值,避免了昂贵的存储器移动。我们提供了一个调度语言,允许用户定义数据如何在处理器之间进行流式传输和广播,从而实现对分布式处理器拓扑结构上计算内核的流水线执行。我们通过将 IR 编译到可重构的 systolic 阵列和 chiplet 风格分布硬件的仿真器,以及分布式内存 CPU 集群,展示了我们方法的可移植性。在仿真的可重构环境中,我们利用编译器进行硬件设计空间探索,可指定链接成本和延迟。在分布式 CPU 环境中,我们展示如何使用递归和调度语言表达各种矩阵乘法例程(Cannon、SUMMA、PUMMA、weight stationary)以及求解器(Triangular solve 和 Cholesky)。对于矩阵乘法和三角求解,我们生成的分布式实现与 ScaLAPACK 相当。
关键词
引用
@article{arxiv.2511.09987,
title = {Cyclotron: Compilation of Recurrences to Distributed and Systolic Architectures},
author = {Shiv Sundram and Akhilesh Balasingam and Nathan Zhang and Kunle Olukotun and Fredrik Kjolstad},
journal= {arXiv preprint arXiv:2511.09987},
year = {2025}
}