Taco: テンソル代数コンパイラ
Taco: The Tensor Algebra Compiler (tensor-compiler.org)
要約
TACOは、スパース(疎行列)および密な線形・テンソル代数計算のためのコンパイラです。多様な計算、保存形式、APIをサポートし、コンパイラ技術による最適化で高いパフォーマンスを実現します。数行のコードで複雑な計算が可能で、開発や貢献の方法も提供されています。
全文翻訳
TACO: The Tensor Algebra Compiler
TACOは何に使えるか?
TACOは、以下のような幅広いドメインにおけるスパース(疎行列)線形およびテンソル代数アプリケーションの実装に使用できます。
なぜTACOを使うべきか?
TACOは多用途です!
TACOは、スパース行列ベクトル乗算のような単純なものから、高次のスパーステンソルに対するMTTKRPのようなより複雑なものまで、幅広いスパース(および密な)線形/テンソル代数計算をサポートしています。テンソルは、CSRやCOOのような一般的に使用されるスパース行列およびテンソル形式、さらにはCSFのような特殊な形式を含む、さまざまな保存形式で格納できます。
TACOは高速です!
TACOは、内部で新しいコンパイラベースの技術を採用し、実行したい計算に最適化されたカーネルを生成します。これにより、TACOはMATLAB Tensor Toolboxを数桁上回るパフォーマンス、およびEigen、Intel oneMKL、SPLATTのような他の高性能スパース線形/テンソル代数ライブラリに匹敵するパフォーマンスを達成できます。
TACOは使いやすいです!
TACOを使用すると、わずか数行のコードを書くだけで、複雑なスパース線形およびテンソル代数計算を実行できます。TACOは、EigenやSciPyのような他の線形代数ライブラリと同様の方法で使用できるC++およびPython APIを提供します。コマンドラインツールやWebツールも、アプリケーションにリンクできるカスタム線形/テンソル代数カーネルの独自のライブラリを簡単に構築できるようにします。
TACOを使い始めるには?
TACOのコードベースはGitHubでホストされており、そこからダウンロードできます。コードベースには、C++およびPython API、およびコマンドラインツールのビルド方法を説明するREADMEが含まれています。
オンラインドキュメントには、C++およびPython APIの使用方法が記載されており、TACOの使用方法を示すいくつかのサンプルプログラムも含まれています。コマンドラインツールにはヘルプメニューも含まれており、すべての機能を文書化しています。ツールを--helpオプション付きで呼び出すことでヘルプメニューにアクセスできます。
ダウンロードせずにブラウザ内から直接TACOをコードジェネレーターとして使用することもできます。
TACOに貢献するには?
TACOの使用中にバグを見つけた場合や、改善のための提案がある場合は、GitHubでイシューを作成することを検討してください。
バグの修正やTACOの新機能の実装に積極的に貢献したい場合は、プルリクエストも歓迎します!
謝辞
TACOは、スタンフォード大学のフレドリック・キョルスタッド教授の研究グループ、MIT CSAILのCOMMIT研究グループ(サマン・アマラシンゲ教授が主導)のメンバー、およびその他の貢献者によって開発・維持されています。
TACOは、国立科学財団、米国エネルギー省科学局高度科学計算研究部、国防総省総局、トヨタ・リサーチ・インスティテュート、SRCとDARPAが共同スポンサーを務めるJUMPセンターであるApplication Driving Architectures (ADA) Research Center、国防高等研究計画局、Google Research Scholar Program、およびStanford Data Analytics for What’s Next (DAWN) Affiliate Programからの研究支援に基づいて構築されています。ここに表明されたいかなる意見、発見、結論、または推奨事項も、TACOの開発者のものであり、上記の資金提供機関の見解を必ずしも反映するものではありません。