Invalid SPIR-V module: Casts from private/local/global address space are allowed only to generic #1728
-
Hi!
I have installed the Intel oneAPI repository to use the OpenCL runtime for the CPU and the necessary dependencies for AdaptiveCPP:
Then I installed AdaptiveCPP as follows:
Next, I create a simple program and compile using
When I run the program, I get an error
I also tried to use I found a similar problem, but it occurred while compiling a project using DPC++. Maybe someone knows what’s going on? Does it matter that I’m using Docker? |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments
-
Hi! I don't think this is related to docker. This is a JIT compilation failure, so there's something wrong with compilation, not with kernel execution. The fact that this is in a container is unlikely to play a role here.
I'd recommend using OpenCL over L0. The OpenCL backend is much better tested, optimized and more feature-complete compared to L0. EDIT: For JIT-compilation, it needs to be able to write temporary files to disk. Is the directory in your container writable? |
Beta Was this translation helpful? Give feedback.
-
Thank you for the response! I’m reviewing the CMake logs.
I tried installing It seems that this is an issue with my packages and possibly Fedora.
EDIT: |
Beta Was this translation helpful? Give feedback.
-
No, this output refers to Please do not install your own llvm-spirv packages, as those will not have the necessary patch applied! AdaptiveCpp will look for I do not see in your cmake output that it attempts to apply the patch.
Thank you, this IR looks fine. With this IR, the behavior you are getting is consistent with what you'd get if the
Okay, thanks for confirming! |
Beta Was this translation helpful? Give feedback.
-
Correct! It turned out that the Thank you for your help! |
Beta Was this translation helpful? Give feedback.
No, this output refers to
spirv-tools
which is an unnecessary optional dependency of the llvm-spirv translator.AdaptiveCpp builds its own llvm-spirv translator during the build process. The fact that you get this output shows that AdaptiveCpp is building the llvm-spirv translator.
Please do not install your own llvm-spirv packages, as those will not have the necessary patch applied! AdaptiveCpp will look for
llvm-spirv
in its own internal directories anyway (which is to where it will install its patchedllvm-spirv
), so external packages should not make a difference anyway.I do not see in your cmake outp…