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。
- 数学库:内置对向量、矩阵、复数、四元数和超越函数的支持。
相关
- 项目
- 项目
- 项目
- 项目
- 项目