-
Notifications
You must be signed in to change notification settings - Fork 802
[SYCL][E2E] Add support to filter out driver version #11427
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
sarnex
left a comment
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.
Wow, this is cool, thanks! ESIMD test changes LGTM
| @@ -1,3 +1,4 @@ | |||
| // REQUIRES-INTEL-DRIVER: lin: 27202, win: 101.4677 | |||
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.
I agree that is really great feature. Thank you for adding it!
The only question from me: is this new filter completely disables the test or only '%{run}' portion of it?
Many tests are very useful as compile-only tests too. Otherwise, when the driver uplift comes, we may see not the expected runtime pass, but compilation fails caused by series of changes while the test was OFF.
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 skips completely. The reason I've done it is because compilation might be affected by the driver too (e.g., AOT compilation crash). I think that is pretty common for the Matrix project/tests (which triggered this PR).
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.
Hm, thinking more about it, the argument above might not be true. However, I'd really hate to report PASS for something that hasn't been executed.
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.
The old non-centralized checks in ESIMD monitored compile-time regressions, which was really good thing.
If only AOT compilation needs skip, then the best solution (IMO) would be to introduce %{build-aot} that is skipped if the driver doesn't meet the requirement. I have no idea though how difficult is to introduce %{build-aot}
So, if driver is too old:
%{build} - runs
%{build-aot} - skipped
%{run} - skipped
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.
How often have you caught the problems on a test with a runtime skip that could not be observed on other tests? Was it in CI or locally? If locally, was the new/good driver available to you?
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.
Cannot say how often. Perhaps it is the small chance to have overlooked regression.
Compile-time regression may happen when someone else does the changes, e.g. pulls from llvm.org and simply relies on CI, while CI might not catch it.
Don't consider my comments as blocking. The new centralized filter is great in general, even though it has some cons if it skips %{build}.
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 we are worried about it the ESIMD team could find what tests are currently skipped in CI due to old driver and create compile-only tests for them if they have APIs that aren't locked down elsewhere.
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.
I don't like implicit skips because the give you a false sense of all tests passing. UNSUPPORTED is much better in this regard. I think the right way to enable compilation is to create a fake second test that will compile-only the one disabled with this new markup:
# a.compile.cpp
// RUN: %{build} %S/a.cpp -o %t.out
#a.cpp
// REQUIRES-INTEL-DRIVER: ...
// NOTE: Remove a.compile.cpp once the above line is removed.
...
If we think a.cpp is important enough
steffenlarsen
left a comment
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.
Awesome! 🚀
|
I don't think the following is caused by my changes, but I'll restart just in case. Edit: Turns out they were - the included other .cpp files that I had modified. Needed to adjust those as well. |
They `#include` other files that have been transitioned. Need to do the same for those 5 as well.
|
I don't think on Intel Linux GEN12 GPU is somehow related to this change. |
`test-e2e/InvokeSimd/Regression/ImplicitSubgroup/slm_load_store.cpp` wasn't updated together with `test-e2e/InvokeSimd/Regression/slm_load_store.cpp` that it includes in intel#11427. Do it now.
`test-e2e/InvokeSimd/Regression/ImplicitSubgroup/slm_load_store.cpp` wasn't updated together with `test-e2e/InvokeSimd/Regression/slm_load_store.cpp` that it includes in #11427. Do it now.
No description provided.