|
| XRTAccelerator ()=delete |
| Delete the default constructor since address is needed.
|
|
| XRTAccelerator (const std::string &kernelname, const std::shared_ptr< HardwareParameters > hwparams) |
| Construct a new XRTAccelerator object. More...
|
|
virtual | ~XRTAccelerator () |
| ~XRTAccelerator destructor method Destroy the XRTAccelerator object
|
|
Status | Start (const StartMode mode) override |
| Start method This method starts the accelerator in either once or continuous mode (with the autorestart). Under the hood, this writes the control register to turn on the accelerator with/without the autorestart bit. More...
|
|
Status | Stop () override |
| Stop method This asynchronously turns off the accelerator by removing the autorestart and start bits from the control registers. Please, note that the accelerator will turn off once it finishes its current task. More...
|
|
Status | Sync () override |
| Sync method Forces to wait until the accelerator execution is "done". More...
|
|
int | GetMemoryBank (const uint pos) override |
| Get the memory bank ID. More...
|
|
DeviceStatus | GetStatus () override |
| GetStatus method This returns the accelerator state by using the DeviceStatus. This reads the control register flags. More...
|
|
Status | Attach (const uint64_t index, std::shared_ptr< IMemory > mem) override |
| Attach a memory argument Performs an attachment of the argument and the respective pointer. The use of this overload for IMemory buffers is highly recommended. More...
|
|
virtual | ~IAccelerator ()=default |
| ~IAccelerator destructor method Destroy the IAccelerator object.
|
|
virtual Status | Start (std::shared_ptr< IExecutionGraph > graph, const StartMode mode) |
| Start method (asynchronous) Please, refer to IAccelerator::Start for reference. This overload performs an asynchronous execution of the function based on a graph of operations. It returns as soon as the operation is scheduled. More...
|
|
virtual Status | Stop (std::shared_ptr< IExecutionGraph > graph) |
| Stop method (asynchronous) Please, refer to IAccelerator::Stop for reference. This overload performs an asynchronous execution of the function based on a graph of operations. It returns as soon as the operation is scheduled. More...
|
|
virtual Status | Sync (std::shared_ptr< IExecutionGraph > graph) |
| Sync method (asynchronous) Please, refer to IAccelerator::Sync for reference. This overload performs an asynchronous execution of the function based on a graph of operations. It returns as soon as the operation is scheduled. More...
|
|
template<typename T > |
Status | Write (const uint64_t address, const T *data, const size_t elements=1) |
| Write method Performs a write operation to the accelerator through a register. More...
|
|
template<typename T > |
Status | Write (std::shared_ptr< IExecutionGraph > graph, const uint64_t address, const T *data, const size_t elements=1) |
| Write method (asynchronous) Performs a write operation to the accelerator through a register in an execution graph. It returns as soon as the instruction is scheduled. More...
|
|
template<typename T > |
Status | Read (const uint64_t address, T *data, const size_t elements=1) |
| Read method Performs a write operation to the accelerator through a register. More...
|
|
template<typename T > |
Status | Read (std::shared_ptr< IExecutionGraph > graph, const uint64_t address, T *data, const size_t elements=1) |
| Read method (asynchronous) Performs a write operation to the accelerator through a register in an execution graph. It returns as soon as the instruction is scheduled. More...
|
|
template<typename T > |
Status | Attach (const uint64_t index, T *data, const RegisterAccess access=RegisterAccess::WO, const size_t elements=1) |
| Attach an argument Performs an attachment of the argument and the respective pointer. If the index/address to attach receives a nullptr, it gets detached. More...
|
|
template<typename T > |
Status | Attach (const uint64_t index, T *data, const size_t elements, const RegisterAccess access=RegisterAccess::WO) |
| Overload of the Attach<T>() More...
|
|
|
Status | WriteRegister (const uint64_t address, const uint8_t *data, const size_t size) override |
| Write Register method (it behaves differently from MMIO) More...
|
|
Status | ReadRegister (const uint64_t address, uint8_t *data, const size_t size) override |
| Read Register method (it behaves differently from MMIO) More...
|
|
Status | AttachRegister (const uint64_t index, uint8_t *data, const RegisterAccess access, const size_t size) override |
| Implementation of the Attach Register method. More...
|
|
virtual Status | WriteRegister (std::shared_ptr< IExecutionGraph > graph, const uint64_t address, const uint8_t *data, const size_t size) |
| Write Register method (asynchronous) More...
|
|
virtual Status | ReadRegister (std::shared_ptr< IExecutionGraph > graph, const uint64_t address, uint8_t *data, const size_t size) |
| Read Register method (asynchronous) More...
|
|
XRTAccelerator class This class provides the api to operate the accelerator.