QuantumKitHub/TensorOperations.jl
Julia package for tensor contractions and related operations
What it solves
It simplifies the process of performing complex tensor operations by allowing users to write them using Einstein index notation, which is more intuitive than nested loops or multiple manual reshapes and contractions.
How it works
The library provides the @tensor macro, which enables users to express tensor contractions and additions using abstract index notation (Einstein summation convention). It supports multiple backends for execution, including cuTENSOR v2 for GPU acceleration, and integrates with ChainRulesCore.jl for automatic differentiation. It also allows for custom allocation strategies, such as using Bumper.jl for temporary objects.
Who it’s for
It is designed for researchers and developers working with high-dimensional arrays (tensors), particularly those in fields like quantum physics or machine learning, who need a concise way to define and optimize tensor contractions.
Highlights
- Einstein Notation: Uses the
@tensormacro to express operations concisely. - GPU Acceleration: Supports cuTENSOR v2 via
CUDA.jl. - Automatic Differentiation: Includes reverse-mode rules for integration with AD frameworks.
- Flexible Allocation: Supports custom allocation strategies for temporary objects to improve performance.
Related
- Project
- Project
- Project
- Project
- Project