mitsuba-renderer/drjit

Dr.Jit — A Just-In-Time-Compiler for Differentiable Rendering

何を解決するか

Dr.Jit は、通常の機械学習フレームワーク(PyTorch や JAX など)がコンパイル中にクラッシュまたはタイムアウトを起こすことがよくある、数百万もの単純な算術ノードを含む巨大で複雑な計算グラフを処理する課題に対処します。特に、微分可能レンダリングやその他の「明らかに並列化可能な」計算に特化しています。

動作方法

Dr.Jit は、算術演算を即時実行するのではなく、計算グラフに記録する JIT(Just-In-Time)コンパイラとして機能します。その後、これらのグラフを GPU(CUDA や Metal を通じて)または CPU(AVX512 や NEON を使用した LLVM を通じて)向けの高効率な融合カーネルにコンパイルします。さらに、前向きモードと後向きモードの両方を用いた自動微分(AD)をサポートし、専用の導関数評価コードを生成します。

対象ユーザー

微分可能レンダリング、高性能数値計算、および従来の ML バックエンドの能力を超える巨大で複雑な計算グラフ上で自動微分を実行したい研究者や開発者を対象としています。

特徴

  • マルチバックエンド対応:CUDA、Metal、CPU(AVX512/NEON)をサポート。
  • ハイブリッド言語サポート:C++17 および Python からアクセス可能で、両方の言語間でトレースと微分を統合できます。
  • 自動微分:前向きモードと後向きモードの両方をサポート。
  • 数学ライブラリ:ベクトル、行列、複素数、四元数、超越関数を内蔵サポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト