-
Notifications
You must be signed in to change notification settings - Fork 787
[SYCL] Remove SYCL_DEVICE_FILTER support #12384
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
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 changes (sycl/test/invoke_simd/invoke_simd.cpp only) LGTM
@steffenlarsen I've addressed your reviews from #12007 in this PR. Since Euna is inactive, I'll be taking forward this effort (that's why created a separate PR). |
@@ -129,6 +131,7 @@ int filter_selector_impl::operator()(const device &Dev) const { | |||
else | |||
DeviceTypeOK = (DT == Filter.DeviceType); | |||
} | |||
#ifndef __INTEL_PREVIEW_BREAKING_CHANGES |
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.
Can you clarify why this code relates only to one path and not the other? It's not immediately clear from the variable names below...
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've fixed this. Apparently, removing this branch was changing the functionality of filter selector. So, instead I've now added a variable "MatchesSeen" in ods_target
to keep track of the devices that matches this filter.
// TODO: host device type will be removed once sycl_ext_oneapi_filter_selector | ||
// is removed. |
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.
Do you know if we should remove it under the same task (even though in a separate 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.
AFAIK, from #12007 (comment), we should perhaps first depreciate sycl_ext_oneapi_filter_selector and then, eventually remove or replace it. I think it would be better to do that in a separate task as it would require more discussion and it is loosely related to the current task of removing depreciated variables.
// RUN: %{build} -o %t.out | ||
// RUN: env SYCL_DEVICE_FILTER='*' %{run-unfiltered-devices} %t.out &> %t.log | ||
// RUN: FileCheck %s < %t.log | ||
// RUN: %if !preview-breaking-changes-supported %{ %{build} -o %t.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.
I don't think we need any changes in the tests using old filter - it's the default still.
@@ -129,6 +131,7 @@ int filter_selector_impl::operator()(const device &Dev) const { | |||
else | |||
DeviceTypeOK = (DT == Filter.DeviceType); | |||
} | |||
#ifndef __INTEL_PREVIEW_BREAKING_CHANGES |
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.
Are these #ifdef
lines changing the behavior of the filter_selector
? I'm not sure we want to do that, and I didn't see any changes to the "sycl_ext_oneapi_filter_selector" extension specification.
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.
Thanks, I've fixed this. It was indeed changing the behavior of filter selector.
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.
UR LGTM
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.
doc
changes LGTM
sycl/source/detail/config.cpp
Outdated
@@ -175,8 +176,21 @@ getSyclDeviceTypeMap() { | |||
return SyclDeviceTypeMap; | |||
} | |||
|
|||
// Array is used by SYCL_DEVICE_FILTER and SYCL_DEVICE_ALLOWLIST and | |||
// ONEAPI_DEVICE_SELECTOR | |||
#ifdef __INTEL_PREVIEW_BREAKING_CHANGES |
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.
Can we just #ifdef
a single line with esimd_emulator
and use auto
return type to unify those two versions?
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.
Doc and spec changes LGTM.
Thanks, Alexey. I've made most of the suggested changes. Regarding moving |
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.
Thanks!
Converted this PR to draft to prevent accidental merges. I'm trying to separate out esimd_emulator related changes from this PR to #12428. Once it gets merged, I'll refactor and open this PR again. |
@aelovikov-intel @bso-intel could you review this PR again? The only change made since the last review is the separation of ESIMD related changes in #12428 |
Post commit failures on Arc GPU:
The first is kind of known, see #12463 (comment). |
Overview
This PR removes support for SYCL_DEVICE_FILTER, and refactors
Basic/diagnostics/device-check.cpp
to use ONEAPI_DEVICE_FILTER instead of SYCL_DEVICE_TYPE, as the latter is depreciated.