[SYCLomatic] Block Store headers core#1819
[SYCLomatic] Block Store headers core#1819abhilash1910 wants to merge 27 commits intooneapi-src:SYCLomaticfrom
Conversation
|
@danhoeflinger @mmichel11 requesting review when available. Thanks. |
|
|
||
| }; | ||
|
|
||
| /// Stores a blocked arrangement of work items linear segment of items. |
There was a problem hiding this comment.
I'd like to have a more detail comments like
SYCLomatic/clang/runtime/dpct-rt/include/dpct/sparse_utils.hpp
Lines 278 to 306 in b2e5588
|
Please create a testing PR and link it in the description. Doing this earlier in the process as compared to load will help make this review progress more smoothly. |
|
Linking test PR : oneapi-src/SYCLomatic-test#680 WIP. |
| // storage | ||
| size_t linear_tid = item.get_local_linear_id(); | ||
| OutputIteratorT workitem_itr = block_itr + linear_tid; | ||
| size_t GROUP_WORK_ITEMS = item.get_global_range().size(); |
There was a problem hiding this comment.
get_global_range returns the global dimensions of the kernel, so when launching more than a single work-group this will be incorrect.
We can switch this to what we did in group load: size_t group_work_items = item.get_local_range().size();
There was a problem hiding this comment.
I'd recommend making sure we have testing coverage for such a case as well.
There was a problem hiding this comment.
Yes local range should be used, all the tests are currently in 1 wg . Will extend tests for other wg sizes in a separate PR. thanks.
| store_subgroup_striped(const Item &item, OutputIteratorT block_itr, | ||
| InputT (&items)[ITEMS_PER_WORK_ITEM]) { | ||
|
|
||
| // This implementation does not take in account range loading across |
There was a problem hiding this comment.
Can you describe what you mean by "range loading" means in this context?
There was a problem hiding this comment.
Range loading/storing refers to loading/storing within bounded intervals across the warps. Not in the full scope .
Co-authored-by: Dan Hoeflinger <109972525+danhoeflinger@users.noreply.github.com>
| /// Stores a subgroup-striped arrangement of work items linear segment of items. | ||
| // Created as free function until exchange mechanism is | ||
| // implemented. | ||
| // To-do: inline this function with BLOCK_STORE_WARP_TRANSPOSE mechanism |
There was a problem hiding this comment.
I'm not sure what this comment means exactly. But also, lets use our own terminology here.
Co-authored-by: Dan Hoeflinger <109972525+danhoeflinger@users.noreply.github.com>
|
Closed as implemented. |
PR for Store header functions for Block API (related later to #1305 )
Linked with Load: #1640
cc @yihanwg @danhoeflinger @mmichel11