-
Notifications
You must be signed in to change notification settings - Fork 62
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
Julia Crashes from Assertion #1429
Comments
@avik-pal are you able to reduce out the Dense into more fundamental function calls and still get this to trigger? |
using LuxLib, Enzyme
y = randn(Float32, 10, 10)
b = randn(Float32, 10)
act = gelu
function loss_function(act, y, b)
return sum(LuxLib.__apply_bias_activation!!(act, y, b, Val(false)))
end
loss_function(act, y, b)
begin
dy = Enzyme.make_zero(y)
db = Enzyme.make_zero(b)
Enzyme.autodiff(Enzyme.Reverse, loss_function, Active, Const(act),
Duplicated(y, dy), Duplicated(b, db))
end Now I get ERROR: LLVM error: function failed verification (4) without the julia crash |
For better or worse that's a different error, I'll try to repo the last one and see if it's a quick fix. For both errors can you include the full logs? |
using Enzyme, Polyester
y = randn(Float32, 10, 10)
b = randn(Float32, 10)
act = x -> max(x, 0)
function __apply_bias_activation!!(σ::F, x, bias::Union{Nothing, AbstractArray}) where {F}
f_fused = σ ∘ +
if maximum(length, (x, bias)) > 100_000
bc = Broadcast.instantiate(Broadcast.broadcasted(f_fused, x, bias))
@batch for I in eachindex(bc)
@inbounds x[I] = bc[I]
end
else
@. x = f_fused(x, bias)
end
return x
# return LuxLib.__nonuniform_fast_broadcast!(σ ∘ +, x, bias)
end
function loss_function(act, y, b)
return sum(__apply_bias_activation!!(act, y, b))
end
loss_function(act, y, b)
begin
dy = Enzyme.make_zero(y)
db = Enzyme.make_zero(b)
Enzyme.autodiff(Enzyme.Reverse, loss_function, Active,
Const(act), Duplicated(y, dy), Duplicated(b, db))
end A minimal version without Lux deps Crash Log
|
@wsmoses added the crash logs. the one with |
also @avik-pal
|
Okay I have confirmed the latter to unquestionably be a bug in polyester, not Enzyme. Speciically I did
You will see that there is a gc preserve begin
which is never used and has no gc_preserve_end |
Posted here JuliaSIMD/Polyester.jl#145 |
@avik-pal given that this issue is premised on invalid LLVM to begin with, I'm going to close. Please reopen if I'm mistaken and it can be reproduced without the invalid LLVM. |
If
use_bias = true
, then we don't get a julia segfault but it still errors.If we don't specify an activation function, then it works fine
Crash Log
The text was updated successfully, but these errors were encountered: