Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:10:33

0001 #ifndef EventFilter_EcalRawToDigi_plugins_alpaka_DeclsForKernels_h
0002 #define EventFilter_EcalRawToDigi_plugins_alpaka_DeclsForKernels_h
0003 
0004 #include "HeterogeneousCore/AlpakaInterface/interface/memory.h"
0005 #include "HeterogeneousCore/AlpakaInterface/interface/config.h"
0006 
0007 namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::raw {
0008 
0009   struct InputDataHost {
0010     // delete the default constructor because alpaka buffers do not have a default constructor
0011     InputDataHost() = delete;
0012 
0013     explicit InputDataHost(const Queue& queue, size_t size, size_t nFeds)
0014         : data{cms::alpakatools::make_host_buffer<unsigned char[]>(queue, size)},
0015           offsets{cms::alpakatools::make_host_buffer<uint32_t[]>(queue, nFeds)},
0016           feds{cms::alpakatools::make_host_buffer<int[]>(queue, nFeds)} {};
0017 
0018     cms::alpakatools::host_buffer<unsigned char[]> data;
0019     cms::alpakatools::host_buffer<uint32_t[]> offsets;
0020     cms::alpakatools::host_buffer<int[]> feds;
0021   };
0022 
0023   struct ConfigurationParameters {
0024     uint32_t maxChannelsEE;
0025     uint32_t maxChannelsEB;
0026   };
0027 
0028   struct InputDataDevice {
0029     InputDataDevice() = delete;
0030 
0031     explicit InputDataDevice(const Queue& queue, size_t size, size_t nFeds)
0032         : data{cms::alpakatools::make_device_buffer<unsigned char[]>(queue, size)},
0033           offsets{cms::alpakatools::make_device_buffer<uint32_t[]>(queue, nFeds)},
0034           feds{cms::alpakatools::make_device_buffer<int[]>(queue, nFeds)} {};
0035 
0036     cms::alpakatools::device_buffer<Device, unsigned char[]> data;
0037     cms::alpakatools::device_buffer<Device, uint32_t[]> offsets;
0038     cms::alpakatools::device_buffer<Device, int[]> feds;
0039   };
0040 
0041 }  // namespace ALPAKA_ACCELERATOR_NAMESPACE::ecal::raw
0042 
0043 #endif  // EventFilter_EcalRawToDigi_plugins_alpaka_DeclsForKernels_h