JuliaDiff/DifferentiationInterface.jl

An interface to various automatic differentiation backends in Julia.

해결하는 문제

Julia에서 자동 미분(AD)을 사용할 때 백엔드별로 특화된 코드를 작성할 필요가 없습니다. 각 AD 라이브러리의 다른 API를 배우고 구현하는 대신, 단일한 통합된 구문을 사용하여 다양한 백엔드 간에 미분을 계산할 수 있습니다.

작동 방식

지원되는 AD 백엔드의 특정 API에 공통된 명령어를 매핑하는 추상화 계층(인터페이스)으로 작동합니다. 1차 및 2차 연산자(예: 기울기, 자코비안, 헤시안)를 지원하며, 인플레이스 및 아웃오프플레이스 미분을 모두 처리하고, 성능 최적화를 위해 캐시를 사전 할당하거나 테이프를 기록하는 메커니즘을 포함합니다. 또한 희소성 처리를 내장하고, 다양한 백엔드 간에 일관된 출력을 보장하기 위한 검증 도구도 제공합니다.

대상 사용자

Zygote, ForwardDiff, Enzyme와 같은 다양한 AD 백엔드 간에 논리를 재작성하지 않고도 전환할 수 있는 유연성을 원하는 Julia 생태계의 연구자 및 개발자입니다.

주요 특징

  • 통합된 구문: Zygote, ForwardDiff, Enzyme를 포함한 여러 AD 백엔드용 단일 API.
  • 포괄적인 연산자: 기울기, 자코비안, 헤시안을 지원합니다.
  • 성능 최적화: 캐시나 테이프 사전 할당을 위한 준비 메커니즘 포함.
  • 희소성 지원: 희소 미분을 내장하여 처리합니다.
  • 검증 도구: DifferentiationInterfaceTest를 통해 테스트 및 벤치마킹 유틸리티 제공.

관련

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