Releases: QuantumKitHub/TensorOperations.jl
v5.5.0
TensorOperations v5.5.0
We are excited to announce TensorOperations v5.5.0, which consists of two main new features.
Firstly, automatic differentiation support now includes both Mooncake.jl and Enzyme.jl, on top of the already existing Zygote.jl support.
We hope that by providing native rules for our methods we can retain both runtime performance, as well as manage the compile time costs that are often associated with some of these AD frameworks.
Secondly, we added some additional functionality to better facilitate working with stack-like allocators.
This not only simplifies the internal implementation of the Bumper.jl support we already had, but also allows us to include a new BufferAllocator strategy.
Similar to how Bumper.jl works, this allocator can be used to avoid having to repeatedly allocate, especially when performing tensor contractions in a loop.
However, unlike Bumper.jl, this buffer does not require a maximal size, and can automatically adapt its size for the workflow, hopefully leading to a more convenient user experience.
Merged pull requests:
- Rules with Mooncake (#240) (@kshyatt)
- Bump minimum supported version to 1.10 (lts) (#241) (@kshyatt)
- Add Enzyme rules (#243) (@kshyatt)
- Split pullbacks into separate files (#244) (@kshyatt)
- Kron typo fixed (#245) (@ebelnikola)
- Try enabling the complex tests for Mooncake (#246) (@kshyatt)
- CompatHelper: bump compat for Mooncake in [extras] to 0.5, (keep existing compat) (#247) (@github-actions[bot])
- Turn on one last Mooncake test (#249) (@kshyatt)
- Don't run Enyzme tests on mac CI (#250) (@kshyatt)
- [Feature] buffer- and stack-based allocator strategies (#251) (@lkdvos)
Closed issues:
- Solving linear equations involving tensors (#27)
- Best way to tensor reshaping (#46)
- Method errors with Flux.jl and Knet.jl (#47)
- How can I perform star contraction? (#50)
- Feature Request: Add "axes" option in tensor contract (#74)
- Using a constant rhs in @tensor (#111)
- Literals get contracted as if they were symbols (#113)
TensorOperations.jldoes not seem to support 32-bit Julia? (#123)- np.einsum_path vs TensorOperations (#156)
tensortracenot working on Arrays of Symbolic Expressions from Symbolics.jl. (#163)- Discussion : ussing nonlinearity and normalization in the operations (#187)
- Try using Mooncake with existing rules and piping through to MatrixAlgebraKit (#237)
- Symmetric matrix and their multiplications. (feature request) (#239)
v5.4.0
TensorOperations v5.4.0
This minor release contains a number of compat version updates, especially for cuTENSOR and CUDA.
Additionally, the automatic differentiation support has been improved to better support second order derivatives, along with a number
10BC0
of performance improvements.
Merged pull requests:
- Bump dependency compat and try using TO on newer CUDA/cuTENSOR (#223) (@kshyatt)
- Add warning to docs about mixing contraction order specification styles (#229) (@lkdvos)
- Bump actions/checkout from 5 to 6 (#232) (@dependabot[bot])
- Add support for higher-order derivatives (#233) (@yitan1)
- CompatHelper: bump compat for DynamicPolynomials in [extras] to 0.6, (keep existing compat) (#234) (@github-actions[bot])
- Avoid computing derivatives with respect to non-differentiable
α, β(#236) (@lkdvos) - Some AD cleanup (#238) (@Jutho)
Closed issues:
- document
similar_from_indices? (#89) - ERROR: MethodError: no method matching Strided.UnsafeStridedView(::Hermitian{Float64,Array{Float64,2}}) (#102)
- Calling ncon with a view throws MethodError (#119)
- How can @tensor macro be used in variable length systems? (#125)
- Add doesn't broadcast (#214)
- Support for second-order differentiation (grad of grad) (#227)
- Contraction order with parentheses + ncon style (#228)
- Bug for CuArray matrix multiplication (#230)
- Performance issue in Zygote AD for TensorOperations.@tensor on CUDA: costly CPU copies in rrule (#235)
v5.3.1
TensorOperations v5.3.1
Merged pull requests:
- Bump actions/checkout from 4 to 5 (#221) (@dependabot[bot])
- Update URLs and support buildkite GPU testing (#222) (@kshyatt)
- Qualify constructor of
CUDAAllocatorin cuTENSOR extension (#224) (@giordano) - [Fix] include alpha when determining the scalartype of a linear combination (#225) (@lkdvos)
Closed issues:
v5.3.0
TensorOperations v5.3.0
This minor version release includes some small fixes, but most importantly changes the precompilation from being opt-out to opt-in. This is mostly because it can take a substantial amount of time, and some users have ran into issues where the precompilation hangs indefinitely, especially on certain cluster architectures.
Merged pull requests:
- Add more descriptive errors to
ncon(#216) (@VictorVanthilt) - Add logo compatible with darkmode (#218) (@VictorVanthilt)
- Avoid using strings in
nconstylechecks and errors (#219) (@lkdvos)
v5.2.1
v5.2.0
TensorOperations v5.2.0
v5.2.0 attempts to improve the overall user experience by including some precompilation for the main methods of this package. For now, this is limited to Array{Float64} or Array{ComplexF64} to not overburden the precompilation time, and we'll be monitoring the implications and adjust accordingly if necessary.
Merged pull requests:
- Add precompile statements (#203) (@lkdvos)
- Add aliasing warning to docs (#204) (@lkdvos)
optimaltreehangs on edge case with all costs equal to 1 (#207) (@lkdvos)
Closed issues:
- Incorrect result when using input tensor to store result of contraction involving sum (#192)
v5.1.4
TensorOperations v5.1.4
Merged pull requests:
- Bump codecov/codecov-action from 4 to 5 (#200) (@dependabot[bot])
- fix ad type instabilities in new zygote (#202) (@Jutho)
Closed issues:
- Debugging bus errors triggered from TensorOperations CUDA calls (#201)
v5.1.3
TensorOperations v5.1.3
Merged pull requests:
v5.1.2
TensorOperations v5.1.2
Fixes a missing allocator in tensorfree!which led to memory leaks in the ManualAllocatorstrategy
Merged pull requests:
Closed issues:
- Einsum Expression works in numpy but not TensorOperations (#195)