-
Notifications
You must be signed in to change notification settings - Fork 787
[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
v-klochkov
merged 4 commits into
intel:sycl
from
v-klochkov:esimd_svm_gather_llvm_ir_BOTH_VARS
Jan 9, 2024
Merged
[ESIMD] Implement property-based gather(usm, ...) #12316
v-klochkov
merged 4 commits into
intel:sycl
from
v-klochkov:esimd_svm_gather_llvm_ir_BOTH_VARS
Jan 9, 2024
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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]>
sarnex
reviewed
Jan 8, 2024
Signed-off-by: Klochkov, Vyacheslav N <[email protected]>
…llvm_ir_BOTH_VARS
✅ With the latest revision this PR passed the C/C++ code formatter. |
Signed-off-by: Klochkov, Vyacheslav N <[email protected]>
sarnex
approved these changes
Jan 9, 2024
fineg74
approved these changes
Jan 9, 2024
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.