-
Notifications
You must be signed in to change notification settings - Fork 151
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
compute-runtime builds fail to "ocloc" LLVM (v10) cli options usage error #202
Comments
Same problem with the new "21.27.20266" release. |
Have you build IGC with system llvm, or with llvm sources? |
It's system LLVM from Ubuntu. |
What about opencl-clang and SPIRV-LLVM-Translator? Have you built them or used from the system? |
Those are also from the system. |
Same problem also with latest IGC (igc-1.0.8517) and compute-runtime (21.34.20767). Compute-runtime (still) does not build with LLVM v10 (in Ubuntu 20.10) any more: but it does build with LLVM v11 (in Ubuntu 21.04): (Using |
This is not Neo problem, but how opencl-clang library was compiled on Ubuntu, and I suppose the same is on FreeBSD. To workaround this issue you need to recompile opencl-clang and llvm-spriv-translator with llvm sources using In-tree method. You don't have to recompile IGC after opencl-clang/llvm-spirv-translator build. |
Any idea why it worked earlier with the same Ubuntu (20.10) version of LLVM v10, and still works with Ubuntu (21.04) LLVM v11? |
As the issue is on compiler side, transferring it to IGC project. |
With LLVM sources? But the whole point of this bug is using system libraries, to avoid compiling the world (faster builds, smaller binaries and memory usage when multiple things share the same libs, easier security updates etc). Bugs for other projects with similar issues seem to be because they link multiple versions of LLVM, either different versions, or both dynamic & static versions. In my case there's only single LLVM version installed in the build container, but the LLVM dev packages brings in both dynamic & static libraries. @JacekDanecki Are you saying that when being requested to use system versions of libraries, IGC / compute-runtime choose to use static libraries, whereas Debian/Ubuntu packages use dynamic libraries? If yes, how things then work with Ubuntu (21.04) LLVM v11? Nothing in that respect should have changed, new Debian/Unbuntu packages have just dropped their last patches for these projects:
Or if you just mean that newer versions of opencl-clang & llvm spriv lib are needed, then that's compute-runtime bug of not checking versions of its dependencies... |
Compute runtime doesn't use llvm directly, it loads IGC libraries. This is why I've moved this issue to IGC project. |
This is an issue in LLVM 10. It is fixed in LLVM 11 by https://reviews.llvm.org/D75579 opencl-clang and IGC libraries link to both libclang-cpp.so.10 and libLLVM-10.so.1, thus there is double registration of "mc-relax-all" Cherry-picking it to llvm-10 requires cherry-picking https://reviews.llvm.org/D68063 as well and solving a couple of merge conflicts. After these changes, the error is gone and compute-runtime/build/bin/built_ins/x64/gen12lp/bindful_copy_buffer_rect_Gen12LPlp.spv is successfully generated. |
I'm closing this one as it was identified as external issue. |
IMHO CMake could check that LLVM is supported version i.e. explicitly reject too old (or new) versions. And Top level README.md could point out the LLVM support info, e.g. in the Depenencies section, like this:
|
compute-runtime "21.26.20194" release build fails to incorrect LLVM (v10) CLI options usage:
In case it matters, this build happens in Ubuntu 20.10 container with latest IGC release "igc-1.0.7862" built using LLVM v10 just before it (which requires workaround for #186 bug).
Here's more of the output before that error:
The text was updated successfully, but these errors were encountered: