-
Notifications
You must be signed in to change notification settings - Fork 32
Expand file tree
/
Copy pathDifferentiationInterfaceEnzymeExt.jl
More file actions
60 lines (53 loc) · 1.04 KB
/
DifferentiationInterfaceEnzymeExt.jl
File metadata and controls
60 lines (53 loc) · 1.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
module DifferentiationInterfaceEnzymeExt
using ADTypes: ADTypes, AutoEnzyme
using Base: Fix1, datatype_pointerfree
import DifferentiationInterface as DI
using EnzymeCore:
Active,
Annotation,
BatchDuplicated,
BatchDuplicatedNoNeed,
BatchMixedDuplicated,
Combined,
Const,
Duplicated,
DuplicatedNoNeed,
EnzymeCore,
Forward,
ForwardMode,
ForwardWithPrimal,
MixedDuplicated,
Mode,
NoPrimal,
Reverse,
ReverseMode,
ReverseModeSplit,
ReverseSplitNoPrimal,
ReverseSplitWidth,
ReverseSplitWithPrimal,
ReverseWithPrimal,
Split,
WithPrimal
using Enzyme:
Enzyme,
autodiff,
autodiff_thunk,
create_shadows,
gradient,
gradient!,
guess_activity,
hvp,
hvp!,
jacobian,
make_zero,
make_zero!,
onehot,
runtime_activity
DI.check_available(::AutoEnzyme) = true
include("utils.jl")
include("forward_onearg.jl")
include("forward_twoarg.jl")
include("reverse_onearg.jl")
include("reverse_twoarg.jl")
include("init.jl")
end # module