-
Notifications
You must be signed in to change notification settings - Fork 152
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
Regression in LU factorization causing allocations #1261
Comments
@avik-pal this is the root of the master failures popping up on SimpleNonlinearSolve.jl as well But it seems to be odd because while I can reproduce the issue, I just found that it might be spurious: julia> try
__solve_no_alloc(A, b)
catch err
(err.errors...,)
end
(Allocating runtime call to "jl_get_pgcstack" in unknown location
, Allocating runtime call to "jl_get_pgcstack" in C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:81
| L, U, P = __lu(A, $(_pivot))
Stacktrace:
[1] macro expansion
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:81 [inlined]
[2] _lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:73 [inlined]
[3] #lu#495
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:50 [inlined]
[4] lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:49 [inlined]
[5] lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:54 [inlined]
[6] macro expansion
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:62 [inlined]
[7] _solve_general
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:52 [inlined]
[8] _solve
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:49 [inlined]
[9] \
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:1 [inlined]
[10] var"##__solve_no_alloc#225"(A::SMatrix{5, 5, Float64, 25}, b::SVector{5, Float64})
@ Main c:\Users\accou\OneDrive\Computer\Desktop\test.jl:20
, Allocating runtime call to "jl_get_pgcstack" in C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:189
| Lrest, Urest, prest = __lu(Arest, Val(Pivot))
Stacktrace:
[1] __lu(A::SMatrix{5, 5, Float64, 25}, ::Val{true})
@ StaticArrays C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:189
[2] macro expansion
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:81 [inlined]
[3] _lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:73 [inlined]
[4] #lu#495
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:50 [inlined]
[5] lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:49 [inlined]
[6] lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:54 [inlined]
[7] macro expansion
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:62 [inlined]
[8] _solve_general
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:52 [inlined]
[9] _solve
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:49 [inlined]
[10] \
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:1 [inlined]
[11] var"##__solve_no_alloc#225"(A::SMatrix{5, 5, Float64, 25}, b::SVector{5, Float64})
@ Main c:\Users\accou\OneDrive\Computer\Desktop\test.jl:20
, Allocating runtime call to "jl_get_pgcstack" in C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:189
| Lrest, Urest, prest = __lu(Arest, Val(Pivot))
Stacktrace:
[1] __lu(A::SMatrix{4, 4, Float64, 16}, ::Val{true})
@ StaticArrays C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:189
[2] __lu(A::SMatrix{5, 5, Float64, 25}, ::Val{true})
@ StaticArrays C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:189
[3] macro expansion
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:81 [inlined]
[4] _lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:73 [inlined]
[5] #lu#495
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:50 [inlined]
[6] lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:49 [inlined]
[7] lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:54 [inlined]
[8] macro expansion
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:62 [inlined]
[9] _solve_general
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:52 [inlined]
[10] _solve
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:49 [inlined]
[11] \
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:1 [inlined]
[12] var"##__solve_no_alloc#225"(A::SMatrix{5, 5, Float64, 25}, b::SVector{5, Float64})
@ Main c:\Users\accou\OneDrive\Computer\Desktop\test.jl:20
, Allocating runtime call to "jl_get_pgcstack" in C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:189
| Lrest, Urest, prest = __lu(Arest, Val(Pivot))
Stacktrace:
[1] __lu(A::SMatrix{3, 3, Float64, 9}, ::Val{true})
@ StaticArrays C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:189
[2] __lu(A::SMatrix{4, 4, Float64, 16}, ::Val{true})
@ StaticArrays C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:189
[3] __lu(A::SMatrix{5, 5, Float64, 25}, ::Val{true})
@ StaticArrays C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:189
[4] macro expansion
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:81 [inlined]
[5] _lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:73 [inlined]
[6] #lu#495
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:50 [inlined]
[7] lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:49 [inlined]
[8] lu
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\lu.jl:54 [inlined]
[9] macro expansion
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:62 [inlined]
[10] _solve_general
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:52 [inlined]
[11] _solve
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:49 [inlined]
[12] \
@ C:\Users\accou\.julia\packages\StaticArrays\85pEu\src\solve.jl:1 [inlined]
[13] var"##__solve_no_alloc#225"(A::SMatrix{5, 5, Float64, 25}, b::SVector{5, Float64})
@ Main c:\Users\accou\OneDrive\Computer\Desktop\test.jl:20
)
julia>
julia> @btime $A\$b
86.639 ns (0 allocations: 0 bytes)
5-element SVector{5, Float64} with indices SOneTo(5):
-0.30935229423056443
0.07052238283605455
0.04962709500876435
-0.10340384952355772
0.5303187520058518 Going to need to dig deeper to figure out if this is really StaticArrays.jl or AllocCheck.jl |
Turns out to be an AllocCheck.jl bug as |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
MWE:
The text was updated successfully, but these errors were encountered: