devitocodes/devito
DSL and compiler framework for automated finite-differences and stencil computation
何を解決するか
Devitoは、有限差分や画像処理などのステンシル計算用に、高度に最適化された計算カーネルの作成を簡素化するように設計されています。CPU、GPU、マルチノードクラスタ上で高性能を達成するために、手動で低レベルでプラットフォーム固有のコードを書く必要がなくなります。
どう動くか
DevitoはSymPyに基づく関数型言語を使用して、ユーザーが問題の仕様を記号的に定義できるようにします。その後、自動コード生成とジャストインタイム(JIT)コンパイルを用いて、これらの高レベル定義を最適化された低レベルコードに変換します。コンパイラは入力を自動的に分析し、SIMDベクトル化、OpenMP/OpenACC並列化、およびマルチノード分散のためのMPIなどの最適化を適用します。
対象ユーザー
偏微分方程式、画像処理、機械学習に取り組む研究者やエンジニアで、異なるハードウェアプラットフォーム上で複雑なステンシル操作を効率的に実行する必要がある人。
主な特徴
- 自動最適化: SIMD、OpenMP、OpenACC、MPIを用いて並列コードを自動生成。
- 記号的仕様: 関数型言語を用いて有限差分演算子やテンソル結合を表現。
- ハードウェアの柔軟性: CPU、GPU、クラスタ上でシームレスに実行可能。
- ML統合: PyTorchやTensorFlowなどの人気フレームワークと統合。
- カスタマイズ: カスタムステンシル、ステガレートグリッド、パフォーマンスチューニング用のオートチューニングフレームワークを提供。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト