Add more info about where autodiff can be applied#154795
Merged
rust-bors[bot] merged 2 commits intorust-lang:mainfrom Apr 7, 2026
Merged
Add more info about where autodiff can be applied#154795rust-bors[bot] merged 2 commits intorust-lang:mainfrom
rust-bors[bot] merged 2 commits intorust-lang:mainfrom
Conversation
Collaborator
|
|
This comment has been minimized.
This comment has been minimized.
4177aed to
df9d50a
Compare
This comment has been minimized.
This comment has been minimized.
Contributor
|
in terms of usage cases, not really. maybe mentioning what we can't do? as a user, i'd really appreciate to at least have a general idea of my tool's limitations upfront |
This comment has been minimized.
This comment has been minimized.
a233712 to
3a7ffdc
Compare
Member
Author
|
tidy didn't like my In theory doing equality comparisons on floats is bad coding style and we shouldn't encourage it via docs, but then again the whole point of compiler based AD is that we know (and check) which IR we generate, so there can't be any missmatches due to rounding. So I guess here it's fine. |
oli-obk
approved these changes
Apr 7, 2026
Contributor
|
@bors r+ rollup |
Contributor
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Apr 7, 2026
…i-obk Add more info about where autodiff can be applied It's taken quite a few years, but we finally have a PR open to distribute Enzyme: rust-lang#154754 I therefore went over the docs once more and noticed we don't explain a lot of the most basic features, which we added over the years and have since taken for granted. @Sa4dUs, do you think there are more interesting cases that we are missing? Generally, there's still a lot of complexity in it, especially for people who haven't used Enzyme before. To some extent, that's just a result of my general design goal to expose all performance-relevant features of Enzyme, and let users explore nice abstractions on top if it, via crates. Since we don't have those nightly users yet, users haven't had time to build nicer abstractions on top of it. I also feel like a more guided book would be a better first introduction to Enzyme, but for now I just focused on the list of features. r? @oli-obk
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Apr 7, 2026
…i-obk Add more info about where autodiff can be applied It's taken quite a few years, but we finally have a PR open to distribute Enzyme: rust-lang#154754 I therefore went over the docs once more and noticed we don't explain a lot of the most basic features, which we added over the years and have since taken for granted. @Sa4dUs, do you think there are more interesting cases that we are missing? Generally, there's still a lot of complexity in it, especially for people who haven't used Enzyme before. To some extent, that's just a result of my general design goal to expose all performance-relevant features of Enzyme, and let users explore nice abstractions on top if it, via crates. Since we don't have those nightly users yet, users haven't had time to build nicer abstractions on top of it. I also feel like a more guided book would be a better first introduction to Enzyme, but for now I just focused on the list of features. r? @oli-obk
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Apr 7, 2026
…i-obk Add more info about where autodiff can be applied It's taken quite a few years, but we finally have a PR open to distribute Enzyme: rust-lang#154754 I therefore went over the docs once more and noticed we don't explain a lot of the most basic features, which we added over the years and have since taken for granted. @Sa4dUs, do you think there are more interesting cases that we are missing? Generally, there's still a lot of complexity in it, especially for people who haven't used Enzyme before. To some extent, that's just a result of my general design goal to expose all performance-relevant features of Enzyme, and let users explore nice abstractions on top if it, via crates. Since we don't have those nightly users yet, users haven't had time to build nicer abstractions on top of it. I also feel like a more guided book would be a better first introduction to Enzyme, but for now I just focused on the list of features. r? @oli-obk
This was referenced Apr 7, 2026
rust-bors bot
pushed a commit
that referenced
this pull request
Apr 7, 2026
…uwer Rollup of 22 pull requests Successful merges: - #150965 (Fix no results when searching for == in doc) - #153999 (Remove `TaggedQueryKey::def_kind`) - #154146 (Split out the creation of `Cycle` to a new `process_cycle` function) - #154147 (Do not attempt generating DllImport for extern types) - #154812 (Update Fira Mono License Information) - #154880 (bootstrap: minor improvements to download-rustc) - #154886 (Stabilize check-cfg suggestions for symbol) - #154889 (Update wasm-component-ld to 0.5.22) - #154928 (Fix pin docs) - #154942 (delegation: generate more verbose error delegation) - #153269 (GCI: During reachability analysis don't try to evaluate the initializer of overly generic free const items) - #154506 (Migrate some tests from `tests/ui/issues` to appropriate directories) - #154673 (Use a different name for fast try builds) - #154761 (coretests: add argument order regression tests for min_by/max_by/minmax_by) - #154795 (Add more info about where autodiff can be applied) - #154808 (Post-attribute ports cleanup pt. 1) - #154825 (constify `Step for NonZero<u*>`) - #154837 (library: std: motor: use OS' process::exit in abort_internal) - #154866 (add regression test for #146514) - #154922 (c-b: Export inverse hyperbolic trigonometric functions) - #154931 (delegation(small cleanup): remove not needed PhantomData) - #154950 (library: no `cfg(target_arch)` on scalable intrinsics)
rust-timer
added a commit
that referenced
this pull request
Apr 7, 2026
Rollup merge of #154795 - ZuseZ4:autodiff-general-docs, r=oli-obk Add more info about where autodiff can be applied It's taken quite a few years, but we finally have a PR open to distribute Enzyme: #154754 I therefore went over the docs once more and noticed we don't explain a lot of the most basic features, which we added over the years and have since taken for granted. @Sa4dUs, do you think there are more interesting cases that we are missing? Generally, there's still a lot of complexity in it, especially for people who haven't used Enzyme before. To some extent, that's just a result of my general design goal to expose all performance-relevant features of Enzyme, and let users explore nice abstractions on top if it, via crates. Since we don't have those nightly users yet, users haven't had time to build nicer abstractions on top of it. I also feel like a more guided book would be a better first introduction to Enzyme, but for now I just focused on the list of features. r? @oli-obk
github-actions bot
pushed a commit
to rust-lang/rustc-dev-guide
that referenced
this pull request
Apr 8, 2026
…uwer Rollup of 22 pull requests Successful merges: - rust-lang/rust#150965 (Fix no results when searching for == in doc) - rust-lang/rust#153999 (Remove `TaggedQueryKey::def_kind`) - rust-lang/rust#154146 (Split out the creation of `Cycle` to a new `process_cycle` function) - rust-lang/rust#154147 (Do not attempt generating DllImport for extern types) - rust-lang/rust#154812 (Update Fira Mono License Information) - rust-lang/rust#154880 (bootstrap: minor improvements to download-rustc) - rust-lang/rust#154886 (Stabilize check-cfg suggestions for symbol) - rust-lang/rust#154889 (Update wasm-component-ld to 0.5.22) - rust-lang/rust#154928 (Fix pin docs) - rust-lang/rust#154942 (delegation: generate more verbose error delegation) - rust-lang/rust#153269 (GCI: During reachability analysis don't try to evaluate the initializer of overly generic free const items) - rust-lang/rust#154506 (Migrate some tests from `tests/ui/issues` to appropriate directories) - rust-lang/rust#154673 (Use a different name for fast try builds) - rust-lang/rust#154761 (coretests: add argument order regression tests for min_by/max_by/minmax_by) - rust-lang/rust#154795 (Add more info about where autodiff can be applied) - rust-lang/rust#154808 (Post-attribute ports cleanup pt. 1) - rust-lang/rust#154825 (constify `Step for NonZero<u*>`) - rust-lang/rust#154837 (library: std: motor: use OS' process::exit in abort_internal) - rust-lang/rust#154866 (add regression test for rust-lang/rust#146514) - rust-lang/rust#154922 (c-b: Export inverse hyperbolic trigonometric functions) - rust-lang/rust#154931 (delegation(small cleanup): remove not needed PhantomData) - rust-lang/rust#154950 (library: no `cfg(target_arch)` on scalable intrinsics)
github-actions bot
pushed a commit
to rust-lang/compiler-builtins
that referenced
this pull request
Apr 9, 2026
…uwer Rollup of 22 pull requests Successful merges: - rust-lang/rust#150965 (Fix no results when searching for == in doc) - rust-lang/rust#153999 (Remove `TaggedQueryKey::def_kind`) - rust-lang/rust#154146 (Split out the creation of `Cycle` to a new `process_cycle` function) - rust-lang/rust#154147 (Do not attempt generating DllImport for extern types) - rust-lang/rust#154812 (Update Fira Mono License Information) - rust-lang/rust#154880 (bootstrap: minor improvements to download-rustc) - rust-lang/rust#154886 (Stabilize check-cfg suggestions for symbol) - rust-lang/rust#154889 (Update wasm-component-ld to 0.5.22) - rust-lang/rust#154928 (Fix pin docs) - rust-lang/rust#154942 (delegation: generate more verbose error delegation) - rust-lang/rust#153269 (GCI: During reachability analysis don't try to evaluate the initializer of overly generic free const items) - rust-lang/rust#154506 (Migrate some tests from `tests/ui/issues` to appropriate directories) - rust-lang/rust#154673 (Use a different name for fast try builds) - rust-lang/rust#154761 (coretests: add argument order regression tests for min_by/max_by/minmax_by) - rust-lang/rust#154795 (Add more info about where autodiff can be applied) - rust-lang/rust#154808 (Post-attribute ports cleanup pt. 1) - rust-lang/rust#154825 (constify `Step for NonZero<u*>`) - rust-lang/rust#154837 (library: std: motor: use OS' process::exit in abort_internal) - rust-lang/rust#154866 (add regression test for rust-lang/rust#146514) - rust-lang/rust#154922 (c-b: Export inverse hyperbolic trigonometric functions) - rust-lang/rust#154931 (delegation(small cleanup): remove not needed PhantomData) - rust-lang/rust#154950 (library: no `cfg(target_arch)` on scalable intrinsics)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
It's taken quite a few years, but we finally have a PR open to distribute Enzyme: #154754
I therefore went over the docs once more and noticed we don't explain a lot of the most basic features, which we added over the years and have since taken for granted.
@Sa4dUs, do you think there are more interesting cases that we are missing?
Generally, there's still a lot of complexity in it, especially for people who haven't used Enzyme before.
To some extent, that's just a result of my general design goal to expose all performance-relevant features of Enzyme, and let users explore nice abstractions on top if it, via crates. Since we don't have those nightly users yet, users haven't had time to build nicer abstractions on top of it.
I also feel like a more guided book would be a better first introduction to Enzyme, but for now I just focused on the list of features.
r? @oli-obk