-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Build error: '__nvvm_bar_warp_sync' needs target feature ptx60|ptx61|ptx63|ptx64|ptx65|ptx70|ptx71|ptx72|ptx73|ptx74|ptx75 #55446
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
Comments
@jhuber6 I think one of your changes of today might be the culprit. I also saw newer committs right now on the main branch and while I don't see the reported build issue any longer, I see these warnings:
|
Plus the following warning which might be related to your changes:
|
Yes that was me, I forgot that we default to an extremely old PTX version if it wasn't detected on the user's system, so I had to add a way to manually set it. I'm not sure why you're getting those errors however, I don't see them on my build.
This is an existing warning that was exposed by my patch, previously we just built this stuff invoking the clang front-end manually, which didn't use any of the standard warning flags in CMake. I should be able to fix it. |
Sorry, I still see a build failure later on, but another one:
|
By the way, I don't build the PTX target all (and would like to avoid doing so to save compilation time):
|
We only support compiling this library with the same version of Clang that will be using it. I'm guessing that command line argument is just being ignore because I just added it. Can you verify that you're using the newest possible clang to compile the library?
This doesn't use any backends, it's a bitcode library. I think this used to be configured by something else. Are the compile times costing you a lot? They're relatively quick for me. |
@llvm/issue-subscribers-openmp |
I'd prefer not to build any additional code which my system doesn't use due to lack of that hardware. Compiling LLVM/Clang main ToT with the system's default LLVM/Clang-13.0.1 seems to compile fine but spams the log with:
|
It only looks like it's working, |
Hm, as I need OpenMP but not PTX/CUDA, I used to configure my build like this to get OpenMP: This is also used by some distribution packages, hence your configuration advice is new to me. Is your way the only supported way forward? Thanks for your help. |
You'll probably be fine if you only need So I would just suggest doing what you have now but like |
As adviced in llvm/llvm-project#55446 (comment) due to new found errors, OpenMP is no longer built via "-D LLVM_ENABLE_PROJECTS=openmp" but with "-DLLVM_ENABLE_RUNTIMES=openmp".
As I am a layman, I just want to clarify this a bit more. The link you provided is talking about a GPU offload-capable compiler, as I am just a casual user who doesn't need such a GPU-offload capable compiler, I wonder if my old build method is still viable going forward. The goal of my LLVM/Clang build is to get a minimalistic compiler setup for compiling some Arch Linux packages with custom CFLAGS, hence I hope that OpenMP doesn't gain a hidden dependency on that GPU-offload functionality (with the consequence to invest that additional compilation time and specific build method). Or is this now the case? Or was it before, and my method was wrong to begin with? As I just followed what distribution packages did here, I lack the insights to what is prefered or why one method is better than the other. |
I would say the OpenMP project is a runtime so it should ideally be built using the I've been overhauling the entire build system for offloading recently and it has the effect of breaking some stuff. Does this answer your question? Let me know if you can build successfully using the runtimes approach, it should work. If you can get to build I'll close the issue. |
Building succeeded with the suggested After each Linux installation I usually built a new LLVM/Clang package with the system default's LLVM/Clang for the first time, I hope that remains somewhat supported with the |
It should be, as long as the system compiler is new enough to build LLVM itself. The runtime build will first build clang and all the targets. Then it will use the newly build clang to build the OpenMP runtime. If you're just using the host capabilities, you shouldn't need |
Thanks for your answers, I've added -DENABLE_LIBOMPTARGET=OFF to my personal configuration as I don't need the GPU offload capability and building with an older Clang is important on each new distribution install. As promised I was just testing the old method and it worked until I hit a system crash during the build process, but that should be unrelated to LLVM/Clang itself, hence I will close this issue for now. |
As of today I see the following build regression:
This is followed by a lot of errors like:
llvm-project/openmp/libomptarget/DeviceRTL/src/Synchronization.cpp:254:46: error: '__nvvm_bar_warp_sync' needs target feature ptx60|ptx61|ptx63|ptx64|ptx65|ptx70|ptx71|ptx72|ptx73|ptx74|ptx75
My LLVM-config is attached and I had no problems with that config until today:
PKGBUILD.txt
The text was updated successfully, but these errors were encountered: