PolyTOPS: Reconfigurable and Flexible Polyhedral Scheduler

要約

多面体技術は、低レベルのコンパイラや高レベルのプロセスでの自動コード最適化に広く使用されています。
ループの最適化はこの手法の中心であり、Feautrier、Pluto、isl、Tensor Scheduler などのいくつかの多面体スケジューラーが提案されており、それぞれが異なるアーキテクチャ、並列処理モデル、またはアプリケーション シナリオを対象としています。
アーキテクチャの異種性により、シナリオ固有の最適化の必要性が高まっています。
最もクリティカルなケースの 1 つは、AI に使用される NPU (Neural Processing Unit) に代表されます。これには、さまざまな目的でループの最適化が必要になる場合があります。
考慮すべきもう 1 つの要素は、多面体最適化が行われるフレームワークまたはコンパイラーです。
ターゲット アーキテクチャ、コンパイル環境、アプリケーション ドメインに応じて、さまざまなシナリオで、アーキテクチャの機能セットを最大限に活用するためにさまざまな種類の最適化が必要になる場合があります。
新しい構成可能な多面体スケジューラー PolyTOPS を導入します。これは、簡単な高レベルの構成でさまざまなシナリオに調整できます。
このスケジューラを使用すると、シナリオ固有 (最先端のスケジューラなど) とカーネル固有の両方の多様なスケジューリング戦略を作成でき、画一的なスケジューラ アプローチの概念を打ち破ることができます。
PolyTOPS はコード ジェネレーターとして isl および CLooG とともに使用され、MindSpore AKG 深層学習コンパイラーに統合されています。
さまざまなシナリオでの実験結果は良好なパフォーマンスを示しています。MindSpore (NPU Ascend アーキテクチャの場合) ハイブリッド カスタム オペレーターでは isl スケジューリングと比較して幾何平均 7.66 倍、さまざまなマルチコア アーキテクチャの PolyBench では Pluto スケジューリングと比較して幾何平均で最大 1.80 倍の高速化が見られます。
最後に、PolyMage シナリオでは、さまざまな最先端ツールとの比較がいくつか示されています。

要約(オリジナル)

Polyhedral techniques have been widely used for automatic code optimization in low-level compilers and higher-level processes. Loop optimization is central to this technique, and several polyhedral schedulers like Feautrier, Pluto, isl and Tensor Scheduler have been proposed, each of them targeting a different architecture, parallelism model, or application scenario. The need for scenario-specific optimization is growing due to the heterogeneity of architectures. One of the most critical cases is represented by NPUs (Neural Processing Units) used for AI, which may require loop optimization with different objectives. Another factor to be considered is the framework or compiler in which polyhedral optimization takes place. Different scenarios, depending on the target architecture, compilation environment, and application domain, may require different kinds of optimization to best exploit the architecture feature set. We introduce a new configurable polyhedral scheduler, PolyTOPS, that can be adjusted to various scenarios with straightforward, high-level configurations. This scheduler allows the creation of diverse scheduling strategies that can be both scenario-specific (like state-of-the-art schedulers) and kernel-specific, breaking the concept of a one-size-fits-all scheduler approach. PolyTOPS has been used with isl and CLooG as code generators and has been integrated in MindSpore AKG deep learning compiler. Experimental results in different scenarios show good performance: a geomean speedup of 7.66x on MindSpore (for the NPU Ascend architecture) hybrid custom operators over isl scheduling, a geomean speedup up to 1.80x on PolyBench on different multicore architectures over Pluto scheduling. Finally, some comparisons with different state-of-the-art tools are presented in the PolyMage scenario.

arxiv情報

著者 Gianpietro Consolaro,Zhen Zhang,Harenome Razanajato,Nelson Lossing,Nassim Tchoulak,Adilla Susungi,Artur Cesar Araujo Alves,Renwei Zhang,Denis Barthou,Corinne Ancourt,Cedric Bastoul
発行日 2024-01-12 16:11:27+00:00
arxivサイト arxiv_id(pdf)

提供元, 利用サービス

arxiv.jp, Google

カテゴリー: cs.CL, cs.DC, cs.PF パーマリンク