-
Notifications
You must be signed in to change notification settings - Fork 12.9k
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
Autodiff Upstreaming - enzyme backend #129176
Conversation
rustbot has assigned @albertlarsan68. Use |
|
This comment has been minimized.
This comment has been minimized.
Use HTTPS instead of SSH authentication for the git repo, then it should work. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
You should probably add an ignore for the |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This PR changes how LLVM is built. Consider updating src/bootstrap/download-ci-llvm-stamp. This PR modifies If appropriate, please update |
Thank you two for already having looked at it. CI passes now, how would we continue? We probably only want to configure the llvm_enzyme flag as enabled for nightly builds shipped to users once all the other code including tests are moved over to rustc. So from my side, I would be fine with squashing and merging this and putting up the next PR which would include our autodiff rustc_builtin_macro. The frontend is pretty lightweight to build, so we could already enable it by default and just error out in the middle-end, similar to how f128 did it (still do it?). |
This PR modifies If appropriate, please update |
There are merge commits (commits with multiple parents) in your changes. We have a no merge policy so these commits will need to be removed for this pull request to be merged. You can start a rebase with the following commands:
The following commits are merge commits: |
I guess I shouldn't use the GUI here to resolve merge conflicts, lesson learned. |
@bors rollup=never |
Co-authored-by: Lorenz Schmidt <bytesnake@mailbox.org>
14e8f45
to
4f5c16d
Compare
@bors r=albertlarsan68 p=1 (This seems likely to attract conflicts. The latest push was due to such a conflict developing while in queue.) |
…san68 Autodiff Upstreaming - enzyme backend Tracking issue: rust-lang#124509 Part of rust-lang#129175 This PR should allow building Enzyme from source on Tier 1 targets (when also building LLVM), except MSVC. It's only a small fraction (~200 lines) of the whole upstream PR, but due to bootstrapping and the number of configurations in which rustc can be build I assume that this will be the hardest to merge, so I'm starting with it. Happy to hear what changes are required to be able to upstream this code. **Content:** It contains a new configure flag `--enable-llvm-enzyme`, and will build the new Enzyme submodule when it is set. **Discussion:** Apparently Rust CI isn't able to clone repositories outside the rust-lang org? At least I'm seeing this error in CI: ``` git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ``` Does that mean we would need to mirror github.com/EnzymeAD/Enzyme in rust-lang, until LLVM upgrades Enzyme from an Incubator project to something that ships as part of the monorepo? Tracking: - rust-lang#124509
The job Click to see the possible cause of the failure (guessed by this bot)
|
💔 Test failed - checks-actions |
☀️ Test successful - checks-actions |
Finished benchmarking commit (59d4114): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)Results (primary 2.2%, secondary -2.4%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResults (secondary 2.7%)This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 754.927s -> 756.647s (0.23%) |
Tracking issue: #124509
Part of #129175
This PR should allow building Enzyme from source on Tier 1 targets (when also building LLVM), except MSVC.
It's only a small fraction (~200 lines) of the whole upstream PR, but due to bootstrapping and the number of configurations in which rustc can be build I assume that this will be the hardest to merge, so I'm starting with it.
Happy to hear what changes are required to be able to upstream this code.
Content:
It contains a new configure flag
--enable-llvm-enzyme
, and will build the new Enzyme submodule when it is set.Discussion:
Apparently Rust CI isn't able to clone repositories outside the rust-lang org? At least I'm seeing this error in CI:
Does that mean we would need to mirror github.com/EnzymeAD/Enzyme in rust-lang, until LLVM upgrades Enzyme from an Incubator project to something that ships as part of the monorepo?
Tracking: