Skip to content

eigen is 20% slower on 1.8-beta and nightly than 1.7 release #915

Closed
JuliaLang/julia
#45412
@Roger-luo

Description

@Roger-luo

I'm not sure what has been changed, but it seems eigen has a performance regression, also didn't find other issue mentioning this

on 1.7.2

julia> versioninfo()
Julia Version 1.7.2
Commit bf53498635 (2022-02-06 15:21 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: AMD Ryzen 9 3900X 12-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-12.0.1 (ORCJIT, znver2)

julia> using LinearAlgebra, BenchmarkTools

julia> M = rand(1000, 1000);

julia> @benchmark eigen($M)
BenchmarkTools.Trial: 7 samples with 1 evaluation.
 Range (min  max):  767.383 ms  783.423 ms  ┊ GC (min  max): 0.00%  0.04%
 Time  (median):     774.151 ms               ┊ GC (median):    0.04%
 Time  (mean ± σ):   774.743 ms ±   5.491 ms  ┊ GC (mean ± σ):  0.02% ± 0.02%

  █           █    █       █    █                █            █
  █▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁█▁▁▁▁▁▁▁█▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁█ ▁
  767 ms           Histogram: frequency by time          783 ms <

 Memory estimate: 31.58 MiB, allocs estimate: 21.

on 1.8-beta1

julia> versioninfo()
Julia Version 1.8.0-beta1
Commit 7b711ce699 (2022-02-23 15:09 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: 24 × AMD Ryzen 9 3900X 12-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, znver2)
  Threads: 1 on 24 virtual cores

julia> using LinearAlgebra, BenchmarkTools

julia> M = rand(1000, 1000);

julia> @benchmark eigen($M)
BenchmarkTools.Trial: 5 samples with 1 evaluation.
 Range (min  max):  1.067 s    1.109 s  ┊ GC (min  max): 0.04%  0.04%
 Time  (median):     1.095 s              ┊ GC (median):    0.04%
 Time  (mean ± σ):   1.089 s ± 17.117 ms  ┊ GC (mean ± σ):  0.02% ± 0.02%

  █         █                           █   █             █
  █▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁
  1.07 s         Histogram: frequency by time        1.11 s <

 Memory estimate: 31.58 MiB, allocs estimate: 21.

on master branch

julia> versioninfo()
Julia Version 1.9.0-DEV.118
Commit 15b5df4633 (2022-03-02 18:30 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: 24 × AMD Ryzen 9 3900X 12-Core Processor
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-13.0.1 (ORCJIT, znver2)
  Threads: 1 on 24 virtual cores

julia> using LinearAlgebra, BenchmarkTools

julia> M = rand(1000, 1000);

julia> @benchmark eigen($M)
BenchmarkTools.Trial: 5 samples with 1 evaluation.
 Range (min  max):  1.126 s    1.164 s  ┊ GC (min  max): 0.00%  0.00%
 Time  (median):     1.134 s              ┊ GC (median):    0.04%
 Time  (mean ± σ):   1.139 s ± 15.033 ms  ┊ GC (mean ± σ):  0.03% ± 0.02%

  █     █     █          █                                █
  █▁▁▁▁▁█▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁█▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁█ ▁
  1.13 s         Histogram: frequency by time        1.16 s <

 Memory estimate: 31.58 MiB, allocs estimate: 21.

Metadata

Metadata

Assignees

No one assigned

    Labels

    performanceMust go fasterregressionRegression in behavior compared to a previous version

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions