-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Benchmark regressions of 1.3 vs 1.2 #32985
Comments
Some stuff to look through: Array indexing
Looks like a fluke Broadcasting memory allocations
Fixe by #33007 Id Dict stuff
etc Maybe fixed by: #33009 IOSome of these are expected to slow down due to new locks in IO code
Arithmetic
etc. Analyzed in #32985 (comment). Fixed in #33079. RandomProbably due to thread local rngs
Problem
This is because Scalar with big numbersThis is #31759
Sparse constructors ❓Constructor regression might be #31724
etc Others
This is likely due to the new |
The arithmetic regression can be reproduced with e.g. # 1.2
julia> n = 1024; a = rand(n); b = rand(n); @btime a+b;
2.083 μs (5 allocations: 8.22 KiB)
# 1.1
julia> n = 1024; a = rand(n); b = rand(n); @btime a+b;
711.142 ns (1 allocation: 8.13 KiB) Comparing profile traces vs 1.2 (the 1.3 one showed below):
It seems this might be related to the whole |
I believe the
is also due to the array arithmetic regression:
comes up on 1.3 while on 1.2 that section is just
|
For e.g. the |
* reconstruct PR #31118 * reconstruct PR 31118 2 * Check arguments of SparseMatrixCSC #31024 #31435 * fix SuiteSparse test * added NEWS, fixed tests * loosen restrictions - resize to useful length * cleaned up NEWS, revert minor change * add non-checking and checking constructor - improve check performance
Followup to https://github.com/JuliaLang/julia/pull/31724/files#r317686891; instead of widening the index type dynamically based upon the index vector length, just throw an error in the case where the index type cannot hold all the indices in a CSC format. This previously was an OOB access (and likely segfault) in 1.2, so throwing an error here is not a breaking change -- and throwing an error restores type stability, addressing the performance regression flagged in #32985.
Followup to https://github.com/JuliaLang/julia/pull/31724/files#r317686891; instead of widening the index type dynamically based upon the index vector length, just throw an error in the case where the index type cannot hold all the indices in a CSC format. This previously was an OOB access (and likely segfault) in 1.2, so throwing an error here is not a breaking change -- and throwing an error restores type stability, addressing the performance regression flagged in #32985.
Followup to https://github.com/JuliaLang/julia/pull/31724/files#r317686891; instead of widening the index type dynamically based upon the index vector length, just throw an error in the case where the index type cannot hold all the indices in a CSC format. This previously was an OOB access (and likely segfault) in 1.2, so throwing an error here is not a breaking change -- and throwing an error restores type stability, addressing the performance regression flagged in #32985. (cherry picked from commit 9725fb4)
Opening this issue to not pollute #32973. The benchmark run in that PR showed some regressions vs 1.2 (https://github.com/JuliaCI/BaseBenchmarkReports/blob/24d2f8dc38422bf7c21691c2fdfa243d894ec38f/c181990_vs_9392955/report.md).
I'll go through the results and post the ones I believe are worth looking more into
The text was updated successfully, but these errors were encountered: