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 介面,方便存取框架功能。
  • 自動微分: 支援計算任務的自動微分。
  • 資源管理: 高階包裝器消除資源處理與命令提交的重複程式碼。

相關

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