-
Notifications
You must be signed in to change notification settings - Fork 788
[SYCL][ESIMD] Add new raw_send APIs moving compile time params to template params #10167
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
Conversation
I'll be on vacation until July 26th, I'll address any feedback then. Thanks! |
I suggest using a simpler approach that does not require adding new _esimd* internal intrinsics. template <uint32_t SLMSize> __ESIMD_API void slm_init() {
__esimd_slm_init(SLMSize);
} |
Good idea, I didn't consider using template params into arguments to the intrinsic that accepts runtime params, thanks, let me try! |
… template arguments The arguments moved from runtime params to template params need to be compile time constant. Often they end up as compile time constant after constant folding, but not in all cases such as -O0, which will lead to an IGC error. Add new APIs to enforce this requirement. I also updated three LSC APIs to use the new version, but these were already passing in constexpr arguments. Signed-off-by: Sarnie, Nick <[email protected]>
Signed-off-by: Sarnie, Nick <[email protected]>
BTW I manually verified the issue is fixed with the latest version of this change if you use the new API. |
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.
LGTM, a small nit.
Signed-off-by: Sarnie, Nick <[email protected]>
…plate params (intel#10167) The arguments moved from runtime params to template params need to be compile time constant. Often they end up as compile time constant after constant folding, but not in all cases such as -O0, and if they are not constant it will lead to an IGC error. Add new APIs to enforce this requirement. I also updated three LSC APIs to use the new version, but these were already passing in constexpr arguments. --------- Signed-off-by: Sarnie, Nick <[email protected]>
The arguments moved from runtime params to template params need to be compile time constant.
Often they end up as compile time constant after constant folding, but not in all cases such as -O0, and if they are not constant it will lead to an IGC error.
Add new APIs to enforce this requirement.
I also updated three LSC APIs to use the new version, but these were already passing in constexpr arguments.