  | 
  
    ATLAS Offline Software
    
   | 
 
 
 
 
Go to the documentation of this file.
    9 #ifndef EFTRACKING_FPGA_INTEGRATION_F100StreamIntegrationAlg_H 
   10 #define EFTRACKING_FPGA_INTEGRATION_F100StreamIntegrationAlg_H 
   20 #include "GaudiKernel/ServiceHandle.h"         
   21 #include "GaudiKernel/IChronoSvc.h" 
   36         using IntegrationBase::IntegrationBase;
 
   50         Gaudi::Property<int> 
m_FPGAThreads{
this, 
"FPGAThreads", 1, 
"number of FPGA threads to initialize"}; 
 
   52         Gaudi::Property<std::string> 
m_xclbin{
this, 
"xclbin", 
"", 
"xclbin path and name"}; 
 
   55         Gaudi::Property<std::string> 
m_pixelEdmKernelName{
this, 
"PixelEDMPrepKernelName", 
"", 
"Name of the FPGA kernel"}; 
 
   57         Gaudi::Property<std::string> 
m_stripEdmKernelName{
this, 
"StripEDMPrepKernelName", 
"", 
"Name of the FPGA kernel"}; 
 
   67         Gaudi::Property<std::string> 
m_pixelL2GKernelName{
this, 
"PixelL2GKernelName", 
"", 
"Name of the pixel L2G kernel"}; 
 
   68         Gaudi::Property<std::string> 
m_stripL2GKernelName{
this, 
"StripL2GKernelName", 
"", 
"Name of the strip L2G kernel"}; 
 
  126 #endif // EFTRACKING_FPGA_INTEGRATION_F100StreamIntegrationAlg_H 
  
SG::ReadHandleKey< std::vector< uint64_t > > m_FPGAStripRDO
 
SG::WriteHandleKey< std::vector< uint64_t > > m_FPGAStripOutput
 
The base class for the EFTracking FPGA integration development.
 
std::vector< cl::Buffer > m_stripL2GEDMOutputBufferList
 
This is the class for the benchmark algorithm specific to the FPGA integration and output conversion.
 
std::atomic< cl_ulong > m_stripClusteringTime
Time for strip clustering.
 
std::vector< cl::Buffer > m_stripClusterInputBufferList
 
std::vector< cl::Buffer > m_stripClusterOutputBufferList
 
Gaudi::Property< std::string > m_pixelEdmKernelName
Name of the FPGA kernel.
 
std::atomic< cl_ulong > m_pixelL2GTime
Time for pixel L2G.
 
std::atomic< cl_ulong > m_stripOutputTime
Time for strip output buffer read.
 
std::vector< cl::Buffer > m_pixelClusterOutputBufferList
 
Gaudi::Property< std::string > m_pixelL2GKernelName
Name of the pixel L2G kernel.
 
std::vector< cl::Buffer > m_edmStripOutputBufferList
 
std::vector< cl::Kernel > m_pixelEndClusteringEDMKernels ATLAS_THREAD_SAFE
 
Property holding a SG store/key/clid from which a ReadHandle is made.
 
void getListofCUs(std::vector< std::string > &cuNames)
 
Gaudi::Property< std::string > m_xclbin
Path and name of the xclbin file.
 
std::atomic< ulonglong > m_numEvents
Number of events processed.
 
SG::WriteHandleKey< std::vector< uint64_t > > m_FPGAPixelOutput
 
std::vector< cl::Buffer > m_stripL2GOutputBufferList
 
virtual StatusCode execute(const EventContext &ctx) const override final
Should be overriden by derived classes to perform meaningful work.
 
std::vector< cl::Kernel > m_stripStartClusteringKernels ATLAS_THREAD_SAFE
 
std::vector< cl::Kernel > m_pixelStartClusteringKernels ATLAS_THREAD_SAFE
 
std::atomic< cl_ulong > m_kernelTime
Time for kernel execution.
 
std::atomic< cl_ulong > m_pixelInputTime
Time for pixel input buffer write.
 
Gaudi::Property< std::string > m_pixelEndClusterEdmKernelName
Name of the pixel clustering kernel start.
 
std::vector< cl::Kernel > m_pixelL2GKernels ATLAS_THREAD_SAFE
 
Property holding a SG store/key/clid from which a WriteHandle is made.
 
std::vector< cl::Kernel > m_pixelEdmPrepKernels ATLAS_THREAD_SAFE
 
Gaudi::Property< std::string > m_pixelStartClusterKernelName
Name of the pixel clustering kernel start.
 
::StatusCode StatusCode
StatusCode definition for legacy code.
 
SG::ReadHandleKey< std::vector< uint64_t > > m_FPGAPixelRDO
 
ServiceHandle< IChronoSvc > m_chronoSvc
Service for timing the algorithm.
 
std::vector< cl::Buffer > m_pixelClusterEDMOutputBufferList
 
std::vector< cl::CommandQueue > m_acc_queues
 
virtual StatusCode finalize() override final
 
virtual StatusCode initialize() override final
Detect the OpenCL devices and prepare OpenCL context.
 
The class for enconding RDO to FPGA format.
 
Gaudi::Property< std::string > m_stripStartClusterKernelName
Name of the strip clustering kernel start.
 
std::vector< cl::Buffer > m_edmPixelOutputBufferList
 
Gaudi::Property< std::string > m_stripEdmKernelName
Name of the FPGA kernel.
 
std::vector< cl::Buffer > m_stripClusterEDMOutputBufferList
 
std::vector< cl::Buffer > m_pixelClusterInputBufferList
 
Gaudi::Property< int > m_FPGAThreads
 
std::atomic< cl_ulong > m_pixelOutputTime
Time for pixel output buffer read.
 
std::atomic< cl_ulong > m_pixelEdmPrepTime
Time for pixel EDM preparation.
 
std::atomic< cl_ulong > m_stripInputTime
Time for strip input buffer write.
 
std::vector< cl::Kernel > m_stripEdmPrepKernels ATLAS_THREAD_SAFE
 
std::vector< cl::Kernel > m_stripL2GKernels ATLAS_THREAD_SAFE
 
std::atomic< cl_ulong > m_pixelClusteringTime
Time for pixel clustering.
 
std::vector< cl::Buffer > m_pixelL2GEDMOutputBufferList
 
std::vector< cl::Kernel > m_pixelEndClusteringClusterKernels ATLAS_THREAD_SAFE
 
Gaudi::Property< std::string > m_pixelEndClusterKernelName
Name of the pixel clustering kernel start.
 
std::vector< cl::Buffer > m_pixelL2GOutputBufferList
 
Gaudi::Property< std::string > m_stripL2GKernelName
Name of the strip L2G kernelS.
 
std::vector< cl::Kernel > m_stripEndClusteringKernels ATLAS_THREAD_SAFE
 
std::atomic< cl_ulong > m_stripEdmPrepTime
Time for strip EDM preparation.
 
std::atomic< cl_ulong > m_stripL2GTime
Time for strip L2G.
 
Gaudi::Property< std::string > m_stripEndClusterKernelName
Name of the strip clustering kernel start.