-
Notifications
You must be signed in to change notification settings - Fork 27
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
Out-of-order queue support not reported #422
Comments
Thanks for raising this.
We enable CA_ENABLE_OUT_OF_ORDER_EXEC_MODE because DPC++ has an issue with temporary queues that do not get deleted, but only on implementations that do not support out-of-order execution (where DPC++ creates temporary queues to emulate out-of-order execution). Turning off CA_ENABLE_OUT_OF_ORDER_EXEC_MODE is available as a debugging option when needed, but will break other things. We are currently passing OpenCL CTS. Is this a conformance issue that is not covered by the CTS? If so, we may also want to raise a ticket there. |
You're right this should be in the CTS, I've opened a PR to add this coverage KhronosGroup/OpenCL-CTS#1935 |
Fixed by #425, thanks, and have confirmed that this passes CTS with your PR applied. |
Thanks 👍 |
Version
git commit b7afa18
What behaviour are you expecting?
It looks like the
CA_ENABLE_OUT_OF_ORDER_EXEC_MODE
CMake variable which is set to ON by default enablesCL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
to be set on queue creation.However, neither
CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
fromCL_DEVICE_QUEUE_PROPERTIES
orCL_COMMAND_BUFFER_CAPABILITY_OUT_OF_ORDER_KHR
fromCL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR
are being returned from the appropriate queries to report device support. I would expect this to be the case for a conformant OpenCL implementation that supports out-of-order queues.I'd also expect
clCreateCommandQueueWithProperties
&clCreateCommandQueue
to return the following specific returned code whenCL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
is asked for but the device doesn't report support. However, the device currently accepts the queue property, which is confusing.What actual behaviour are you seeing?
Neither
CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
fromCL_DEVICE_QUEUE_PROPERTIES
orCL_COMMAND_BUFFER_CAPABILITY_OUT_OF_ORDER_KHR
fromCL_DEVICE_COMMAND_BUFFER_CAPABILITIES_KHR
are being returned from the appropriate device queries butCL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
is accepted as a property on command-queue creation.What steps are required to reproduce the bug?
./bin/UnitCL --opencl_info
ShowsCL_DEVICE_QUEUE_PROPERTIES : CL_QUEUE_PROFILING_ENABLE
when the outcome of that query should haveCL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE
in it.Minimal test case
No response
Anything else we should know?
Should consider setting
CA_ENABLE_OUT_OF_ORDER_EXEC_MODE
to OFF by default until its behaviour can be conformant.The text was updated successfully, but these errors were encountered: