batchlas::Queue, batchlas::Device, batchlas::Event and SYCL interop.
String conversions and other helpers: Queues, devices and events: helpers.
| sycl::queue & batchlas::sycl_queue | ( | const Queue & | ctx | ) |
The sycl::queue BatchLAS submits this Queue's work on.
A reference to the live queue, not a copy: work submitted to it is ordered against BatchLAS's own work by the queue itself (for the default in-order Queue, after everything already submitted). Its context and device are the ones BatchLAS allocates against, so get_context() on it is the right context for USM that BatchLAS should read.
| ctx | the Queue; must not be moved-from |
| sycl::event batchlas::sycl_event | ( | const Event & | event | ) |
The sycl::event underlying a BatchLAS Event.
For handing BatchLAS's work to SYCL code: depends_on(), wait_and_throw(), a barrier on another queue.
| event | the BatchLAS event |
| Event batchlas::event_from_sycl | ( | sycl::event | event | ) |
Wrap a foreign sycl::event as a BatchLAS Event, so BatchLAS work can be ordered after work BatchLAS did not submit, with no host synchronisation.
In the other direction, sycl_event(ctx.get_event()) hands another queue an event to depend on.
| event | the foreign event |
|
strong |
Synchronous or asynchronous execution policy.
| Enumerator | |
|---|---|
| SYNC | Wait for completion. |
| ASYNC | Return after enqueueing. |
Definition at line 35 of file sycl-device-queue.hh.
|
strong |
The kind of SYCL device.
| Enumerator | |
|---|---|
| CPU | A CPU device. |
| GPU | A GPU device. |
| ACCELERATOR | An accelerator device. |
| HOST | The SYCL host device. |
| NUM_DEV_TYPES | Number of device types (not a device type). |
Definition at line 43 of file sycl-device-queue.hh.
|
strong |
Device vendor, parsed from the SYCL vendor string by str_to_vendor().
| Enumerator | |
|---|---|
| AMD | AMD. |
| ARM | Arm. |
| INTEL | Intel. |
| NVIDIA | NVIDIA. |
| APPLE | Apple (Apple-silicon GPUs through AdaptiveCpp Metal). |
| OTHER | Any other vendor. |
Definition at line 54 of file sycl-device-queue.hh.
|
strong |
A device property queryable with Device::get_property(); each maps to the SYCL sycl::info::device descriptor of the same name.
| Enumerator | |
|---|---|
| MAX_WORK_GROUP_SIZE | Maximum work-group size. |
| MAX_CLOCK_FREQUENCY | Maximum clock frequency (MHz). |
| MAX_COMPUTE_UNITS | Number of compute units. |
| MAX_MEM_ALLOC_SIZE | Largest single allocation (bytes). |
| GLOBAL_MEM_SIZE | Global memory size (bytes). |
| LOCAL_MEM_SIZE | Local (shared) memory per work-group (bytes). |
| MAX_NUM_SUB_GROUPS | Maximum sub-groups per work-group. |
| MAX_SUB_GROUP_SIZE | Largest supported sub-group size; see Device::supports_sub_group_size(). |
| MEM_BASE_ADDR_ALIGN | Base address alignment (bits). |
| GLOBAL_MEM_CACHE_LINE_SIZE | Global memory cache line (bytes). |
| GLOBAL_MEM_CACHE_SIZE | Global memory cache size (bytes). |
| NUMBER_OF_PROPERTIES | Number of properties (not a property). |
Definition at line 149 of file sycl-device-queue.hh.
Topics | |
| Queues, devices and events: helpers | |
| String conversions and device predicates. | |
Files | |
| file | include/batchlas/sycl_interop.hh |
| SYCL interop: batchlas::Queue and batchlas::Event to and from sycl::queue and sycl::event. | |
| file | include/batchlas/util/sycl-device-queue.hh |
| batchlas::Device, batchlas::Event and batchlas::Queue: where work runs and how it is ordered. | |
Classes | |
| struct | batchlas::Device |
| A handle to one SYCL device: its type and its index among devices of that type. More... | |
| struct | batchlas::Event |
| Completion handle of enqueued work, returned by every entry point. More... | |
| struct | batchlas::Queue |
| Where BatchLAS work runs: a device, a backend, an ordered SYCL queue and a workspace arena. More... | |