[SYCL] Updated SYCL device filtering #8901
Merged
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 is a simple change to the initialization approach of the "filter" value when picking the "preferred platform" in its current form.
Given that there is no direct access to the GGML_SYCL_TARGET at this level, we can use the
default_selector_v
as an initial hint when the ENV variable is not specified (default_selector_v
selects the level-zero by default when using the default intel target, and properly selects CUDA target otherwise given the target triplets we have setup in the Cmake). - One more motivation behind this is that the default selector is added to_devs
prior to the filtering step -This patch makes it thus possible to pick the right platform without necessary specifying the ONEAPI_DEVICE_SELECTOR for non-intel targets, and also keeps the SYCL backend from selecting vendor-heterogeneous platforms in the same setup.
Successfully tested with/without the ENV selector, on multiple platforms and targets.