Skip to content

Conversation

@ZuseZ4
Copy link
Member

@ZuseZ4 ZuseZ4 commented Nov 20, 2025

One of my last steps in order to prepare autodiff on nightly was to upstream those benchmarks into r-l/r,
since they can now be part of our CI runs. Those are the only 5 real-world testcases of a relevant size which we have, and we ran into a lot of enzyme bugs with them in the past (and depending on the config still do).
I think they are good to have around to learn about both Enzyme regressions and improvements.
If any of them fails after an llvm or rustc update, people can simply disable the specific one.

I have a safe and unsafe (ptr based) implementation for each, since they have quite a perf difference between them (unsafe usually being slower). They also can trigger quite different bugs in Enzyme.
For the same reason I'd love to also have a version around which uses libm instead of the rust builtin function, since the libm version gets vectorized better in some of these benchmarks, which again triggered different bugs in the past.

rust-lang/rust-project-goals#109 (comment)

r? @oli-obk

Edit: I probably want to change the folder structure, so that we have all the lib.rs on a higher level, so x.py test only runs them, and ignores the other dependent files. I'll look into it.

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 20, 2025
@rustbot
Copy link
Collaborator

rustbot commented Nov 20, 2025

oli-obk is not on the review rotation at the moment.
They may take a while to respond.

@rust-log-analyzer
Copy link
Collaborator

The job aarch64-gnu-llvm-20-2 failed! Check out the build log: (web) (plain enhanced) (plain)

Click to see the possible cause of the failure (guessed by this bot)
fmt: checked 6550 files
tidy check
tidy [rustdoc_json (src)]: `rustdoc-json-types` modified, checking format version
tidy: Skipping binary file check, read-only filesystem
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/unsf.rs:38: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/unsf.rs:39: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/unsf.rs:54: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/unsf.rs:56: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/unsf.rs:78: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/unsf.rs: too many trailing newlines (2)
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/lib.rs:36: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/lib.rs:54: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/lib.rs:87: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/lib.rs:88: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/lib.rs:91: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/lib.rs:92: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/safe.rs:40: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/safe.rs:41: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/safe.rs:56: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/safe.rs:58: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ode-real/src/safe.rs: too many trailing newlines (2)
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/unsf.rs:28: TODO is used for tasks that should be done before merging a PR; If you want to leave a message in the codebase use FIXME
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/unsf.rs:35: tab character
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/unsf.rs:43: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/unsf.rs:44: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/unsf.rs:84: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/unsf.rs:85: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/lib.rs:15: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/lib.rs:22: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/lib.rs:39: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/lib.rs:43: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/lib.rs:46: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/lstm/src/lib.rs:60: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/ba/src/lib.rs: too many trailing newlines (2)
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:21: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:25: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:29: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:36: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:37: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:52: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:62: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:118: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:121: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:125: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:130: line longer than 100 chars
tidy [style (tests)]: /checkout/tests/ui/autodiff/adbench/gmm/src/unsafe.rs:131: line longer than 100 chars
tidy [style (tests)]: FAIL
tidy: The following check failed: style (tests)
Bootstrap failed while executing `--stage 2 test --skip tests --skip coverage-map --skip coverage-run --skip library --skip tidyselftest`
Command `/checkout/obj/build/aarch64-unknown-linux-gnu/stage1-tools-bin/rust-tidy /checkout /checkout/obj/build/aarch64-unknown-linux-gnu/stage0/bin/cargo /checkout/obj/build 4 yarn` failed with exit code 1
Created at: src/bootstrap/src/core/build_steps/tool.rs:1594:23
Executed at: src/bootstrap/src/core/build_steps/test.rs:1285:29

Command has failed. Rerun with -v to see more details.
Build completed unsuccessfully in 0:00:49
  local time: Thu Nov 20 07:42:36 UTC 2025
  network time: Thu, 20 Nov 2025 07:42:37 GMT
##[error]Process completed with exit code 1.
##[group]Run echo "disk usage:"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants