12#ifndef EFTRACKING_FPGA_INTEGRATION_INTEGRATION_BASE_H
13#define EFTRACKING_FPGA_INTEGRATION_INTEGRATION_BASE_H
20#define CL_HPP_CL_1_2_DEFAULT_BUILD
21#define CL_HPP_TARGET_OPENCL_VERSION 120
22#define CL_HPP_MINIMUM_OPENCL_VERSION 120
23#define CL_HPP_ENABLE_PROGRAM_CONSTRUCTION_FROM_ARRAY_COMPATIBILITY 1
24#define CL_USE_DEPRECATED_OPENCL_1_2_APIS
40 using AthReentrantAlgorithm::AthReentrantAlgorithm;
52 virtual StatusCode
execute(
const EventContext &ctx)
const;
62 StatusCode
precheck(
const std::vector<Gaudi::Property<std::string>>& inputs)
const;
69 Gaudi::Property<std::string>
m_deviceBDF{
this,
"bdfID",
"",
"BDF ID of the accelerator card"};
70 Gaudi::Property<bool>
m_doEmulation{
this,
"doEmulation",
false,
"If software or hardware emulation is being used for debugging"};
An algorithm that can be simultaneously executed in multiple threads.
The base class for the EFTracking FPGA integration development.
StatusCode loadProgram(const std::string &xclbin)
Find the xclbin file and load it into the OpenCL program object.
cl::Program m_program
Program object containing the kernel.
Gaudi::Property< bool > m_doEmulation
virtual StatusCode initialize() override
Detect the OpenCL devices and prepare OpenCL context.
cl::Context m_context
Context object for the application.
StatusCode precheck(const std::vector< Gaudi::Property< std::string > > &inputs) const
Check if the the desired Gaudi properties are set.
Gaudi::Property< std::string > m_deviceBDF
BDF ID of the accelerator card.
cl::Device m_accelerator
Device object for the accelerator card.
virtual StatusCode execute(const EventContext &ctx) const
Should be overriden by derived classes to perform meaningful work.