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 與叢集上無縫執行。
  • 與機器學習整合:與 PyTorch 與 TensorFlow 等主流框架整合。
  • 可客製化:提供自訂結構化、交錯網格與性能調校的自動調校框架。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案