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などの人気フレームワークと統合。
  • カスタマイズ: カスタムステンシル、ステガレートグリッド、パフォーマンスチューニング用のオートチューニングフレームワークを提供。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト