LuisaGroup/LuisaCompute
High-Performance Rendering Framework on Stream Architectures
解決的問題
LuisaCompute 是一個高效率、跨平台的計算框架,旨在彌補統一性、可程式化與效能之間的差距。開發者只需撰寫一次計算內核,即可在 CUDA、DirectX、Metal 和 CPU 等多種硬體後端上執行,無需為每個平台撰寫特定的著色器程式碼。
工作原理
此框架由三個主要元件組成:
- 嵌入式領域特定語言(DSL): 使用嵌入於現代 C++ 中的 DSL,讓使用者能以 C++ 語法撰寫內核。透過元程式設計與運算子重載,將內核追蹤為抽象語法樹(AST),再透過 JIT 編譯轉換為平台相依的著色器原始碼。
- 統一執行時期: 一個抽象的執行時期層,作為高階前端介面與底層後端 API 之間的橋樑。提供資源包裝器(靜態類型 C++ 物件),用以管理記憶體與排程命令,自動探測相依性以優化硬體使用效率。
- 多種後端: 專用後端將 AST 與中間指令轉換為 CUDA、Metal、DirectX,以及由 Rust 實作的 CPU 備用原生內核啟動程式碼。
適用對象
主要針對需要跨平台相容性但又不犧牲效能的高階圖形應用、渲染引擎或一般用途的串流處理軟體開發者。
主要特色
- 統一撰寫: 主機端邏輯與裝置端內核皆以現代 C++ 撰寫。
- 跨平台支援: 提供 CUDA、DirectX、Metal 與 CPU 的原生後端。
- Python 前端: 提供 Python 介面,方便存取框架功能。
- 自動微分: 支援計算任務的自動微分。
- 資源管理: 高階包裝器消除資源處理與命令提交的重複程式碼。
相關
- 專案
- 專案
- 專案
- 專案
- 專案