-
Notifications
You must be signed in to change notification settings - Fork 114
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
Use array for clUpdateMutableCommandsKHR. #1045
Conversation
Implementation change to prototype specification changes proposed in KhronosGroup/OpenCL-Docs#1041 Uses OpenCL-Docs and OpenCL-Header changes from * KhronosGroup/OpenCL-Docs#1045 * KhronosGroup/OpenCL-Headers#245
1adf2ce
to
8b0b63a
Compare
Draft of `cl_khr_command_buffer_mutable_memory_commands` based ontop of KhronosGroup#1045 which updates `clUpdateMutableCommandsKHR` to pass configs by an array rather than linked list. The goal of this extension is to be able to update the parameters to memory operation commands in a command-buffer after the command-buffer has been finalized using the `clUpdateMutableCommandsKHR` entry-point defined by `cl_khr_command_buffer_mutable_dispatch`.
Draft of `cl_khr_command_buffer_mutable_memory_commands` based ontop of KhronosGroup#1045 which updates `clUpdateMutableCommandsKHR` to pass configs by an array rather than linked list. The goal of this extension is to be able to update the parameters to memory operation commands in a command-buffer after the command-buffer has been finalized using the `clUpdateMutableCommandsKHR` entry-point defined by `cl_khr_command_buffer_mutable_dispatch`.
8b0b63a
to
c3b369c
Compare
c3b369c
to
6662265
Compare
I've rebased this change after #950 merged, however I'm still getting familiar with how the spec looks now. So changing this PR back to draft until I double check I'm happy with how everything looks. EDIT - taken this out of draft again, as I'm good with how it looks now. |
6662265
to
52f8a28
Compare
62e7b7d
to
2673582
Compare
Draft of `cl_khr_command_buffer_mutable_memory_commands` based ontop of KhronosGroup#1045 which updates `clUpdateMutableCommandsKHR` to pass configs by an array rather than linked list. The goal of this extension is to be able to update the parameters to memory operation commands in a command-buffer after the command-buffer has been finalized using the `clUpdateMutableCommandsKHR` entry-point defined by `cl_khr_command_buffer_mutable_dispatch`.
Draft of `cl_khr_command_buffer_mutable_memory_commands` based ontop of KhronosGroup#1045 which updates `clUpdateMutableCommandsKHR` to pass configs by an array rather than linked list. The goal of this extension is to be able to update the parameters to memory operation commands in a command-buffer after the command-buffer has been finalized using the `clUpdateMutableCommandsKHR` entry-point defined by `cl_khr_command_buffer_mutable_dispatch`.
Proposal to pass the update configs to `clUpdateMutableCommandsKHR` as an array, rather than pointer changed linked list. See KhronosGroup#1041 for motivation.
2673582
to
a319d88
Compare
CTS change to reflect proposed change from KhronosGroup/OpenCL-Docs#1041 Taking advantage of the extension version macros to avoid breaking existing implementations immediately. This reflects PRs: * KhronosGroup/OpenCL-Docs#1045 * KhronosGroup/OpenCL-Headers#245
CTS change to reflect proposed change from KhronosGroup/OpenCL-Docs#1041 Taking advantage of the extension version macros to avoid breaking existing implementations immediately. This reflects PRs: * KhronosGroup/OpenCL-Docs#1045 * KhronosGroup/OpenCL-Headers#245
Implementation change to prototype specification changes proposed in KhronosGroup/OpenCL-Docs#1041 Uses OpenCL changes from * KhronosGroup/OpenCL-Docs#1045 * KhronosGroup/OpenCL-Headers#245 * KhronosGroup/OpenCL-CTS#1984
Discussed in the July 9th teleconference. We set a deadline for two weeks to merge (July 23rd). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for proposing this change! Happy with the direction. I have not turned every stone and so might have missed points of detail but I suggest we prioritise aligning all components to this proposal to enable forward progress and fix any minor issues on top.
If _configs_ is non-`NULL`, then for any {cl_mutable_dispatch_config_khr_TYPE} | ||
element of the array the errors defined by {clEnqueueNDRangeKernel}, | ||
{clSetKernelExecInfo}, {clSetKernelArg}, and {clSetKernelArgSVMPointer} are | ||
returned by {clUpdateMutableCommandsKHR} if any of the struct elements are set | ||
to an invalid value. Additionally, the following errors are returned if any |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should try to improve how this is described so we make the list of errors that may be returned a bit clearer. This is not something that this PR changes so I'm prefectly fine with capturing an issue that we'd look at separately.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Creating an issue makes sense, is there any particular way you imagine the improvement looking? e.g. Being more explicit about the errors rather than referencing core API entry-points, or just making the layout of the existing information more readable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The first idea that came to mind was to categorise errors in the description of those commands such that we could refer to the categories here but I have not though enough about this to really have good input or opinions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Created issue #1209 to track this
Merging as discussed in the July 16th teleconference. |
Proposal to pass the update configs to `clUpdateMutableCommandsKHR` as an array, rather than pointer changed linked list. See KhronosGroup/OpenCL-Docs#1041 for motivation and KhronosGroup/OpenCL-Docs#1045 for OpenCL-Docs PR.
Implementation change to prototype specification changes proposed in KhronosGroup/OpenCL-Docs#1041 Uses OpenCL changes from * KhronosGroup/OpenCL-Docs#1045 * KhronosGroup/OpenCL-Headers#245 * KhronosGroup/OpenCL-CTS#1984
Implementation change to prototype specification changes proposed in KhronosGroup/OpenCL-Docs#1041 Uses OpenCL changes from * KhronosGroup/OpenCL-Docs#1045 * KhronosGroup/OpenCL-Headers#245 * KhronosGroup/OpenCL-CTS#1984
Implementation change to prototype specification changes proposed in KhronosGroup/OpenCL-Docs#1041 Uses OpenCL changes from * KhronosGroup/OpenCL-Docs#1045 * KhronosGroup/OpenCL-Headers#245 * KhronosGroup/OpenCL-CTS#1984
In OpenCL-Docs PR KhronosGroup/OpenCL-Docs#1045 the API for `cl_khr_command_buffer_mutable_dispatch` API `clUpdateMutableCommandsKHR` changed in a breaking way. When the headers update OpenCL-Headers PR KhronosGroup/OpenCL-Headers#245 the bindings will break if they are not updated to reflect this change. Bindings updated in this PR to pass to arrays of templated length to the C++ method. The underlying `.data()` pointers of these parameters can be passed through to the OpenCL API.
In OpenCL-Docs PR KhronosGroup/OpenCL-Docs#1045 the API for `cl_khr_command_buffer_mutable_dispatch` API `clUpdateMutableCommandsKHR` changed in a breaking way. When the headers update OpenCL-Headers PR KhronosGroup/OpenCL-Headers#245 the bindings will break if they are not updated to reflect this change. Bindings updated in this PR to pass to arrays of templated length to the C++ method. The underlying `.data()` pointers of these parameters can be passed through to the OpenCL API.
CTS change to reflect proposed change from KhronosGroup/OpenCL-Docs#1041 Taking advantage of the extension version macros to avoid breaking existing implementations immediately. This reflects PRs: * KhronosGroup/OpenCL-Docs#1045 * KhronosGroup/OpenCL-Headers#245
Proposal to pass the update configs to `clUpdateMutableCommandsKHR` as an array, rather than pointer changed linked list. See KhronosGroup/OpenCL-Docs#1041 for motivation and KhronosGroup/OpenCL-Docs#1045 for OpenCL-Docs PR.
In OpenCL-Docs PR KhronosGroup/OpenCL-Docs#1045 the API for `cl_khr_command_buffer_mutable_dispatch` API `clUpdateMutableCommandsKHR` changed in a breaking way. When the headers update OpenCL-Headers PR KhronosGroup/OpenCL-Headers#245 the bindings will break if they are not updated to reflect this change. Bindings updated in this PR to pass to arrays of templated length to the C++ method. The underlying `.data()` pointers of these parameters can be passed through to the OpenCL API.
CTS changes to reflect the spec changes merged in KhronosGroup/OpenCL-Docs#1045 and requires header updates from KhronosGroup/OpenCL-Headers#245 Tested using OCK implementation from uxlfoundation/oneapi-construction-kit#501
Proposal to pass the update configs to
clUpdateMutableCommandsKHR
as an array, rather than pointer chained linked list.See #1041 for motivation.