Skip to content

[ESIMD] Fix atomic_update() implementation for N=16 and N=32 on Gen12 #12722

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 1 commit into from
Feb 15, 2024

Conversation

v-klochkov
Copy link
Contributor

@v-klochkov v-klochkov commented Feb 15, 2024

atomic_update() for USM and ACC N=16,32 were lowered to SVM/DWORD atomic
intrinsics even though the HW instructions on Gen12 supported only
N up to 8 for USM and up to 16 for ACC.

GPU had legalization pass for N that split longer vectors to smaller and available in HW.
That GPU optimization/legalization workes incorrectly for USM as it
splits longer vectors assuming instruction is available for N=16 in case
of USM, which is not correct.

The patch here implements splitting of N=16 and N=32 cases for
atomic_update(usm, ...) to N=8 vectors until GPU fixes the legalization
for USM atomic_update.

atomic_update() for USM and ACC were lowered to SVM/DWORD atomic
intrinsics even though the HW instructions on Gen12 supported only
N up to 8 for USM and up to 16 for ACC.

GPU had legalization pass for N that split longer vectors to smaller and available in HW.
That GPU optimization/legalization workes incorrectly for USM as it
splits longer vectors assuming instruction is available for N=16 in case
of USM, which is not correct.

The patch here implements splitting of N=16 and N=32 cases for
atomic_update(usm, ...) to N=8 vectors until GPU fixes the legalization
for USM atomic_update.

Signed-off-by: Klochkov, Vyacheslav N <[email protected]>
@v-klochkov v-klochkov force-pushed the esimd_fix_atomic_update_gen12 branch from 9c3515a to 732d63e Compare February 15, 2024 15:58
@v-klochkov v-klochkov marked this pull request as ready for review February 15, 2024 18:34
@v-klochkov v-klochkov requested a review from a team as a code owner February 15, 2024 18:34
@v-klochkov v-klochkov requested a review from fineg74 February 15, 2024 18:35
@v-klochkov v-klochkov merged commit 44a74d0 into intel:sycl Feb 15, 2024
@v-klochkov v-klochkov deleted the esimd_fix_atomic_update_gen12 branch February 16, 2024 16:44
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.

2 participants