-
Notifications
You must be signed in to change notification settings - Fork 131
[SYCL][ESIMD][EMU] Enabling ESIMD_EMULATOR #582
[SYCL][ESIMD][EMU] Enabling ESIMD_EMULATOR #582
Conversation
dongkyunahn-intel
commented
Nov 24, 2021
- Disabling esimd_emulator for host_apis.cpp
- Filtering out extra-printouts from CM_EMU library supporting ESIMD_EMULATOR
- Disabling esimd_emulator for host_apis.cpp - Filtering out extra-printouts from CM_EMU library supporting ESIMD_EMULATOR
@@ -1,5 +1,5 @@ | |||
// RUN: sycl-ls --verbose | grep "Device \[" | wc -l >%t.verbose.out | |||
// RUN: sycl-ls | wc -l >%t.concise.out | |||
// RUN: sycl-ls | grep "^\[[a-z0-9_]*:[a-z]*:[0-9]*\]\ " | wc -l >%t.concise.out |
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.
what is the weird filter doing and can we please avoid it?
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.
With the ESIMD_EMULATOR support, sycl-ls
application prints out like below.
EMU: *** Warning no kernel information query method is supported in current build.
EMU: [kernel support,critical] kernel data query via debug data is not supported in current build.
EMU: [kernel support] *** Warning kernel arguments data is not found.
[ext_intel_esimd_emulator:gpu:0] Intel(R) ESIMD_EMULATOR/GPU, ESIMD_EMULATOR 1.0.7-CM_EMU [0.1.0]
[host:host:0] SYCL host platform, SYCL host device 1.2 [1.2]
CM_EMU library supporting ESIMD_EMULATOR could print out extra info for debugging - like first three lines of above. It cannot be controlled from SYCL as it is from CM_EMU and CM_EMU prints out them by default. This change is to filter out such extra info for comparison between outputs from 'verbose' output and 'concise' output.
There is ongoing internal discussion for controlling printouts from CM_EMU. As soon as it is decided how these printouts are controlled and applied in CM_EMU, I'm going to remove this filtering.
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.
It is unclear how ESIMD_EMU should be treated.
Physically it is a separate backend so LIT infra should be aware of it so we can filter tests for this BE. I think we need to enable esimd_emu (or any other wording) feature which can be used in UNSUPPORTED:REQUIRES:XFAIL rules.
For now it is not enabling but fixing single test
"Physically it is a separate backend so LIT infra should be aware of it so we can filter tests for this BE" |
You can use #348 as example. There ROCm BE was added (recently renamed to HIP) |
@vladimirlaz, @dongkyunahn-intel - ESIMD EMU plugin/backend can't run non-ESIMD kernels by definition. See this comment. So in the test suite we probably need to mark all generic (non-ESIMD) SYCL tests as unsupported for esimd_emulator device. |
I prefer to follow the semantic of esimd_emulator: "it is a separate backend with a single device of the "GPU" type."
|
I'm working on these items - adding either 'UNSUPPORTED' or 'XFAIL' for ESIMD kernels with details like 'missing implementation'. |
With TODO details for - Missing '__esimd_*' memory intrinsics - Missing '()' operator - 'single_task()' support - 'online compiler' support - Timeout
- 'vadd_1d' and 'sycl_esimd_mix' are duplicated to 'esimd_check_vc_codegen.cpp' and 'sycl_esimd_mix_check_build_opts.cpp' so that original kernels can run with esimd_emulator without 'CHECK' commands and duplicated kernels can run with opencl/level_zero backends with 'CHECK'
@vladimirlaz , how can I disable (or exclude) tests failing due to timeout? Can I put 'XFAIL' for them? |
|
@vladimirlaz , I resolved two timeouts with esimd_emulator backend without adding One was because of oversized matrix. The kernel (matrix_tranpose_glb.cpp) passes without timeout - it took about 1 hour to complete locally. I set matrix size upper limit for the kernel if backend is esimd_emulator. The other was because unsupported feature. esimd_emulator is only for ESIMD kernels - i.e. esimd_emulator is not supposed to support generic SYCL kernels. The failing |
@@ -6,6 +6,7 @@ | |||
// | |||
// Failing on HIP AMD | |||
// XFAIL: hip_amd | |||
// UNSUPPORTED: esimd_emulator |
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.
If I right understand, the test just checks the device parameters and doesn't run any kernels. Should we disable the test for esimd_emulator
?
Closing as this PR is no longer valid. |