Visible to Intel only — GUID: GUID-D0417DA9-2540-4CCE-915C-12B13611FC22
Visible to Intel only — GUID: GUID-D0417DA9-2540-4CCE-915C-12B13611FC22
FPGA Extensions
The following sections summarize FPGA extensions supported:
The device_global Extension
FPGA Extension |
Description |
Example |
---|---|---|
sycl::ext::oneapi::experimental::device_global() | Introduces device-scoped memory allocations into SYCL that can be accessed within a kernel using C++ global variable syntax. These memory allocations have unique instances per SYCL device. |
|
The fpga_datapath Extension
FPGA Extension |
Description |
Example |
---|---|---|
sycl::ext::intel::experiments::fpga_datpath<T> | The fpga_datapath extension is a class template templated on a type T, that represents an object of type T. It is a request to the compiler to implement that object in the datapath instead of an off-datapath memory. The fpga_datapath template has reference wrapper-like semantics, and is implicitly convertible to the wrapped type. Because C++ doesn't allow for overloading of the dot operator, a get() member of fpga_datapath allows the extractions of a reference to which the usual dot operator can be applied. The fpga_datapath class template is functionally equivalent to the fpga_register memory attribute. |
|
The fpga_reg Extension
FPGA Extension |
Description |
Example |
---|---|---|
ext::intel::fpga_reg() | Helps the compiler infer at least one pipelining register in the datapath. |
|
The task_sequence Extension
The following table summarizes the task_sequence template parameters and function APIs:
Template Parameter | Description |
---|---|
auto &f typename ReturnT, typename... ArgsT, ReturnT (&f)(ArgsT...) | Callable f that defines the asynchronous task to be associated with the task_sequence. |
uint32_t invocation_capacity | The size of the hardware queue instantiated for async() function calls. |
uint32_t response_capacity | The size of the hardware queue instantiated to hold task function results. |
Function API | Description |
---|---|
void async(ArgsT... Args) | Asynchronously calls f with Args. Increments the number of outstanding tasks by 1. |
ReturnT get() | Synchronously retrieves the result of an asynchronous call. |
~task_sequence() | Destructor for task_sequence. |