mitsuba-renderer/drjit
Dr.Jit — A Just-In-Time-Compiler for Differentiable Rendering
解決的問題
Dr.Jit 解決了處理巨大且複雜的計算圖(通常包含數百萬個簡單的算術節點)所帶來的挑戰,這類圖通常會導致標準機器學習框架(如 PyTorch 或 JAX)在編譯過程中當機或逾時。它特別針對微分渲染及其他明顯可平行化的運算工作負載而設計。
工作原理
Dr.Jit 作為一個即時(JIT)編譯器,將算術運算記錄到計算圖中,而非立即執行。隨後,它將這些圖編譯為針對 GPU(透過 CUDA 或 Metal)或 CPU(透過使用 AVX512 或 NEON 的 LLVM)的高度優化融合內核。此外,它支援使用前向與反向模式累積的自動微分(AD),以產生專用的導數評估程式碼。
適用對象
適用於從事微分渲染、高效率數值計算的研究人員與開發者,以及需要在超出傳統 ML 後端能力的巨型、混亂計算圖上執行自動微分的使用者。
主要亮點
- 多後端支援:支援 CUDA、Metal 和 CPU(AVX512/NEON)。
- 混合語言支援:可透過 C++17 和 Python 存取,支援兩種語言之間的聯合追蹤與微分。
- 自動微分:支援前向與反向模式 AD。
- 數學函式庫:內建支援向量、矩陣、複數、四元數與超越函數。
相關
- 專案
- 專案
- 專案
- 專案
- 專案