Skip to content

v5.5.0

Choose a tag to compare

@github-actions github-actions released this 28 Jan 15:59
ff410ee

TensorOperations v5.5.0

Diff since v5.4.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.jl does not seem to support 32-bit Julia? (#123)
  • np.einsum_path vs TensorOperations (#156)
  • tensortrace not 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)