Skip to content
This repository was archived by the owner on Mar 28, 2023. It is now read-only.

[ESIMD] E2E test for slm_allocator API. #1449

Merged
merged 8 commits into from
Jan 1, 2023

Conversation

kbobrovs
Copy link

Complementary patch for intel/llvm#7759.
Signed-off-by: Konstantin S Bobrovsky [email protected]

Signed-off-by: Konstantin S Bobrovsky <[email protected]>
Copy link

@v-klochkov v-klochkov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see 2 non-blocking comments.

@v-klochkov
Copy link

/verify with intel/llvm#7759

@v-klochkov
Copy link

v-klochkov commented Dec 14, 2022

@kbobrovs - would you please create one more test case. Such difficult/complex changes in sycl-post-link deserve it, IMO.
The test could be:
// format: function_name(how much allocates) -->calls--> callee_function(how much allocates)
kernel(10) --> a(100) -- >b(200)
kernel(10) --> b(200);

So, b() has 2 paths to it from kernel().

@kbobrovs
Copy link
Author

@kbobrovs - would you please create one more test case. Such difficult/complex changes in sycl-post-link deserve it, IMO. The test could be: // format: function_name(how much allocates) -->calls--> callee_function(how much allocates) kernel(10) --> a(100) -- >b(200) kernel(10) --> b(200);

So, b() has 2 paths to it from kernel().

Yes, more tests will be added, including unit tests

AlexeySachkov pushed a commit to intel/llvm that referenced this pull request Dec 28, 2022
…slm_allocator. (#7759)

This patch adds new class - slm_allocator - and its lowering. This is
RAII-style class used to implement "semi-dynamic" SLM allocation. SLM is
allocated in the constructor and released in the destructor, that's why
it is "dynamic", as opposed to fully static allocation style of
'slm_init'. Actual offset of SLM chunk allocated by the call is
calculated at compile time, that's why it is "semi-". To calculate SLM
usage by a kernel, compiler finds a path in a callgraph with the largest
amount of SLM "locked" by slm_allocator objects live along the paths.
slm_init call also participates in calculating SLM budget. It can be
modelled as slm_allocator object declared at the very beginning of a
kernel and live till its the very end.

Since a call graph is used, function pointers and recursion is not
supported.
Complementary E2E test:
intel/llvm-test-suite#1449.

Signed-off-by: Konstantin S Bobrovsky <[email protected]>
dummy commit to restart testing
@kbobrovs
Copy link
Author

/verify

@v-klochkov v-klochkov merged commit adbf7ab into intel:intel Jan 1, 2023
@v-klochkov
Copy link

The failed tests: accessor.cpp and UserDefinedReductions/user_defined_reductions_wg_size_larger_than_data_size.cpp are unrelated to the 3 tests being added by this PR.
Merged.

@v-klochkov
Copy link

Thank you @kbobrovs for the changes and the test!

myler added a commit to myler/llvm-test-suite that referenced this pull request Mar 22, 2023
use default python3 instead of '/usr/bin/python3' for atsm testing
myler pushed a commit to myler/llvm-test-suite that referenced this pull request Mar 22, 2023
* [ESIMD] E2E test for slm_allocator API.

Signed-off-by: Konstantin S Bobrovsky <[email protected]>
aelovikov-intel pushed a commit to aelovikov-intel/llvm that referenced this pull request Mar 27, 2023
* [ESIMD] E2E test for slm_allocator API.

Signed-off-by: Konstantin S Bobrovsky <[email protected]>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants