From 525723cc18ecbaeac740516d6aef1316512ccc2c Mon Sep 17 00:00:00 2001 From: Frames White Date: Fri, 17 May 2024 22:13:51 +0800 Subject: [PATCH 1/3] Add more engines supporting ChainRules to the docs --- docs/src/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/src/index.md b/docs/src/index.md index 666b1e4f9..d21e06122 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -45,10 +45,14 @@ It also `unthunk`s every tangent. [ReversePropagation.jl](https://github.com/dpsanders/ReversePropagation.jl) is a reverse-mode AD that supports using `rrule`s for scalar functions, but not calling back into AD and opting out of rules. +[TaylorDiff.jl](https://github.com/JuliaDiff/TaylorDiff.jl) is a forward taylor mode AD. + ### Packages supporting importing rules from ChainRules. Several packages do not automatically load rules from ChainRules by default, but support importing rules that were defined using it, e.g. with a macro. -[ReverseDiff.jl](https://github.com/JuliaDiff/ReverseDiff.jl) is a reverse-mode AD that supports using `rrule`s, but not calling back into AD and opting out of rules. It requires opting in to each rule using a macro. +[ReverseDiff.jl](https://github.com/JuliaDiff/ReverseDiff.jl) is a reverse-mode AD that supports using `rrule`s, but not calling back into AD and opting out of rules. + +[Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) supports import of `frule`s and `rrule`s. [Tapir.jl](https://github.com/withbayes/Tapir.jl/) is a reverse-mode add that supports importing a restricted subset of rules defined using `rrule`. Specifically, rules for functions whose inputs have tangent type `Float64` or `NoTangent`. From e6c28cfe7c1ab5b0e6233f1bdfe713e5b01355ab Mon Sep 17 00:00:00 2001 From: Frames White Date: Fri, 17 May 2024 22:17:02 +0800 Subject: [PATCH 2/3] Add Tracker too --- docs/src/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/index.md b/docs/src/index.md index d21e06122..22c77b98c 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -51,7 +51,7 @@ It also `unthunk`s every tangent. Several packages do not automatically load rules from ChainRules by default, but support importing rules that were defined using it, e.g. with a macro. [ReverseDiff.jl](https://github.com/JuliaDiff/ReverseDiff.jl) is a reverse-mode AD that supports using `rrule`s, but not calling back into AD and opting out of rules. - +[Tracker.jl](https://github.com/FluxML/Tracker.jl) is a reverse mode AD that supports importing `rrules` [Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) supports import of `frule`s and `rrule`s. [Tapir.jl](https://github.com/withbayes/Tapir.jl/) is a reverse-mode add that supports importing a restricted subset of rules defined using `rrule`. Specifically, rules for functions whose inputs have tangent type `Float64` or `NoTangent`. From 6b390ffd01880cb47883558b5c2ef0bfcf4eb70d Mon Sep 17 00:00:00 2001 From: Frames White Date: Fri, 17 May 2024 23:39:18 +0800 Subject: [PATCH 3/3] Update docs/src/index.md --- docs/src/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/src/index.md b/docs/src/index.md index 22c77b98c..4b449e46f 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -52,7 +52,7 @@ Several packages do not automatically load rules from ChainRules by default, but [ReverseDiff.jl](https://github.com/JuliaDiff/ReverseDiff.jl) is a reverse-mode AD that supports using `rrule`s, but not calling back into AD and opting out of rules. [Tracker.jl](https://github.com/FluxML/Tracker.jl) is a reverse mode AD that supports importing `rrules` -[Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) supports import of `frule`s and `rrule`s. +[Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) is a forward and reverse mode AD and supports import of `frule`s and `rrule`s. [Tapir.jl](https://github.com/withbayes/Tapir.jl/) is a reverse-mode add that supports importing a restricted subset of rules defined using `rrule`. Specifically, rules for functions whose inputs have tangent type `Float64` or `NoTangent`.