@@ -83,19 +83,21 @@ Therefore, a device must first be partitioned into per-tile sub-devices via
83
83
be further partitioned by `ext_intel_partition_by_cslice`.
84
84
85
85
It is important to understand that the device driver virtualizes work
86
- submission to the cslice sub-devices. This virtualization happens only between
87
- processes, and not within a single process. For example, consider a single
88
- process that constructs two SYCL queues on cslice sub-device #0. Kernels
89
- submitted to these two queues are guaranteed to conflict, both using the same
90
- set of execution units. Therefore, if a single process wants to explicitly
91
- submit kernels to cslice sub-devices and it wants to avoid conflict, it should
92
- create queues on different sub-devices. By contrast, consider an example where
93
- two separate processes create a SYCL queue on cslice sub-device #0. In this
94
- case, the device driver virtualizes access to this cslice, and kernels
95
- submitted from the first process may run on different execution units than
96
- kernels submitted from the second process. In this second case, the device
97
- driver binds the process's requested cslice to a physical cslice according to
98
- the overall system load.
86
+ submission to the cslice sub-devices. (More specifically, the device driver
87
+ virtualizes work submission to different CCS-es, and this means that on PVC
88
+ the work submission to a cslice is virtualized.) This virtualization happens
89
+ only between processes, and not within a single process. For example, consider
90
+ a single process that constructs two SYCL queues on cslice sub-device #0.
91
+ Kernels submitted to these two queues are guaranteed to conflict, both using
92
+ the same set of execution units. Therefore, if a single process wants to
93
+ explicitly submit kernels to cslice sub-devices and it wants to avoid conflict,
94
+ it should create queues on different sub-devices. By contrast, consider an
95
+ example where two separate processes create a SYCL queue on cslice sub-device
96
+ #0. In this case, the device driver virtualizes access to this cslice, and
97
+ kernels submitted from the first process may run on different execution units
98
+ than kernels submitted from the second process. In this second case, the
99
+ device driver binds the process's requested cslice to a physical cslice
100
+ according to the overall system load.
99
101
100
102
Note that this extension can be supported by any implementation. If an
101
103
implementation supports a backend or device without the concept of cslice
0 commit comments