Skip to content

[SYCL][ESIMD] Implement unified memory API - block_store slm and local accessors #11921

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

Merged
merged 10 commits into from
Nov 30, 2023

Conversation

sarnex
Copy link
Contributor

@sarnex sarnex commented Nov 16, 2023

This change implements the last piece for block_store: local accessors and SLM.

@sarnex sarnex marked this pull request as ready for review November 17, 2023 16:24
@sarnex sarnex requested a review from a team as a code owner November 17, 2023 16:24
Copy link
Contributor

@turinevgeny turinevgeny left a comment

Choose a reason for hiding this comment

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

lgtm.

Copy link
Contributor

@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.

Thank you for the fix. I finished the 1st code-review pass.

Copy link
Contributor

@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.

Mark it as 'request changes' to avoid accidental merge before fixing it.

@sarnex
Copy link
Contributor Author

sarnex commented Nov 20, 2023

@v-klochkov Thanks a lot for the review, all feedback should be addressed in the latest commit

Signed-off-by: Sarnie, Nick <[email protected]>
Signed-off-by: Sarnie, Nick <[email protected]>
Signed-off-by: Sarnie, Nick <[email protected]>
@sarnex
Copy link
Contributor Author

sarnex commented Nov 22, 2023

Sorry for force-push, rebasing after pulldown

@v-klochkov
Copy link
Contributor

Sorry for force-push, rebasing after pulldown

Why not to use git merge intel_llvm/sycl where intel_llvm points to https://github.com/intel/llvm ?
It would pull all the `pulldown' changes to your branch.

Copy link
Contributor

@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.

few nits + 1 comment regarding driver version requirement in the tests.

else
slm_block_store(LocalElemOffset, Vals);
slm_block_store<T, N>(LocalElemOffset, Vals);
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: IMO, it would be better to not pass <T, N>, which would make the test closer to what user is supposed to do and make the call less verbose and make the check stronger.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

did this for all cases besides simd_view, we need to specify there because the compiler can't autodeduce, and i double checked to make sure the template parameters are the same as existing apis, so i think this is just a simd_view thing

@sarnex
Copy link
Contributor Author

sarnex commented Nov 27, 2023

Why not to use git merge intel_llvm/sycl

For some reason I thought it would list all of the new unrelated changes in the PR making it hard to view, but looks like I am wrong and I will use merge in the future, thanks!

Signed-off-by: Sarnie, Nick <[email protected]>
Signed-off-by: Sarnie, Nick <[email protected]>
@v-klochkov
Copy link
Contributor

1 test failed. The driver version in CI looks very old.
Two extra changes may be needed:

  • add driver version check. If use isGPUDriverGE(),then that function may need some tuning. The driver version for level_zero started showing up in linux format (and the other format for open_cl)
  • Limit the amount of output in verify function by 32 lines per each failed case.

@sarnex
Copy link
Contributor Author

sarnex commented Nov 28, 2023

@v-klochkov Ah ok it's only windows. Will do both suggestions, thanks

Copy link
Contributor

@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.

Temporarily blocking to resolve the question with simd_view parameters of slm_block_store()

Signed-off-by: Sarnie, Nick <[email protected]>
Signed-off-by: Sarnie, Nick <[email protected]>
@v-klochkov v-klochkov merged commit 646ab08 into intel:sycl Nov 30, 2023
@againull
Copy link
Contributor

againull commented Dec 1, 2023

Seems that SYCL :: ESIMD/unified_memory_api/block_store_slm_acc.cpp is failing in post-commit after this PR, could you please take a look:
https://github.com/intel/llvm/actions/runs/7053606441/job/19201224909

@sarnex
Copy link
Contributor Author

sarnex commented Dec 1, 2023

Looking now

@sarnex
Copy link
Contributor Author

sarnex commented Dec 1, 2023

Fix: #12054

@againull
Copy link
Contributor

againull commented Dec 1, 2023

Fix: #12054

Thanks a lot for the quick fix!

v-klochkov pushed a commit that referenced this pull request Dec 2, 2023
…e_slm_acc.cpp (#12054)

Originally it seemed the problem was only on Windows, but it seems it
happens on Linux too, see
[here](#11921 (comment)).

I manually verified it fails consistently before this version and passes
consistently after this version.

Signed-off-by: Sarnie, Nick <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants