一句话:提出 Diffuse,用面向分布式计算的中间表示动态融合任务与内核,跨库边界优化任务式运行时应用。
Diffuse 面向分布式任务式运行时系统,解决跨函数与库边界难以发现融合机会的问题。其核心是一个分布式计算的中间表示,使分布式任务融合所需的各类分析能够以可扩展的方式完成;在任务融合之后,再由 JIT 编译器把融合任务内部的内核进一步融合。该中间表示被设计为通用目标,可承载 cuPyNumeric 与 Legate Sparse 两个真实任务式库。评估表明,在最多 128 块 GPU 上,由任务式库组合而成、未经修改的应用平均获得 1.86 倍加速(几何平均),单个应用加速比在 0.93x–10.7x 之间;Diffuse 还能发现原应用开发者遗漏的优化机会,使高层 Python 程序达到甚至超过显式并行 MPI 库的性能。
We introduce Diffuse, a system that dynamically performs task and kernel fusion in distributed, task-based runtime systems. The key component of Diffuse is an intermediate representation of distributed computation that enables the necessary analyses for the fusion of distributed tasks to be performed in a scalable manner. We pair task fusion with a JIT compiler to fuse together the kernels within fused tasks. We show empirically that Diffuse's intermediate representation is general enough to be a target for two real-world, task-based libraries (cuPyNumeric and Legate Sparse), letting Diffuse find optimization opportunities across function and library boundaries. Diffuse accelerates unmodified applications developed by composing task-based libraries by 1.86x on average (geo-mean), and by between 0.93x--10.7x on up to 128 GPUs. Diffuse also finds optimization opportunities missed by the original application developers, enabling high-level Python programs to match or exceed the performance of an explicitly parallel MPI library.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@inproceedings{YadavSLG0AK25,
title = {Composing Distributed Computations Through Task and Kernel Fusion},
author = {Rohan Yadav and Shiv Sundram and Wonchan Lee and Michael Garland and Michael Bauer and Alex Aiken and Fredrik Kjolstad},
booktitle = {ASPLOS},
year = {2025},
doi = {10.1145/3669940.3707216}
}