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 等主流框架整合。
- 可客製化:提供自訂結構化、交錯網格與性能調校的自動調校框架。
相關
- 專案
- 專案
- 專案
- 專案
- 專案