SystemML 中面向大规模机器学习的算子融合计划优化
数据库
2018-01-04 v1
摘要
许多大规模机器学习(ML)系统允许通过线性代数程序指定自定义 ML 算法,然后自动生成高效执行计划。在此背景下,融合算子(即基本算子融合链)的优化机会无处不在。这些机会包括(1)更少物化的中间结果,(2)更少的对输入数据的扫描,以及(3)跨算子链利用稀疏性。自动算子融合消除了对手写融合算子的需求,并显著提升了复杂或前所未见操作链的性能。然而,现有的融合启发式方法难以为复杂 DAG 或局部与分布式操作的混合计划找到良好的融合计划。本文中,我们引入一个优化框架,用于系统性地推理融合计划,该框架考虑 DAG 中的物化点、稀疏性利用、不同融合模板类型,以及局部与分布式操作。具体而言,我们贡献了以下算法:(1)有效融合计划的候选探索,(2)基于代价的候选选择,以及(3)针对稠密、稀疏和压缩数据的局部与分布式操作的代码生成。我们在 SystemML 中的实验表明,与手写融合算子相比,优化后的融合计划实现了高达 21 倍的端到端性能提升,且优化与代码生成开销可忽略不计。
引用
@article{arxiv.1801.00829,
title = {On Optimizing Operator Fusion Plans for Large-Scale Machine Learning in SystemML},
author = {Matthias Boehm and Berthold Reinwald and Dylan Hutchison and Alexandre V. Evfimievski and Prithviraj Sen},
journal= {arXiv preprint arXiv:1801.00829},
year = {2018}
}