Enable autodiff in ci for all major os#152768
Conversation
|
|
|
@bors try jobs=dist-aarch64-apple |
This comment has been minimized.
This comment has been minimized.
Enable autodiff in ci for all major os try-job: dist-aarch64-apple
|
@bors try jobs=dist-x86_64-linux |
This comment has been minimized.
This comment has been minimized.
Enable autodiff in ci for all major os try-job: dist-x86_64-linux
|
@bors try jobs=dist-aarch64-linux |
This comment has been minimized.
This comment has been minimized.
Enable autodiff in ci for all major os try-job: dist-aarch64-linux
|
@bors try jobs=dist-aarch64-llvm-mingw |
This comment has been minimized.
This comment has been minimized.
Enable autodiff in ci for all major os try-job: dist-aarch64-llvm-mingw
|
💔 Test for ea4964d failed: CI. Failed job:
|
This comment has been minimized.
This comment has been minimized.
e926590 to
cc1935a
Compare
This comment has been minimized.
This comment has been minimized.
Enable autodiff in ci for all major os try-job: dist-aarch64-linux try-job: dist-aarch64-apple try-job: dist-x86_64-linux try-job: dist-aarch64-llvm-mingw
This comment has been minimized.
This comment has been minimized.
|
💔 Test for 033f25a failed: CI. Failed job:
|
|
Yeah, dist-x86_64-linux requires using lld, whereas dist-aarch64-apple will not recognize the lld setting because it calls cc, not clang. We should gate the |
Shouldn't GCC also support So is it even possible to link Enzyme without LLD? What is the problematic situation, Clang + BFD? Or Clang + old BFD? |
|
You can generally build enzyme without lld. I can't reproduce these issues locally, and I can't download the temp CI artifacts from those failed runs, so I don't really know. Maybe you get more from these logs than I? https://github.com/rust-lang/rust/actions/runs/22168431338/job/64100800611 What we see is that we have clang on that linux builder, together with The llm of my choice guessed that " I didn't test thin-lto myself but it sounds somewhat sensible? And overwriting gnu ld with lld via the flag also worked. Wrt. to whether gcc wouldn't handle the flag, are you sure that cc here resolves to gcc? From the apple build failure it looks more like an issue with Apple's clang fork, which based on quick google search seems to bring their own ld64 linker: |
|
Right, LLD definitely shouldn't be used on Apple, that's for sure. The LTO explanation makes sense, that is indeed the problem, if I recall correctly. Though we must have the same issue while building LLVM, right? Did you check the LLVM bootstrap step if it does something to work around that? If yes, then ideally just copy that. If you can't find it, then I'd gate LLD on being on Linux +Thin LTO being enabled in the build. We could also detect Clang, bootstrap already does that else where, but I'm pretty sure that LLVM/LLD LTO won't work with GCC anyway, so probably it's not even needed. |
I guess the main problem is that now that we build Enzyme as its own dist component, the sensible defaults from the main bootstrap build aren't applied anymore, so I'm rediscovering them. I'll use that for Enzyme. Ah, we raced. |
|
I guess we could extract some shared logic that makes sense for both LLVM and LLD into a separate function and use it both in |
|
I am not sure that will be picked up by Enzyme, but it's late and worth a try: @bors try jobs=dist-aarch64-linux,dist-aarch64-apple,dist-x86_64-linux,dist-aarch64-llvm-mingw |
This comment has been minimized.
This comment has been minimized.
Enable autodiff in ci for all major os try-job: dist-aarch64-linux try-job: dist-aarch64-apple try-job: dist-x86_64-linux try-job: dist-aarch64-llvm-mingw
|
💔 Test for 5d94862 failed: CI. Failed job:
|
This comment has been minimized.
This comment has been minimized.
|
@bors try jobs=dist-aarch64-linux,dist-aarch64-apple,dist-x86_64-linux,dist-aarch64-llvm-mingw |
This comment has been minimized.
This comment has been minimized.
Enable autodiff in ci for all major os try-job: dist-aarch64-linux try-job: dist-aarch64-apple try-job: dist-x86_64-linux try-job: dist-aarch64-llvm-mingw
|
@bors try jobs=dist-x86_64-llvm-mingw |
Enable autodiff in ci for all major os try-job: dist-x86_64-llvm-mingw
This comment has been minimized.
This comment has been minimized.
f40ed62 to
94590e6
Compare
…todiff in CI for it Co-authored-by: sgasho <SuganoShota1999@gmail.com>
94590e6 to
c033de9
Compare
That's already shared between llvm and lld. Enzyme ignores these I don't think we can nicely share it between all three, llvm+lld+enzyme. I tried all 5 targets and they build fine. |
View all comments
Follow-up attempt to #140064 after moving autodiff to dlopen.
It covers Linux (x86_64+aarch64), MacOS (aarch64), Windows (mingw-llvm aarch64+x86_64)
The follow-up distribution via rustup probably still needs a small fix, see #151063 (comment)
r? @Kobzol
closes #151243
closes #151063