Skip to content

[ESIMD] Implement property-based gather(usm, ...) #12316

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

Conversation

v-klochkov
Copy link
Contributor

This patch also supports gather and masked-gather of any length N if it does not use L1/L2 hints of VS>1.

Additionally for gathers without L1/L2 vs VS>1 this patch replaces the calls of GenX SVM gather calls with LLVM IR
if the macro __ESIMD_GATHER_SCATTER_LLVM_IR is defined by user. If it not defined, then using masked gathers
with pass_thru operand requires DG2/PVC.

This patch also supports gather and masked-gather of any length N
if it does not use L1/L2 hints of VS>1.

Additionally for gathers without L1/L2 vs VS>1 this patch replaces
the calls of GenX SVM gather calls with LLVM IR.

Signed-off-by: Vyacheslav N Klochkov <[email protected]>
@v-klochkov v-klochkov marked this pull request as ready for review January 6, 2024 04:09
@v-klochkov v-klochkov requested a review from a team as a code owner January 6, 2024 04:09
Copy link
Contributor

github-actions bot commented Jan 8, 2024

✅ With the latest revision this PR passed the C/C++ code formatter.

Signed-off-by: Klochkov, Vyacheslav N <[email protected]>
@v-klochkov v-klochkov merged commit 3eca2d4 into intel:sycl Jan 9, 2024
@v-klochkov v-klochkov deleted the esimd_svm_gather_llvm_ir_BOTH_VARS branch January 9, 2024 20:04
v-klochkov added a commit to v-klochkov/llvm that referenced this pull request Jan 10, 2024
The previous fix (intel#12316) added usage
of llvm.masked.gather for slm_gather(). Such usage does not work with
current GPU drivers if ESIMD function is called via invoke_esimd() API.

The fix here returns the previous lowering to GenX instead of
llvm.masked.gather.
Using the lowering to llvm.masked.gather can be used if define
__ESIMD_GATHER_SCATTER_LLVM_IR macro (turned off by default).

Signed-off-by: Klochkov, Vyacheslav N <[email protected]>
v-klochkov added a commit that referenced this pull request Jan 10, 2024
)

The previous fix (#12316) added usage
of llvm.masked.gather for slm_gather(). Such usage does not work with
current GPU drivers if ESIMD function is called via invoke_simd() API.

The fix here returns the previous lowering to GenX instead of
llvm.masked.gather.
Using the lowering to llvm.masked.gather can be used if define
__ESIMD_GATHER_SCATTER_LLVM_IR macro (turned off by default).

Signed-off-by: Klochkov, Vyacheslav N <[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.

3 participants