-
Notifications
You must be signed in to change notification settings - Fork 788
[ESIMD][DOC][NFC] Deprecate DPAS type s1 and u1; clarify DPAS HW reqs #12412
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
Conversation
DPAS API is not emulated. It is user's responsibility to manage device detection queries to avoid running DPAS on GPUs without XMX. Signed-off-by: Klochkov, Vyacheslav N <[email protected]>
ab5ba55
to
8f7aa58
Compare
✅ With the latest revision this PR passed the C/C++ code formatter. |
Signed-off-by: Klochkov, Vyacheslav N <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM just typo suggestions
Explicit SIMD APIs can be used only in the code to be executed on Intel graphics | ||
architecture devices. Attempt to run such code on other devices will result in | ||
error. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Explicit SIMD APIs can be used only in the code to be executed on Intel graphics | |
architecture devices. Attempt to run such code on other devices will result in | |
error. | |
Explicit SIMD APIs can be used only code that will be executed on Intel graphics | |
architecture devices. Attempting to run such code on other devices will result in an | |
error. |
@@ -1119,6 +1126,22 @@ int main(void) { | |||
more examples can be found in the | |||
[ESIMD test suite](https://github.com/intel/llvm/tree/sycl/sycl/test-e2e/ESIMD) on github. | |||
|
|||
## Device queries and conditional dispatching of the code | |||
|
|||
ESIMD API provides the access to low level GPU hardware API. At the ESIMD program |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ESIMD API provides the access to low level GPU hardware API. At the ESIMD program | |
ESIMD API provides access to low level GPU hardware API. At ESIMD program |
|
||
ESIMD API provides the access to low level GPU hardware API. At the ESIMD program | ||
compilation time it is not known what target device is going to be used to run the program. | ||
ESIMD programming model relies on user to manage the corresponding compile- and/or |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ESIMD programming model relies on user to manage the corresponding compile- and/or | |
The ESIMD programming model relies on the user to manage the corresponding compile- and/or |
ESIMD API provides the access to low level GPU hardware API. At the ESIMD program | ||
compilation time it is not known what target device is going to be used to run the program. | ||
ESIMD programming model relies on user to manage the corresponding compile- and/or | ||
runtime-checks that prevents ESIMD API from running on GPU that does not support such API. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
runtime-checks that prevents ESIMD API from running on GPU that does not support such API. | |
runtime-checks to prevent the ESIMD API from running on a GPU that does not support the API. |
ESIMD programming model relies on user to manage the corresponding compile- and/or | ||
runtime-checks that prevents ESIMD API from running on GPU that does not support such API. | ||
|
||
One of the most trivial way to manage such checks is to have them on HOST. This variant |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One of the most trivial way to manage such checks is to have them on HOST. This variant | |
One of the most trivial ways to manage such checks is to have them on the HOST. This variant |
includes a) calling device detect query to understand what device is being used | ||
b) depending on the device run one or another version of the kernel. | ||
For example, [this test](https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/ESIMD/dpas/dpas_int.cpp#L8) is designed to be run on DG2 and PVC even though those two devices have | ||
different `execution size`. This is done via usage of [device query on HOST](https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/ESIMD/dpas/dpas_common.hpp#L430) and subsequent |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
different `execution size`. This is done via usage of [device query on HOST](https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/ESIMD/dpas/dpas_common.hpp#L430) and subsequent | |
different `execution sizes`. This is done via usage of [device query on HOST](https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/ESIMD/dpas/dpas_common.hpp#L430) and subsequent |
includes a) calling device detect query to understand what device is being used | ||
b) depending on the device run one or another version of the kernel. | ||
For example, [this test](https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/ESIMD/dpas/dpas_int.cpp#L8) is designed to be run on DG2 and PVC even though those two devices have | ||
different `execution size`. This is done via usage of [device query on HOST](https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/ESIMD/dpas/dpas_common.hpp#L430) and subsequent |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
different `execution size`. This is done via usage of [device query on HOST](https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/ESIMD/dpas/dpas_common.hpp#L430) and subsequent | |
different `execution size`. This is done via usage of [device query on the HOST](https://github.com/intel/llvm/blob/sycl/sycl/test-e2e/ESIMD/dpas/dpas_common.hpp#L430) and a subsequent |
Signed-off-by: Klochkov, Vyacheslav N <[email protected]>
DPAS API is not emulated. It is user's responsibility to manage device detection queries to avoid running DPAS on GPUs without XMX.