auto-differentiation/xad
Fast, easy automatic differentiation in C++
해결하는 문제
XAD는 고정밀도와 효율적인 함수 미분 계산을 가능하게 하는 고성능 C++ 라이브러리입니다. 대규모 및 성능이 중요한 시스템에서 낮은 런타임 오버헤드와 최소한의 메모리 사용이 요구되는 환경에 특화되어 있습니다.
작동 방식
XAD는 연산자 오버로딩을 사용하여 전진 모드와 인접(역방향) 모드 자동 미분을 모두 구현합니다. 벡터 모드를 통해 여러 미분을 동시에 계산할 수 있습니다. 반복적인 작업(예: 몬테카를로 시뮬레이션)의 경우, '한 번 기록 / 여러 번 재실행' 실행 모델을 가능하게 하는 추상적인 JIT(Just-In-Time) 백엔드 인터페이스를 제공합니다. 또한 대규모 응용 프로그램에서 테이프 메모리의 효율적인 관리를 가능하게 하는 체크포인팅 지원 기능도 포함되어 있습니다.
대상 사용자
특히 정량적 금융(QuantLib 통합 사례로 입증됨) 분야에서 성능이 중요한 수학적 모델을 구축하는 C++ 개발자들, 그리고 대규모 시스템용 고속 자동 미분 도구가 필요한 모든 사용자.
주요 특징
- 이중 모드 지원: 전진 모드와 역방향(인접) 모드 자동 미분을 모두 제공.
- 고성능: 낮은 런타임 오버헤드와 최소한의 메모리 사용량을 최적화.
- JIT 백엔드: 플러그인 가능한 JIT 백엔드를 위한 선택적 인프라스트럭처로 처리량 증가.
- 광범위한 통합: Eigen 선형 대수 라이브러리와 호환되며, 외부 함수 인터페이스 제공.
- 체크포인팅: 테이프 기반 미분을 위한 효율적인 메모리 관리.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트