-
Notifications
You must be signed in to change notification settings - Fork 131
[SYCL] Updated atomic_memory_order_capabilities query test for OpenCL 3.0 backend #1627
base: intel
Are you sure you want to change the base?
[SYCL] Updated atomic_memory_order_capabilities query test for OpenCL 3.0 backend #1627
Conversation
Both context and device should return at least memory_order::relaxed now on implementation-side, so this test should pass if the target device has an OpenCL 3.0 backend or newer.
/verify with intel/llvm#8517 |
Need to adjust figures in acq_rel test to reduce work-group size so test can be used with all backends and devices.
One final question to clarify something: The acq_rel test, as it stands (I've not modified the functionality, just added the level-zero and OpenCl backends to check) will fail if the target OCL backend implementation is <2.0 but should work otherwise. I've asked around and there doesn't yet seem to be a way to test or filter out certain OpenCL versions, but don't want to leave it untested for relevant/newer implementations. Is it fine to merge as it stands? Would it affect the CI? I'm not sure what version of OpenCL the runners use. |
…8517) This patch implements the `atomic_memory_order_capabilities` query in the OpenCL and Level Zero backends/plugins for `device` and `context` Specifically: - OpenCL <2.0 returns the minimum required capability set (`relaxed`) defined in [Section 4.2 of the OpenCL 3.0 specification](https://registry.khronos.org/OpenCL/specs/3.0-unified/html/OpenCL_API.html#CL_DEVICE_ATOMIC_MEMORY_CAPABILITIES). - OpenCL <3.0 and Level Zero backends return all memory order capabilities. - OpenCL >=3.0 queries the actual device to get the supported memory order capabilities. E2E test have also been updated to reflect these changes: intel/llvm-test-suite#1627
Passes on cpu, fails on GPU, so I think a problem exists with the GPU driver implementation, maybe specifically with fetch_add.
…thub.com/andylshort/llvm-test-suite into alamzeds/atomic_mem_orders_caps_fix_test
I've reduced the work group size for the |
Both
context
anddevice
should return at leastmemory_order::relaxed
now on implementation-side in intel/llvm#8517, so this test should pass if the target device has an OpenCL 3.0 backend or newer.Remaining work/discussions required:
atomic_memory_order_acq_rel.cpp
andatomic_memory_order_seq_cst.cpp
require updating once the query fully supports the rest of the possible values, also.