 |
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef EFTRACKING_FPGA_INTEGRATION_F150IntegrationAlg_H
10 #define EFTRACKING_FPGA_INTEGRATION_F150IntegrationAlg_H
20 #include "GaudiKernel/ServiceHandle.h"
21 #include "GaudiKernel/IChronoSvc.h"
38 using IntegrationBase::IntegrationBase;
53 Gaudi::Property<int>
m_FPGAThreads{
this,
"FPGAThreads", 1,
"number of FPGA threads to initialize"};
54 Gaudi::Property<bool>
m_outputTextFile{
this,
"outputTextFile",
"",
"Whether to output text file"};
56 Gaudi::Property<std::string>
m_xclbin{
this,
"xclbin",
"",
"xclbin path and name"};
58 Gaudi::Property<std::string>
m_pixelEdmKernelName{
this,
"PixelEDMPrepKernelName",
"",
"Name of the FPGA kernel"};
59 Gaudi::Property<std::string>
m_stripEdmKernelName{
this,
"StripEDMPrepKernelName",
"",
"Name of the FPGA kernel"};
60 Gaudi::Property<std::string>
m_pixelClusterKernelName{
this,
"PixelClusterKernelName",
"",
"Name of the pixel clustering kernel"};
61 Gaudi::Property<std::string>
m_stripClusterKernelName{
this,
"StripClusterKernelName",
"",
"Name of the strip clustering kernel"};
62 Gaudi::Property<std::string>
m_stripL2GKernelName{
this,
"StripL2GKernelName",
"",
"Name of the strip L2G kernel"};
63 Gaudi::Property<std::string>
m_slicingEngineInputName{
this,
"SlicingEngineInputName",
"",
"Name of the slicing engine input kernel"};
64 Gaudi::Property<std::string>
m_slicingEngineOutputName{
this,
"SlicingEngineOutputName",
"",
"Name of the slicing engine output kernel"};
65 Gaudi::Property<std::string>
m_insideOutInputName{
this,
"InsideOutInputName",
"",
"Name of the inside out input kernel"};
66 Gaudi::Property<std::string>
m_insideOutOutputName{
this,
"InsideOutOutputName",
"",
"Name of the inside out output kernel"};
68 ToolHandle< GenericMonitoringTool >
m_monTool {
this,
"MonTool",
"",
"Monitoring tool" };
120 void dumpHexData(std::span<const uint64_t>
data,
const std::string& dataDescriptor,
const EventContext &ctx)
const;
126 #endif // EFTRACKING_FPGA_INTEGRATION_F150IntegrationAlg_H
Gaudi::Property< std::string > m_stripL2GKernelName
Name of the strip L2G kernelS.
The base class for the EFTracking FPGA integration development.
char data[hepevt_bytes_allocation_ATLAS]
This is the class for the benchmark algorithm specific to the FPGA integration and output conversion.
SG::WriteHandleKey< std::vector< uint64_t > > m_FPGATrackOutput
std::atomic< cl_ulong > m_stripOutputTime
Time for strip output buffer read.
std::atomic< ulonglong > m_numEvents
Number of events processed.
std::atomic< cl_ulong > m_pixelClusteringTime
Time for pixel clustering.
virtual StatusCode finalize() override final
Gaudi::Property< bool > m_outputTextFile
Whether to run SE or not.
std::vector< cl::Kernel > m_insideOutOutputKernels ATLAS_THREAD_SAFE
std::vector< cl::Kernel > m_stripL2GKernels ATLAS_THREAD_SAFE
Gaudi::Property< std::string > m_stripClusterKernelName
Name of the strip clustering kerne.
Gaudi::Property< std::string > m_xclbin
Path and name of the xclbin file.
ToolHandle< GenericMonitoringTool > m_monTool
std::vector< cl::Buffer > m_pixelClusterOutputBufferList
Gaudi::Property< std::string > m_slicingEngineInputName
std::vector< cl::Kernel > m_stripEdmPrepKernels ATLAS_THREAD_SAFE
Gaudi::Property< std::string > m_pixelEdmKernelName
Name of the FPGA kernel.
virtual StatusCode execute(const EventContext &ctx) const override final
Should be overriden by derived classes to perform meaningful work.
std::vector< cl::Kernel > m_insideOutInputKernels ATLAS_THREAD_SAFE
SG::WriteHandleKey< std::vector< uint64_t > > m_FPGAStripOutput
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::ReadHandleKey< std::vector< uint64_t > > m_FPGAPixelRDO
std::vector< cl::Buffer > m_stripL2GEDMOutputBufferList
std::vector< cl::Kernel > m_slicingEngineOutputKernels ATLAS_THREAD_SAFE
std::vector< cl::Buffer > m_stripClusterInputBufferList
std::atomic< cl_ulong > m_pixelInputTime
Time for pixel input buffer write.
void getListofCUs(std::vector< std::string > &cuNames)
Gaudi::Property< std::string > m_insideOutOutputName
std::vector< cl::Kernel > m_pixelEdmPrepKernels ATLAS_THREAD_SAFE
std::atomic< cl_ulong > m_stripClusteringTime
Time for strip clustering.
SG::ReadHandleKey< std::vector< uint64_t > > m_FPGAStripRDO
std::atomic< cl_ulong > m_stripL2GTime
Time for strip L2G.
std::vector< cl::Buffer > m_stripL2GOutputBufferList
std::vector< cl::Buffer > m_edmPixelOutputBufferList
virtual StatusCode initialize() override final
Detect the OpenCL devices and prepare OpenCL context.
std::vector< cl::Buffer > m_slicingEngineOutputBufferList
std::vector< cl::Buffer > m_stripClusterEDMOutputBufferList
Property holding a SG store/key/clid from which a WriteHandle is made.
std::vector< cl::Buffer > m_insideOutOutputBufferList
::StatusCode StatusCode
StatusCode definition for legacy code.
std::vector< cl::Buffer > m_pixelClusterEDMOutputBufferList
std::atomic< cl_ulong > m_stripEdmPrepTime
Time for strip EDM preparation.
std::atomic< cl_ulong > m_stripInputTime
Time for strip input buffer write.
Gaudi::Property< std::string > m_insideOutInputName
std::vector< cl::Buffer > m_pixelClusterInputBufferList
The class for enconding RDO to FPGA format.
std::atomic< cl_ulong > m_pixelEdmPrepTime
Time for pixel EDM preparation.
Header file to be included by clients of the Monitored infrastructure.
std::vector< cl::CommandQueue > m_acc_queues
Gaudi::Property< std::string > m_slicingEngineOutputName
std::atomic< cl_ulong > m_kernelTime
Time for kernel execution.
SG::WriteHandleKey< std::vector< uint64_t > > m_FPGAPixelOutput
std::vector< cl::Buffer > m_edmStripOutputBufferList
ServiceHandle< IChronoSvc > m_chronoSvc
Service for timing the algorithm.
Gaudi::Property< int > m_FPGAThreads
std::vector< cl::Buffer > m_stripClusterOutputBufferList
std::vector< cl::Kernel > m_stripClusteringKernels ATLAS_THREAD_SAFE
std::vector< cl::Kernel > m_pixelClusteringKernels ATLAS_THREAD_SAFE
std::vector< cl::Kernel > m_slicingEngineInputKernels ATLAS_THREAD_SAFE
Gaudi::Property< std::string > m_pixelClusterKernelName
Name of the pixel clustering kernel.
std::atomic< cl_ulong > m_pixelOutputTime
Time for pixel output buffer read.
Gaudi::Property< std::string > m_stripEdmKernelName
Name of the FPGA kernel.
void dumpHexData(std::span< const uint64_t > data, const std::string &dataDescriptor, const EventContext &ctx) const