@@ -55,11 +55,11 @@ not rely on APIs defined in this specification.*
55
55
:multi-CCS: https://github.com/intel/compute-runtime/blob/master/level_zero/doc/experimental_extensions/MULTI_CCS_MODES.md
56
56
57
57
Some Intel GPU devices can be partitioned at a granularity of "cslice" (compute
58
- slice), which is a smaller granularity than "tile". At present, the GPU device
59
- drivers don't expose this mode by default, so this form of partitioning is
60
- considered an advanced feature which most applications are not expected to use.
61
- This extension provides a way for these advanced applications to partition a
62
- device by cslice when it is enabled in the device driver.
58
+ slice), which is a smaller granularity than "tile". This form of partitioning
59
+ is not currently enabled by default, so it is considered an advanced feature
60
+ which most applications are not expected to use. This extension provides a way
61
+ for these advanced applications to partition a device by cslice when it is
62
+ enabled in the device driver.
63
63
64
64
Unlike "tile" partitions, a cslice partition does not have any different cache
65
65
affinity from its sibling cslice partitions. Therefore, this extension does
@@ -68,14 +68,19 @@ not expose this type of partitioning through
68
68
new partitioning type
69
69
`info::partition_property::ext_intel_partition_by_cslice`.
70
70
71
- Intel GPU devices that support this type of partitioning currently support it
72
- only at the "tile" level. Therefore, a device with multiple tiles (e.g. PVC)
73
- must first be partitioned into per-tile sub-devices via
74
- `partition_by_affinity_domain`, and then each of the
75
- resulting sub-devices can be further partitioned by
76
- `ext_intel_partition_by_cslice`. Single-tile devices (e.g. ATS-M) can be
77
- directly partitioned by `ext_intel_partition_by_cslice` (for those ATS-M parts
78
- that have multiple cslice partitions).
71
+ The only Intel GPU device that currently supports this type of partitioning is
72
+ PVC, and this support is only available when the device driver is configured in
73
+ {multi-CCS}[multi-CCS] mode. See that documentation for instructions on how to
74
+ enable this mode and for other important information. Currently, it is only
75
+ possible to partition a device by cslice if the driver is in "2 CCS Mode" or
76
+ "4 CCS Mode". When in 2 CCS Mode, a tile can be partitioned into two cslice
77
+ sub-devices. When in 4 CCS Mode, a tile can be partitioned into four cslice
78
+ sub-devices.
79
+
80
+ This type of partitioning is currently supported only at the "tile" level.
81
+ Therefore, a device must first be partitioned into per-tile sub-devices via
82
+ `partition_by_affinity_domain`, and then each of the resulting sub-devices can
83
+ be further partitioned by `ext_intel_partition_by_cslice`.
79
84
80
85
It is important to understand that the device driver virtualizes work
81
86
submission to the cslice sub-devices. This virtualization happens only between
@@ -92,13 +97,6 @@ kernels submitted from the second process. In this second case, the device
92
97
driver binds the process's requested cslice to a physical cslice according to
93
98
the overall system load.
94
99
95
- For information about configuring the device driver to support cslice
96
- partitioning, see the driver documentation on {multi-CCS}[multi-CCS] mode.
97
- Currently, it is only possible to partition a device by cslice if the driver is
98
- in "2 CCS Mode" or "4 CCS Mode". When in 2 CCS Mode, a tile can be partitioned
99
- into two cslice sub-devices. When in 4 CCS Mode, a tile can be partitioned
100
- into four cslice sub-devices.
101
-
102
100
Note that this extension can be supported by any backend and any device. If a
103
101
backend or device does not support the concept of cslice partitions, it can
104
102
still conform to this extension by declaring the new enumerator and member
0 commit comments