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。
  • 數學函式庫:內建支援向量、矩陣、複數、四元數與超越函數。

相關

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