File indexing completed on 2024-04-06 12:03:46
0001 #ifndef CUDADataFormats_SiPixelDigi_interface_SiPixelDigisCUDA_h
0002 #define CUDADataFormats_SiPixelDigi_interface_SiPixelDigisCUDA_h
0003
0004 #include <cuda_runtime.h>
0005
0006 #include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h"
0007 #include "HeterogeneousCore/CUDAUtilities/interface/host_unique_ptr.h"
0008 #include "HeterogeneousCore/CUDAUtilities/interface/cudaCompat.h"
0009 #include "CUDADataFormats/Common/interface/PortableDeviceCollection.h"
0010 #include "DataFormats/SiPixelDigiSoA/interface/SiPixelDigisSoA.h"
0011 #include "DataFormats/SoATemplate/interface/SoALayout.h"
0012
0013
0014
0015
0016 class SiPixelDigisCUDA : public cms::cuda::PortableDeviceCollection<SiPixelDigisSoA> {
0017 public:
0018 SiPixelDigisCUDA() = default;
0019 explicit SiPixelDigisCUDA(size_t maxFedWords, cudaStream_t stream)
0020 : PortableDeviceCollection<SiPixelDigisSoA>(maxFedWords + 1, stream) {}
0021
0022 ~SiPixelDigisCUDA() = default;
0023
0024 SiPixelDigisCUDA(SiPixelDigisCUDA &&) = default;
0025 SiPixelDigisCUDA &operator=(SiPixelDigisCUDA &&) = default;
0026
0027 void setNModulesDigis(uint32_t nModules, uint32_t nDigis) {
0028 nModules_h = nModules;
0029 nDigis_h = nDigis;
0030 }
0031
0032 uint32_t nModules() const { return nModules_h; }
0033 uint32_t nDigis() const { return nDigis_h; }
0034
0035 private:
0036 uint32_t nModules_h = 0;
0037 uint32_t nDigis_h = 0;
0038 };
0039
0040 #endif