15 #include "cynq/accelerator.hpp"
16 #include "cynq/datamover.hpp"
17 #include "cynq/enums.hpp"
18 #include "cynq/execution-graph.hpp"
19 #include "cynq/status.hpp"
81 virtual std::shared_ptr<IDataMover>
GetDataMover(
const uint64_t address) = 0;
98 const uint64_t address) = 0;
115 const std::string &kernelname) = 0;
138 const std::string &name,
140 const std::shared_ptr<ExecutionGraphParameters> params =
nullptr);
151 virtual std::vector<float>
GetClocks() noexcept;
187 static std::shared_ptr<
IHardware>
Create(const HardwareArchitecture hw,
188 const std::
string &bitstream,
189 const std::
string &xclbin);
209 static std::shared_ptr<
IHardware>
Create(const HardwareArchitecture hw,
210 const std::
string &config);
Type
Enum with the multiple implementations of the IExecutionGraph.
Definition: execution-graph.hpp:72
Interface for standardising the API of Hardware Devices:
Definition: hardware.hpp:39
virtual std::vector< float > GetClocks() noexcept
Get clocks from the PL.
Definition: hardware.cpp:56
virtual Status SetClocks(const std::vector< float > &clocks)
Set clocks to the PL.
Definition: hardware.cpp:60
virtual Status Reset()=0
Reset method Sets the IHardware instance to its initial state.
virtual std::shared_ptr< IAccelerator > GetAccelerator(const std::string &kernelname)=0
GetAccelerator method IAccelerator instance of IAccelerator inheritors separating the hardware logic ...
virtual std::shared_ptr< IAccelerator > GetAccelerator(const uint64_t address)=0
GetAccelerator method IAccelerator instance of IAccelerator inheritors separating the hardware logic ...
Type
Type Type of runtime supported by the IHardware.
Definition: hardware.hpp:52
@ None
Definition: hardware.hpp:54
@ XRT
Definition: hardware.hpp:56
virtual ~IHardware()=default
~IHardware destructor method Destroy the IHardware object.
static std::shared_ptr< IHardware > Create(const HardwareArchitecture hw, const std::string &bitstream, const std::string &xclbin)
Create method Factory method to create a hardware-specific subclasses for accelerators and data mover...
Definition: hardware.cpp:15
virtual std::shared_ptr< IExecutionGraph > GetExecutionStream(const std::string &name, const IExecutionGraph::Type type=IExecutionGraph::Type::STREAM, const std::shared_ptr< ExecutionGraphParameters > params=nullptr)
GetExecutionStream.
Definition: hardware.cpp:41
virtual std::shared_ptr< IDataMover > GetDataMover(const uint64_t address)=0
GetDataMover method Used for accessing the IDataMover instance of IHardware inheritors for decoupling...
Define an abstract representation of the hardware parameters with some prefilled fields.
Definition: hardware.hpp:26
std::string xclbin_file
Definition: hardware.hpp:30
virtual ~HardwareParameters()=default
std::string bitstream_file
Definition: hardware.hpp:28
Structure to define the return characteristics of each function.
Definition: status.hpp:19