From 44b05ab9d09639b20f6f91600956faddb9bde716 Mon Sep 17 00:00:00 2001 From: Brian Chen Date: Thu, 23 Jan 2025 20:11:26 -0800 Subject: [PATCH 1/3] Don't create nested thunks when accumulating Otherwise, it's too easy to create massive types that freeze compilation and blow the stack. --- src/lib/lib.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/lib.jl b/src/lib/lib.jl index 90e596d95..3d30cd100 100644 --- a/src/lib/lib.jl +++ b/src/lib/lib.jl @@ -43,9 +43,9 @@ accum(x::ChainRulesCore.Tangent, y::NamedTuple) = accum(wrap_chainrules_output(x accum(x::Nothing, y::AbstractThunk) = y accum(x::AbstractThunk, y::Nothing) = x -accum(x, y::AbstractThunk) = @thunk(accum(x, unthunk(y))) -accum(x::AbstractThunk, y) = @thunk(accum(unthunk(x), y)) -accum(x::AbstractThunk, y::AbstractThunk) = @thunk(accum(unthunk(x), unthunk(y))) +accum(x, y::AbstractThunk) = accum(x, unthunk(y)) +accum(x::AbstractThunk, y) = accum(unthunk(x), y)) +accum(x::AbstractThunk, y::AbstractThunk) = accum(unthunk(x), unthunk(y)) # Core functions @_adjoint_keepthunks deepcopy(x) = deepcopy(x), ȳ -> (ȳ,) From ea31f7458f8c593811be2fa2a6e99aaacf6cd302 Mon Sep 17 00:00:00 2001 From: Brian Chen Date: Thu, 23 Jan 2025 20:22:03 -0800 Subject: [PATCH 2/3] extraneous bracket --- src/lib/lib.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/lib.jl b/src/lib/lib.jl index 3d30cd100..b209fb02e 100644 --- a/src/lib/lib.jl +++ b/src/lib/lib.jl @@ -44,7 +44,7 @@ accum(x::Nothing, y::AbstractThunk) = y accum(x::AbstractThunk, y::Nothing) = x accum(x, y::AbstractThunk) = accum(x, unthunk(y)) -accum(x::AbstractThunk, y) = accum(unthunk(x), y)) +accum(x::AbstractThunk, y) = accum(unthunk(x), y) accum(x::AbstractThunk, y::AbstractThunk) = accum(unthunk(x), unthunk(y)) # Core functions From 4a24b323608fe2c851b551e794478ba38044e072 Mon Sep 17 00:00:00 2001 From: Brian Chen Date: Thu, 30 Jan 2025 16:49:32 -0800 Subject: [PATCH 3/3] bump version --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 6a75ef54a..f1fc5a957 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "Zygote" uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.7.3" +version = "0.7.4" [deps] AbstractFFTs = "621f4979-c628-5d54-868e-fcf4e3e8185c"