Skip to content

Significantly increased number of allocations in v0.16.4 compared to v0.16.3 #425

@Yue-Zhengyuan

Description

@Yue-Zhengyuan

I was doing SimpleUpdate benchmark tests using the current master branch of PEPSKit using the following script:

using Random
using TensorKit
using PEPSKit
using BenchmarkTools

Nr, Nc = 2, 2
ham = j1_j2_model(
    ComplexF64, Trivial, InfiniteSquare(Nr, Nc);
    J1 = 1.0, J2 = 0.0, sublattice = false
)
D = 8
Vvir =^D
state = InfinitePEPS(randn, ComplexF64, ℂ^2, Vvir; unitcell = (2, 2))
wts = SUWeight(state)
alg = SimpleUpdate(; trunc = truncrank(D))
evolver = TimeEvolver(state, ham, 0.1, 10, alg, wts)
circuit = evolver.gate

function test_suiter()
    return PEPSKit.su_iter(state, circuit, alg, wts)
end

@btime test_suiter()

Using TensorKit v0.16.4, the output is

13.033 ms (43992 allocations: 50.63 MiB)

If I downgrade to v0.16.3, I get

12.372 ms (25368 allocations: 49.86 MiB)

The number of allocations is almost 50% smaller with v0.16.3, though the speed change is not that dramatic. I haven't been able to produce a more minimal example. Is this something to worry about?


Environment details below:

Details

I'm using Julia 1.12.5, with:

  • Project.toml for v0.16.4
  [6e4b80f9] BenchmarkTools v1.8.0
  [bb1c41ca] MPSKit v0.13.10
  [ca635005] MPSKitModels v0.4.6
  [52969e89] PEPSKit v0.7.0 `../PEPSKit.jl`
  [07d1fe3e] TensorKit v0.16.4
  [41b62e7d] TensorKitTensors v0.2.4
  [37e2e46d] LinearAlgebra v1.12.0
  [de0858da] Printf v1.11.0
  [9a3f8284] Random v1.11.0
  [8dfed614] Test v1.11.0
  • Project.toml for v0.16.3
  [6e4b80f9] BenchmarkTools v1.8.0
  [bb1c41ca] MPSKit v0.13.10
  [ca635005] MPSKitModels v0.4.6
  [52969e89] PEPSKit v0.7.0 `../PEPSKit.jl`
⌅ [07d1fe3e] TensorKit v0.16.3
  [41b62e7d] TensorKitTensors v0.2.4
  [37e2e46d] LinearAlgebra v1.12.0
  [de0858da] Printf v1.11.0
  [9a3f8284] Random v1.11.0
  [8dfed614] Test v1.11.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions