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을 통해 접근 가능하며, 양쪽 언어 간에 공동 추적 및 미분이 가능합니다.
  • 자동 미분: 전방 및 후방 모드 AD를 모두 지원합니다.
  • 수학 라이브러리: 벡터, 행렬, 복소수, 사원수, 초월 함수를 내장 지원합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트