中文

PolyTOPS:可重构且灵活的多面体调度器

分布式、并行与集群计算 2024-01-15 v1 计算与语言 性能

摘要

多面体技术已广泛用于底层编译器和高层流程中的自动代码优化。循环优化是这项技术的核心,已提出多种多面体调度器,如Feautrier、Pluto、isl和Tensor调度器,每种都针对不同的架构、并行模型或应用场景。由于架构的异构性,对特定场景优化的需求日益增长。最具代表性的案例之一是用于人工智能的NPU(神经处理单元),它们可能需要具有不同目标的循环优化。另一个需要考虑的因素是多面体优化发生的框架或编译器。根据目标架构、编译环境和应用领域的不同,不同场景可能需要不同类型的优化,以最佳地利用架构特性集。我们引入了一种新的可配置多面体调度器PolyTOPS,它可以通过直接、高层的配置适应各种场景。该调度器允许创建多样化的调度策略,这些策略既可以针对特定场景(如同当前最优的调度器),也可以针对特定内核,打破了“一刀切”调度器方法的概念。PolyTOPS已与isl和CLooG作为代码生成器一起使用,并已集成到MindSpore AKG深度学习编译器中。不同场景下的实验结果显示其性能良好:在MindSpore(针对NPU昇腾架构)混合自定义算子中,相较于isl调度,几何平均加速比为7.66倍;在不同多核架构的PolyBench上,相较于Pluto调度,几何平均加速比高达1.80倍。最后,在PolyMage场景中展示了与不同当前最优工具的一些比较。

关键词

引用

@article{arxiv.2401.06665,
  title  = {PolyTOPS: Reconfigurable and Flexible Polyhedral Scheduler},
  author = {Gianpietro Consolaro and Zhen Zhang and Harenome Razanajato and Nelson Lossing and Nassim Tchoulak and Adilla Susungi and Artur Cesar Araujo Alves and Renwei Zhang and Denis Barthou and Corinne Ancourt and Cedric Bastoul},
  journal= {arXiv preprint arXiv:2401.06665},
  year   = {2024}
}

备注

14 pages, bibliography included. The paper has been accepted to CGO 2024 and the publication and proceedings are ongoing. This is a preprint version