Skip to main content
QUICK REVIEW

[論文レビュー] TSFC: a structure-preserving form compiler

Miklós Homolya, Lawrence Mitchell|arXiv (Cornell University)|May 10, 2017
Parallel Computing and Optimization Techniques参考文献 32被引用数 6
ひとこと要約

TSFCは、弱形式表現の構造的整合性をコンパイル中も保つ、有限要素法向けの新規形式コンパイラである。2段階のプロセス(まず有限要素構造をテンソル代数に下げる;次に演算をスケジューリングする)を採用することで、従来のコンパイラよりも長期間にわたりテンソル構造を維持し、特に複雑で非アフィンな問題において優れたコンパイル時パフォーマンスを実現する。

ABSTRACT

A form compiler takes a high-level description of the weak form of partial differential equations and produces low-level code that carries out the finite element assembly. In this paper we present the Two-Stage Form Compiler (TSFC), a new form compiler with the main motivation to maintain the structure of the input expression as long as possible. This facilitates the application of optimizations at the highest possible level of abstraction. TSFC features a novel, structure-preserving method for separating the contributions of a form to the subblocks of the local tensor in discontinuous Galerkin problems. This enables us to preserve the tensor structure of expressions longer through the compilation process than other form compilers. This is also achieved in part by a two-stage approach that cleanly separates the lowering of finite element constructs to tensor algebra in the first stage, from the scheduling of those tensor operations in the second stage. TSFC also efficiently traverses complicated expressions, and experimental evaluation demonstrates good compile-time performance even for highly complex forms.

研究の動機と目的

  • 有限要素コード生成中に高レベルの式構造を維持することで、高度な最適化を可能にする課題に対処する。
  • 非アフィンな幾何変換や高次要素を含む複雑な有限要素形式に対して、コンパイル時パフォーマンスを向上させる。
  • 有限要素構造をテンソル代数に下げる段階と、その演算をスケジューリングする段階の間に明確な分離を図り、拡張性と最適化を促進する。
  • 局所テンソル内のブロック構造を保存することで、非連続ガラーキン法の効率的コンパイルを可能にする。
  • 複雑な形式に対してもコンパイル時間が1秒未塔を保つことで、インタラクティブな科学計算ワークフローを支援する。

提案手法

  • 2段階のコンパイルパイプラインを導入:まずUFL式をテンソル代数の中間表現に変換し、次にそのテンソル演算をスケジューリングする。
  • 非連続ガラーキン定式化における局所テンソルの部分ブロックへの寄与を分離する構造を保全する手法を実装する。
  • 特に複雑な形式や非アフィンなセルに対しては、コンパイルオーバーヘッドを最小限に抑えるための効率的な式走査アルゴリズムを用いる。
  • テンソル代数への下げる段階と演算スケジューリングの段階を分離することで、スケジューリングの独立した最適化や、後続ツールとの統合を可能にする。
  • UFLが提供する弱形式と離散関数空間の高レベルな記述を入力とし、コンパイル中も数学的構造を保持する。
  • CおよびFFC互換の表現を両方サポートし、既存のFEniCS/Firedrakeスタックへの最小限の混乱で統合可能である。

実験結果

リサーチクエスチョン

  • RQ1有限要素形式コンパイラは、コンパイル中を通じて弱形式の構造的意味をどのように保ち、高レベルの最適化を可能にするか?
  • RQ2従来のコンパイラ(例:FFC)では、複雑な形式や非アフィンな有限要素形式を処理する際にどのようなパフォーマンスコストが生じ、それらをどのように軽減できるか?
  • RQ32段階のコンパイルアプローチは、形式コンパイラにおける保守性と最適化の機会をどの程度向上させるか?
  • RQ4構造を保全するコンパイルは、高次や非連続ガラーキン有限要素問題において、著しくコンパイル時間を短縮できるか?
  • RQ5形式の複雑さが増すに従って、TSFCのパフォーマンスはUFLACSやFFCの変種と比べて、コンパイル時間のスケーラビリティにおいてどの程度優れているか?

主な発見

  • TSFCはUFLACSやFFCと同等のオーダーのコンパイル時間を達成しているが、複雑な形式に対してははるかに優れたスケーリング性能を示している。
  • 最も複雑なテストケース(3次元におけるHolzapfel-Ogdenモデル)では、TSFCは3.7秒でコンパイルが完了し、特定の最適化を無効化することで2.2秒まで短縮可能である。
  • 修正されたFFCの数値積分表現(fd_bendy)は、3次元Holzapfel-Ogdenケースにおいて64GB RAMで6時間以上経過してもメモリ不足でクラッシュした。これはスケーラビリティの問題を浮き彫りにしている。
  • TSFCのコンパイル時パフォーマンスは、極めて複雑な形式に対しても良好であり、標準CPU上で全テストケースが4秒未塔でコンパイル完了している。
  • 2段階設計により、下げる段階とスケジューリングの段階の明確な分離が実現され、将来の最適化やCOFFEEなどのツールとの統合が容易になった。
  • 非アフィンな幾何変換や高次要素を含むケースにおいて、TSFCは従来のFFC表現よりもコンパイル時の効率性が顕著に優れている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。