Skip to content
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

Test Enzyme and reexport ADTypes.AutoEnzyme #1887

Draft
wants to merge 72 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
29017e7
Add support for Enzyme
devmotion Sep 28, 2022
fdf0d43
Merge branch 'master' into dw/enzyme
yebai Nov 7, 2022
d7ef23e
Merge branch 'master' into dw/enzyme
yebai Nov 12, 2022
874b9e7
Merge branch 'master' into dw/enzyme
devmotion Dec 23, 2022
43ef4c4
Apply suggestions from code review
devmotion Dec 23, 2022
3e5841f
Add Enzyme to test dependencies
devmotion Dec 29, 2022
66bce4e
Test Enzyme
devmotion Dec 29, 2022
7890134
Update ad.jl
devmotion Dec 29, 2022
120e9f5
Merge branch 'master' into dw/enzyme
yebai Feb 3, 2023
f4bd1bf
Update Project.toml
yebai Feb 3, 2023
c8e01d0
Update advi.jl
yebai Feb 3, 2023
d8d7729
Merge branch 'master' into dw/enzyme
yebai Feb 16, 2023
1d1dba0
Merge branch 'master' into dw/enzyme
yebai Mar 1, 2023
946e594
Do not call `Bijectors.setadbackend`
devmotion Mar 7, 2023
edd19a4
Merge branch 'master' into dw/enzyme
yebai Apr 12, 2023
e9eedd1
Update Project.toml
devmotion Apr 13, 2023
9cfb589
Merge branch 'master' into dw/enzyme
yebai May 25, 2023
cf03624
Merge branch 'master' into dw/enzyme
yebai Jun 14, 2023
0a5c42b
Merge branch 'master' into dw/enzyme
devmotion Jun 24, 2023
8d8d031
Address comments
devmotion Jun 26, 2023
e591630
Update runtests.jl
devmotion Jun 27, 2023
568cdac
Update Project.toml
devmotion Jul 7, 2023
d00f297
Merge branch 'master' into dw/enzyme
devmotion Jul 7, 2023
6f0bf67
Update Project.toml
devmotion Jul 7, 2023
5ba7ac6
Update Project.toml
devmotion Jul 13, 2023
162755b
Test against Enzyme#main
devmotion Jul 14, 2023
ce26c3c
Merge branch 'master' into dw/enzyme
devmotion Jul 14, 2023
b35ab28
Merge branch 'master' into dw/enzyme
yebai Jul 21, 2023
e44e756
Try addr13 branch
devmotion Jul 24, 2023
1f1b114
Update runtests.jl
devmotion Jul 27, 2023
1b3fa60
Merge branch 'master' into dw/enzyme
devmotion Jul 27, 2023
aad8a1a
Merge branch 'master' into dw/enzyme
yebai Jul 30, 2023
bb795e6
Disable Gibbs tests temporarily
yebai Jul 31, 2023
1c7f20e
Update test/Project.toml
yebai Jul 31, 2023
2a40639
Merge branch 'master' into dw/enzyme
yebai Aug 8, 2023
1b87d2e
Merge branch 'master' into dw/enzyme
yebai Aug 14, 2023
dad6b97
Merge branch 'master' into dw/enzyme
yebai Sep 4, 2023
012a0cb
disable tests unrelated to enzyme + limit CI to avoid over-use of res…
torfjelde Sep 23, 2023
552b01f
Merge branch 'master' into dw/enzyme
sunxd3 Dec 12, 2023
5777344
import `AutoEnzyme`
sunxd3 Dec 12, 2023
1ffdbca
Merge branch 'master' into dw/enzyme
sunxd3 Dec 16, 2023
121df7d
Test hmc only
sunxd3 Dec 16, 2023
a164707
Update sghmc.jl
wsmoses Dec 21, 2023
97f1fb6
Update runtests.jl
wsmoses Dec 21, 2023
c7b6cf4
disable Type unstable getfield
wsmoses Jan 25, 2024
efdd8e7
use release
wsmoses Jan 25, 2024
2fdf546
Remove seemingly unnecessary definition
devmotion Jan 25, 2024
4d8cd23
Run tests on Enzyme#main again
devmotion Jan 26, 2024
47292a7
Merge branch 'master' into dw/enzyme
wsmoses Jan 27, 2024
4b00f0d
Merge branch 'master' into dw/enzyme
wsmoses Feb 10, 2024
889275e
Merge branch 'master' into dw/enzyme
yebai Feb 27, 2024
578967b
Merge branch 'master' into dw/enzyme
yebai Mar 4, 2024
b8296be
Test with cholesky fixes
devmotion Mar 13, 2024
0385250
Merge branch 'master' into dw/enzyme
yebai Apr 8, 2024
24cc3a9
Merge branch 'master' into dw/enzyme
yebai May 29, 2024
2b54d69
Update Project.toml
yebai May 29, 2024
2823a41
Update Turing.jl
yebai May 29, 2024
f4c72bd
Merge remote-tracking branch 'origin/master' into dw/enzyme
mhauru Jun 21, 2024
6b7159c
Merge branch 'master' into dw/enzyme
devmotion Jul 1, 2024
0c376a6
Attempt at fix for `bnn` tests as outlined in #2277
torfjelde Jul 1, 2024
76b5e48
Update test/runtests.jl
yebai Jul 9, 2024
784b8cb
Update runtests.jl
yebai Jul 9, 2024
5bfd06d
remove implicit usage of `hvcat`
torfjelde Jul 9, 2024
836e29b
Merge branch 'master' into dw/enzyme
yebai Jul 9, 2024
e299042
Merge branch 'master' into dw/enzyme
devmotion Jul 10, 2024
d4d55d6
Merge branch 'master' into dw/enzyme
wsmoses Jul 21, 2024
ce13e03
Re-activate CIs disabled for Enzyme testing
torfjelde Jul 25, 2024
19a3332
Merge branch 'master' into dw/enzyme
yebai Jul 31, 2024
e2c0693
Re-enable tests with other AD backends
devmotion Aug 15, 2024
387018d
Merge branch 'master' into dw/enzyme
devmotion Aug 15, 2024
2115d52
Load `@test_broken`
devmotion Aug 15, 2024
b7ad9db
Merge branch 'master' into dw/enzyme
yebai Sep 3, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/essential/Essential.jl
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ export @model,
setadbackend,
setadsafe,
ForwardDiffAD,
EnzymeAD,
TrackerAD,
ZygoteAD,
ReverseDiffAD,
Expand Down
11 changes: 10 additions & 1 deletion src/essential/ad.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ end
function _setadbackend(::Val{:forwarddiff})
ADBACKEND[] = :forwarddiff
end
function _setadbackend(::Val{:enzyme})
ADBACKEND[] = :enzyme
end
function _setadbackend(::Val{:tracker})
ADBACKEND[] = :tracker
end
Expand Down Expand Up @@ -47,6 +50,7 @@ getchunksize(::ForwardDiffAD{chunk}) where chunk = chunk
standardtag(::ForwardDiffAD{<:Any,true}) = true
standardtag(::ForwardDiffAD) = false

struct EnzymeAD <: ADBackend end
struct TrackerAD <: ADBackend end
struct ZygoteAD <: ADBackend end

Expand All @@ -64,6 +68,7 @@ ADBackend() = ADBackend(ADBACKEND[])
ADBackend(T::Symbol) = ADBackend(Val(T))

ADBackend(::Val{:forwarddiff}) = ForwardDiffAD{CHUNKSIZE[]}
ADBackend(::Val{:enzyme}) = EnzymeAD
ADBackend(::Val{:tracker}) = TrackerAD
ADBackend(::Val{:zygote}) = ZygoteAD
ADBackend(::Val{:reversediff}) = ReverseDiffAD{getrdcache()}
Expand Down Expand Up @@ -102,8 +107,12 @@ function LogDensityProblemsAD.ADgradient(ad::ForwardDiffAD, ℓ::Turing.LogDensi
return LogDensityProblemsAD.ADgradient(Val(:ForwardDiff), ℓ; gradientconfig=config)
end

function LogDensityProblemsAD.ADgradient(::EnzymeAD, ℓ::Turing.LogDensityFunction)
return LogDensityProblems.ADgradient(Val(:Enzyme), ℓ)
devmotion marked this conversation as resolved.
Show resolved Hide resolved
end

function LogDensityProblemsAD.ADgradient(::TrackerAD, ℓ::Turing.LogDensityFunction)
return LogDensityProblemsAD.ADgradient(Val(:Tracker), ℓ)
return LogDensityProblems.ADgradient(Val(:Tracker), ℓ)
devmotion marked this conversation as resolved.
Show resolved Hide resolved
end

function LogDensityProblemsAD.ADgradient(::ZygoteAD, ℓ::Turing.LogDensityFunction)
Expand Down