-
Notifications
You must be signed in to change notification settings - Fork 787
[SYCL][Level Zero] Implement sycl_ext_intel_cslice extension #7626
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
[SYCL][Level Zero] Implement sycl_ext_intel_cslice extension #7626
Conversation
With this change, on PVC sub-sub-devices now require info::partition_property::ext_intel_partition_by_cslice instead of info::partition_property::partition_by_affinity_domain that wasn't quite accurately describing the actual scheme. On other devices, CSlice-based partitioning is now disabled because that's not how the actual H/W works. If precise manual access to individual CCS is required than sycl_ext_intel_queue_index extension should be used instead. Extension specification is being added in intel#7513.
Implementation is being done in intel/llvm#7626
There is more work to be done, but I think that could be handled in separate PRs. Possibly incomplete list:
|
@@ -4172,6 +4172,7 @@ _ZNK4sycl3_V16device14is_acceleratorEv | |||
_ZNK4sycl3_V16device18create_sub_devicesILNS0_4info18partition_propertyE4230EEESt6vectorIS1_SaIS1_EEm | |||
_ZNK4sycl3_V16device18create_sub_devicesILNS0_4info18partition_propertyE4231EEESt6vectorIS1_SaIS1_EERKS5_ImSaImEE | |||
_ZNK4sycl3_V16device18create_sub_devicesILNS0_4info18partition_propertyE4232EEESt6vectorIS1_SaIS1_EENS3_25partition_affinity_domainE | |||
_ZNK4sycl3_V16device18create_sub_devicesILNS0_4info18partition_propertyE4233EEESt6vectorIS1_SaIS1_EEv |
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.
Please update Windows symbols as well.
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.
Local windows build is broken for me. I'm working with @steffenlarsen on resolving this.
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.
Done
Version bump have to be major actually.
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.
sycl/doc/EnvironmentVariables.md looks okay to me.
…ARTITION_BY_CSLICE
…EXPOSE_CSLICE_IN_AFFINITY_PARTITIONING For backward compatibility and should really be addressed by customers ASAP because the behavior might be different from what they expect.
@steffenlarsen would you please approve the docs change and merge? |
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!
) Implementation is being done in intel/llvm#7626
Recently, an extension was added here: #7513 This extension allows partitioning a device by "cslice" (aka CCS-es). With this change, on PVC sub-sub-devices now require info::partition_property::ext_intel_partition_by_cslice instead of info::partition_property::partition_by_affinity_domain that wasn't quite accurately describing the actual scheme. Level Zero backend support was added here: #7626 In this change, we are adding support in OpenCL plugin. This change makes use of the cl_intel_command_queue_families recently added. Signed-off-by: Arvind Sudarsanam <[email protected]>
…tel/llvm-test-suite#1434) Implementation is being done in intel#7626
With this change, on PVC sub-sub-devices now require
info::partition_property::ext_intel_partition_by_cslice
instead ofinfo::partition_property::partition_by_affinity_domain
that wasn't quite accurately describing the actual scheme.The old behavior could be temporarily restored via
SYCL_PI_LEVEL_ZERO_EXPOSE_CSLICE_IN_AFFINITY_PARTITIONING
environment variable but it is immediately deprecated, and customers are encouraged to switch to the new partitioning scheme as soon as possible.However, even in this scenario,
sub_sub_device.get_info<info::device::partition_type_property>()
would returninfo::partition_property::ext_intel_partition_by_cslice
. That is due to the fact that the whole device hierarchy is pre-populated in the plugin, and we don't know in advance what partitioning would be used inget_sub_devices
call from SYCL RT.On other devices, CSlice-based partitioning is now disabled because that's not how the actual H/W works. If precise manual access to individual CCS is required than
sycl_ext_intel_queue_index
extension should be used instead.Extension specification is being added in #7513.