File indexing completed on 2024-04-06 12:02:13
0001 #ifndef CondFormats_HcalObjects_interface_HcalLUTCorrsGPU_h
0002 #define CondFormats_HcalObjects_interface_HcalLUTCorrsGPU_h
0003
0004 #include "CondFormats/HcalObjects/interface/HcalLUTCorrs.h"
0005 #include "FWCore/Utilities/interface/propagate_const_array.h"
0006 #include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h"
0007
0008 #ifndef __CUDACC__
0009 #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h"
0010 #include "HeterogeneousCore/CUDACore/interface/ESProduct.h"
0011 #endif
0012
0013 class HcalLUTCorrsGPU {
0014 public:
0015 struct Product {
0016 edm::propagate_const_array<cms::cuda::device::unique_ptr<float[]>> value;
0017 };
0018
0019 #ifndef __CUDACC__
0020
0021 HcalLUTCorrsGPU(HcalLUTCorrs const&);
0022
0023
0024 ~HcalLUTCorrsGPU() = default;
0025
0026
0027 Product const& getProduct(cudaStream_t) const;
0028
0029 private:
0030 std::vector<float, cms::cuda::HostAllocator<float>> value_;
0031
0032 cms::cuda::ESProduct<Product> product_;
0033 #endif
0034 };
0035
0036 #endif