@@ -34,16 +34,40 @@ more topical SYCL reference such as the `SYCL 2020 spec`_.
34
34
35
35
* **Context **
36
36
A context holds the run-time information needed to operate on a device or a
37
- group of devices.
37
+ group of devices from the same platform. Contexts are relatively expensive
38
+ to create and should be reused as much as possible.
38
39
39
40
* **Queue **
40
- A queue is needed to execute any computation on a device.
41
+ A queue is needed to schedule executition of any computation, or data
42
+ copying on the device. Queue construction requires specifying a device
43
+ and a context targeting that device as well as additional properties,
44
+ such as whether it collects profiling information or whether submitted
45
+ tasks are executed in the order in which they were submitted.
41
46
42
47
* **Event **
43
- *Needs updating *
48
+ An event holds information related to computation/data movement operation
49
+ scheduled for execution on a queue, such as its execution status as well
50
+ as profiling information if the queue the task was submitted to allowed
51
+ for collection of such information. Events can be used to specify task
52
+ dependencies as well as to synchronize host and devices.
44
53
45
54
* **USM **
46
- *Needs updating *
55
+ Unified Shared Memory (USM) refers to pointer based device memory management.
56
+ USM allocations are bound to context. In other words, a pointer representing
57
+ USM allocation can be unambiguously mapped to the data it represents only
58
+ if the associated context is known. USM allocations are accessible by
59
+ computational kernels that are executed on a device, provided that the allocation
60
+ is bound to the same context that was used to construct the queue where the
61
+ kernel was scheduled for execution.
62
+
63
+ Depending on the capability of the device, USM allocations can be a "device"
64
+ allocation, a "shared" allocation, or a "host" allocation. A "device" allocation
65
+ is not accessible from host, while "shared" or "host" allocations are. "Host"
66
+ allocation refers to an allocation in host memory that is accessible from a device.
67
+
68
+ "Shared" allocations are accessible by both host and device. Runtime manages
69
+ synchronization of host's and device's view into shared allocations. Initial
70
+ placement of the shared allocations is not defined.
47
71
48
72
.. todo ::
49
73
0 commit comments