-
Notifications
You must be signed in to change notification settings - Fork 730
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
example fails to execute on amd gpu #1059
Comments
SYCL runtime library supports in-order queues as well. |
@bader thanks for the fast response. I am actually using more less the example.
|
I don't see why this code can't be executed on non-Intel GPU. #17 0x00007fcb3a3b0028 aclCompile (libamdocl-orca64.so + 0x149c028)
#18 0x00007fcb39a06743 n/a (libamdocl-orca64.so + 0xaf2743)
#19 0x00007fcb39a08d8f n/a (libamdocl-orca64.so + 0xaf4d8f)
#20 0x00007fcb399f1998 n/a (libamdocl-orca64.so + 0xadd998)
#21 0x00007fcb399dea52 clLinkProgram (libamdocl-orca64.so + 0xacaa52) It seems like OpenCL implementation failed to compile device code. You can get device code in LLVM IR or SPIR-V from from the source code using this instructions: |
Well thanks for the fast response. I tried to investigate but didn't come further with the libamdocl... However i tried on a different machine with a gtx 1050 card.
|
This is expected. Our compiler produces binary, which relies on OpenCL driver to support SPIR-V format of device code. AFAIK, NVIDIA OpenCL doesn't support SPIR-V, |
Ok. Thanks for all the help! I could contribute to the "getting started" md with some hints on how to find out if one's card is supported and maybe add some logic to the selector.
with clear instructions on the fact that it needs to support spir-v might already save some users time. Anyhow I'm glad a big name took over on open standards in GPU computing! |
We have a few words about supported device in our FAQ document: https://github.com/intel/llvm/blob/sycl/sycl/doc/FAQ.md#q-what-devices-are-supported-by-intel-sycl-compiler. If have any ideas how we can make this information more accessible, feel free to share them via issues or open a PR.
I expected an error message from the
NOTE: |
I recently was educated that AMD OpenCL doesn't support SPIR-V, so it looks like AMD GPU require different compilation workflow. The one we use Intel devices requires SPIR-V support. |
@hiaselhans I don't see it in this thread, but if you are not already aware, you should be able to use https://github.com/illuhad/hipSYCL to compile SYCL programs on AMD GPUs that support HIP. Unfortunately, HIP support for AMD GPUs is not as widespread as one would hope (https://github.com/RadeonOpenCompute/ROCm#Hardware-and-Software-Support) but if you are so lucky as to be using the right Linux distro and AMD GPU architecture to get HIP support, hipSYCL will serve you well. If your AMD GPU doesn't support HIP, then I guess you'll have to communicate with the vendor. Right now, DPC++ is ahead of hipSYCL w.r.t. SYCL 2020 features, so if you want to use e.g. USM, you'll have to wait a bit, but probably not too long. @illuhad might have more to say here. |
@hiaselhans To my knowledge, no AMD OpenCL driver stack supports SPIR-V. You will not be able to use DPC++ on those devices. SYCL 2020 in hipSYCL is indeed not yet as far as DPC++, but USM and all those fancy other SYCL 2020 will come sooner than later to hipSYCL. However, unless you have specific needs such as device memory oversubscription, complex pointer-based data structures or integration with existing pointer-based code I would generally recommend to stick with accessors and buffers instead of USM for performance and portability reasons anyway. |
yes, sorry i forgot this issue was still open. I'm using unnamed kernel functions and have a CUDA card now... |
Even with ROCm you don't get SPIR-V.
current hipSYCL supports unnamed kernel lambdas when using clang >= 10. |
I couldn't get this to run with my amd-gpu.
One thing i noted was that sycl supports out-of-order queue devices only.
So i wonder, could we provide a compatibility matrix for non-intel-gpu-users? and also provide a check for CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE in the example?
below is my stack-trace.
The text was updated successfully, but these errors were encountered: