Skip to content

Commit d3eda70

Browse files
filled out basic concepts
1 parent 45f79c9 commit d3eda70

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

docs/docfiles/user_guides/manual/dpctl/basic_concepts.rst

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,40 @@ more topical SYCL reference such as the `SYCL 2020 spec`_.
3434

3535
* **Context**
3636
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.
3839

3940
* **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.
4146

4247
* **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.
4453

4554
* **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.
4771

4872
.. todo::
4973

0 commit comments

Comments
 (0)