From 2ea035b3e699d179bde1ed341e4ca9ae84b39b2b Mon Sep 17 00:00:00 2001 From: liuzc <31593847+liuzhaochen@users.noreply.github.com> Date: Tue, 4 Aug 2026 09:29:58 +0200 Subject: [PATCH] Pass allocator through to transpose! in planar operations planaradd! and planarcontract! call transpose! without the allocator argument, so internal transform buffers fall back to DefaultAllocator (GC) instead of the caller's allocator. --- src/planar/planaroperations.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/planar/planaroperations.jl b/src/planar/planaroperations.jl index 758bb708a..dce3d663c 100644 --- a/src/planar/planaroperations.jl +++ b/src/planar/planaroperations.jl @@ -32,7 +32,7 @@ function planaradd!( α::Number, β::Number, backend, allocator ) - return transpose!(C, A, p, α, β, backend) + return transpose!(C, A, p, α, β, backend, allocator) end # insert default backend @@ -173,7 +173,7 @@ function planarcontract!( A′ = TO.tensoralloc_add( scalartype(A), A, (oindA, cindA), false, Val(true), allocator ) - transpose!(A′, A, (oindA, cindA), One(), Zero(), backend) + transpose!(A′, A, (oindA, cindA), One(), Zero(), backend, allocator) end if cindB == codB && oindB == domB @@ -182,7 +182,7 @@ function planarcontract!( B′ = TensorOperations.tensoralloc_add( scalartype(B), B, (cindB, oindB), false, Val(true), allocator ) - transpose!(B′, B, (cindB, oindB), One(), Zero(), backend) + transpose!(B′, B, (cindB, oindB), One(), Zero(), backend, allocator) end mul!(C, A′, B′, α, β) (oindA == codA && cindA == domA) || TO.tensorfree!(A′, allocator)