From 0e3e426a602a0cd604082b0afa58d8f400e9bb40 Mon Sep 17 00:00:00 2001 From: lkdvos Date: Mon, 2 Nov 2026 11:41:57 -0500 Subject: [PATCH 1/4] Update changelog for v5.8.3 Co-Authored-By: Claude Opus 5.5 --- docs/src/changelog.md | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/docs/src/changelog.md b/docs/src/changelog.md index 5e5dc88e..1265205f 100644 --- a/docs/src/changelog.md +++ b/docs/src/changelog.md @@ -5,30 +5,44 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [Unreleased](https://github.com/QuantumKitHub/TensorOperations.jl/compare/v5.8.2...HEAD) +## [Unreleased](https://github.com/QuantumKitHub/TensorOperations.jl/compare/v5.8.3...HEAD) ### Added ### Changed -- Compat with GPUArrays is extended to include 12, and with JLArrays to include 0.4. - ### Deprecated ### Removed ### Fixed -- `ncon` can be differentiated with Zygote, including networks with traces. -- `ncon` accepts traces in networks whose index lists are given as row matrices, e.g. `[1 1 -1]`. +### Performance + +## [5.8.3](https://github.com/QuantumKitHub/TensorOperations.jl/compare/v5.8.2...v5.8.3) - 2026-11-02 + +### Added + +- `cuTENSORBackend` accepts a `workspace` keyword (`:min`, `:default` or `:max`) to set cuTENSOR's workspace preference for contractions ([#318](https://github.com/QuantumKitHub/TensorOperations.jl/pull/318)). + +### Changed + +- Compat with GPUArrays is extended to include 12, and with JLArrays to include 0.4 ([#313](https://github.com/QuantumKitHub/TensorOperations.jl/pull/313)). + +### Fixed + +- `ncon` can be differentiated with Zygote, including networks with traces ([#314](https://github.com/QuantumKitHub/TensorOperations.jl/pull/314)). +- `ncon` accepts traces in networks whose index lists are given as row matrices, e.g. `[1 1 -1]` ([#314](https://github.com/QuantumKitHub/TensorOperations.jl/pull/314)). - Contractions using the `StridedBLAS` backend no longer heap allocate a view of an input tensor when an allocator such as Bumper's is used ([#273](https://github.com/QuantumKitHub/TensorOperations.jl/issues/273)). +- `BufferAllocator` now records the full buffer size a pass needs when it overflows its limit, so it no longer under-sizes the buffer on resize and fits everything on the next pass ([#310](https://github.com/QuantumKitHub/TensorOperations.jl/pull/310)). +- The ChainRules, Enzyme and Mooncake rules cover `tensorfree!(C)` and `tensorfree!(C, allocator)`; the ChainRules rule previously had the wrong signature ([#321](https://github.com/QuantumKitHub/TensorOperations.jl/pull/321)). ### Performance -- `ncon` has significantly less overhead: the network analysis and contraction tree construction are type stable, and every pairwise contraction goes through a single dynamic dispatch. -- Contractions of `Array`s that require a permuted copy of an input no longer suffer from a type instability. -- Index labels given as vectors, as in `ncon` or the method syntax `tensorcontract(IC, A, IA, B, IB)`, are converted to index permutations in a type-stable manner, which avoids compiling the conversion for every combination of numbers of indices. -- `ncon` partitions its intermediates as `(open indices of A; open indices of B)` instead of placing all indices in the codomain, which avoids repartitioning copies for tensor types such as `TensorMap`s with symmetries ([#311](https://github.com/QuantumKitHub/TensorOperations.jl/issues/311)). +- `ncon` has significantly less overhead: the network analysis and contraction tree construction are type stable, and every pairwise contraction goes through a single dynamic dispatch ([#314](https://github.com/QuantumKitHub/TensorOperations.jl/pull/314)). +- Contractions of `Array`s that require a permuted copy of an input no longer suffer from a type instability ([#314](https://github.com/QuantumKitHub/TensorOperations.jl/pull/314)). +- Index labels given as vectors, as in `ncon` or the method syntax `tensorcontract(IC, A, IA, B, IB)`, are converted to index permutations in a type-stable manner, which avoids compiling the conversion for every combination of numbers of indices ([#314](https://github.com/QuantumKitHub/TensorOperations.jl/pull/314)). +- `ncon` partitions its intermediates as `(open indices of A; open indices of B)` instead of placing all indices in the codomain, which avoids repartitioning copies for tensor types such as `TensorMap`s with symmetries ([#311](https://github.com/QuantumKitHub/TensorOperations.jl/issues/311), [#312](https://github.com/QuantumKitHub/TensorOperations.jl/pull/312)). ## [5.8.2](https://github.com/QuantumKitHub/TensorOperations.jl/compare/v5.8.1...v5.8.2) - 2026-09-30 From 05695be38db50b685bd2400a88d437d3331f79fd Mon Sep 17 00:00:00 2001 From: lkdvos Date: Mon, 2 Nov 2026 11:41:58 -0500 Subject: [PATCH 2/4] Bump version to v5.8.3 Co-Authored-By: Claude Opus 5.5 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 3f1c6232..40564f54 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "TensorOperations" uuid = "6aa20fa7-93e2-5fca-9bc0-fbd0db3c71a2" -version = "5.8.2" +version = "5.8.3" authors = ["Lukas Devos ", "Maarten Van Damme ", "Jutho Haegeman "] [deps] From 41c0bbb60a780d770c127440b38f2e3377486448 Mon Sep 17 00:00:00 2001 From: lkdvos Date: Mon, 2 Nov 2026 11:42:01 -0500 Subject: [PATCH 3/4] Update CITATION.cff for v5.8.3 Co-Authored-By: Claude Opus 5.5 --- CITATION.cff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 0e705157..0c1f0f93 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -13,8 +13,8 @@ authors: - family-names: Haegeman given-names: Jutho orcid: "https://orcid.org/0000-0002-0858-291X" -version: 5.8.2 -date-released: "2026-09-30" +version: 5.8.3 +date-released: "2026-11-02" doi: 10.5281/zenodo.3245496 license: MIT repository-code: "https://github.com/QuantumKitHub/TensorOperations.jl" From e3fa407f607d057a8bfb05fb03beed6a1e77f324 Mon Sep 17 00:00:00 2001 From: lkdvos Date: Mon, 2 Nov 2026 11:43:16 -0500 Subject: [PATCH 4/4] Link #314 for the StridedBLAS allocator fix in the v5.8.3 changelog Co-Authored-By: Claude Opus 5.5 --- docs/src/changelog.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/changelog.md b/docs/src/changelog.md index 1265205f..874e110b 100644 --- a/docs/src/changelog.md +++ b/docs/src/changelog.md @@ -33,7 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `ncon` can be differentiated with Zygote, including networks with traces ([#314](https://github.com/QuantumKitHub/TensorOperations.jl/pull/314)). - `ncon` accepts traces in networks whose index lists are given as row matrices, e.g. `[1 1 -1]` ([#314](https://github.com/QuantumKitHub/TensorOperations.jl/pull/314)). -- Contractions using the `StridedBLAS` backend no longer heap allocate a view of an input tensor when an allocator such as Bumper's is used ([#273](https://github.com/QuantumKitHub/TensorOperations.jl/issues/273)). +- Contractions using the `StridedBLAS` backend no longer heap allocate a view of an input tensor when an allocator such as Bumper's is used ([#273](https://github.com/QuantumKitHub/TensorOperations.jl/issues/273), [#314](https://github.com/QuantumKitHub/TensorOperations.jl/pull/314)). - `BufferAllocator` now records the full buffer size a pass needs when it overflows its limit, so it no longer under-sizes the buffer on resize and fits everything on the next pass ([#310](https://github.com/QuantumKitHub/TensorOperations.jl/pull/310)). - The ChainRules, Enzyme and Mooncake rules cover `tensorfree!(C)` and `tensorfree!(C, allocator)`; the ChainRules rule previously had the wrong signature ([#321](https://github.com/QuantumKitHub/TensorOperations.jl/pull/321)).