Skip to content

Commit

Permalink
filled out basic concepts
Browse files Browse the repository at this point in the history
  • Loading branch information
oleksandr-pavlyk committed Dec 14, 2021
1 parent 45f79c9 commit d3eda70
Showing 1 changed file with 28 additions and 4 deletions.
32 changes: 28 additions & 4 deletions docs/docfiles/user_guides/manual/dpctl/basic_concepts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,16 +34,40 @@ more topical SYCL reference such as the `SYCL 2020 spec`_.

* **Context**
A context holds the run-time information needed to operate on a device or a
group of devices.
group of devices from the same platform. Contexts are relatively expensive
to create and should be reused as much as possible.

* **Queue**
A queue is needed to execute any computation on a device.
A queue is needed to schedule executition of any computation, or data
copying on the device. Queue construction requires specifying a device
and a context targeting that device as well as additional properties,
such as whether it collects profiling information or whether submitted
tasks are executed in the order in which they were submitted.

* **Event**
*Needs updating*
An event holds information related to computation/data movement operation
scheduled for execution on a queue, such as its execution status as well
as profiling information if the queue the task was submitted to allowed
for collection of such information. Events can be used to specify task
dependencies as well as to synchronize host and devices.

* **USM**
*Needs updating*
Unified Shared Memory (USM) refers to pointer based device memory management.
USM allocations are bound to context. In other words, a pointer representing
USM allocation can be unambiguously mapped to the data it represents only
if the associated context is known. USM allocations are accessible by
computational kernels that are executed on a device, provided that the allocation
is bound to the same context that was used to construct the queue where the
kernel was scheduled for execution.

Depending on the capability of the device, USM allocations can be a "device"
allocation, a "shared" allocation, or a "host" allocation. A "device" allocation
is not accessible from host, while "shared" or "host" allocations are. "Host"
allocation refers to an allocation in host memory that is accessible from a device.

"Shared" allocations are accessible by both host and device. Runtime manages
synchronization of host's and device's view into shared allocations. Initial
placement of the shared allocations is not defined.

.. todo::

Expand Down

0 comments on commit d3eda70

Please sign in to comment.