QuantumKitHub/TensorOperations.jl

Julia package for tensor contractions and related operations

해결하는 문제

복잡한 텐서 연산을 수행하는 과정을 단순화하여, 중첩 루프나 수동적인 리셰이프 및 컨트랙션보다 직관적인 에인슈타인 첨자 표기법을 사용해 작성할 수 있게 합니다.

작동 방식

이 라이브러리는 @tensor 매크로를 제공하여, 에인슈타인 합성 규칙(추상 첨자 표기법)을 사용해 텐서의 컨트랙션과 덧셈을 표현할 수 있게 합니다. 여러 백엔드를 지원하며, GPU 가속을 위해 cuTENSOR v2를 사용할 수 있고, ChainRulesCore.jl과 통합되어 자동 미분을 지원합니다. 또한 Bumper.jl을 사용한 일시적 객체에 대한 사용자 정의 할당 전략도 가능합니다.

대상 사용자

고차원 배열(텐서)을 다루는 연구자 및 개발자, 특히 양자 물리학이나 머신러닝 분야에서 텐서 컨트랙션을 간결하게 정의하고 최적화가 필요한 사람들을 위한 것입니다.

주요 특징

  • 에인슈타인 표기법: @tensor 매크로를 사용해 연산을 간결하게 표현.
  • GPU 가속: CUDA.jl을 통해 cuTENSOR v2 지원.
  • 자동 미분: AD 프레임워크와의 통합을 위한 역방향 모드 규칙 포함.
  • 유연한 할당: 성능 향상을 위한 일시적 객체에 대한 사용자 정의 할당 전략 지원.

관련

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