CondFormats
HcalObjects
interface
HcalQIECodersGPU.h
Go to the documentation of this file.
1
#ifndef CondFormats_HcalObjects_interface_HcalQIECodersGPU_h
2
#define CondFormats_HcalObjects_interface_HcalQIECodersGPU_h
3
4
#include "
CondFormats/HcalObjects/interface/HcalQIEData.h
"
5
#include "
FWCore/Utilities/interface/propagate_const_array.h
"
6
#include "
HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h
"
7
8
#ifndef __CUDACC__
9
#include "
HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h
"
10
#include "
HeterogeneousCore/CUDACore/interface/ESProduct.h
"
11
#endif
12
13
class
HcalQIECodersGPU
{
14
public
:
15
static
constexpr uint32_t
numValuesPerChannel
= 16;
16
17
struct
Product
{
18
edm::propagate_const_array<cms::cuda::device::unique_ptr<float[]>
>
offsets
;
19
edm::propagate_const_array<cms::cuda::device::unique_ptr<float[]>
>
slopes
;
20
};
21
22
#ifndef __CUDACC__
23
// rearrange reco params
24
HcalQIECodersGPU
(
HcalQIEData
const
&);
25
26
// will trigger deallocation of Product thru ~Product
27
~HcalQIECodersGPU
() =
default
;
28
29
// get device pointers
30
Product
const
&
getProduct
(cudaStream_t)
const
;
31
32
private
:
33
uint64_t
totalChannels_
;
34
std::vector<float, cms::cuda::HostAllocator<float>>
offsets_
;
35
std::vector<float, cms::cuda::HostAllocator<float>>
slopes_
;
36
37
cms::cuda::ESProduct<Product>
product_
;
38
#endif
39
};
40
41
#endif
HcalQIECodersGPU::getProduct
const Product & getProduct(cudaStream_t) const
Definition:
HcalQIECodersGPU.cc:36
HcalQIECodersGPU::Product
Definition:
HcalQIECodersGPU.h:17
HcalQIECodersGPU::totalChannels_
uint64_t totalChannels_
Definition:
HcalQIECodersGPU.h:33
HostAllocator.h
device_unique_ptr.h
HcalQIECodersGPU::HcalQIECodersGPU
HcalQIECodersGPU(HcalQIEData const &)
Definition:
HcalQIECodersGPU.cc:5
HcalQIECodersGPU::slopes_
std::vector< float, cms::cuda::HostAllocator< float > > slopes_
Definition:
HcalQIECodersGPU.h:35
HcalQIECodersGPU::product_
cms::cuda::ESProduct< Product > product_
Definition:
HcalQIECodersGPU.h:37
cms::cuda::ESProduct
Definition:
ESProduct.h:20
HcalQIEData.h
HcalQIECodersGPU::~HcalQIECodersGPU
~HcalQIECodersGPU()=default
HcalQIECodersGPU::numValuesPerChannel
static constexpr uint32_t numValuesPerChannel
Definition:
HcalQIECodersGPU.h:15
HcalQIECodersGPU::Product::offsets
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > offsets
Definition:
HcalQIECodersGPU.h:18
HcalQIEData
Definition:
HcalQIEData.h:24
edm::propagate_const_array
Definition:
propagate_const_array.h:61
propagate_const_array.h
HcalQIECodersGPU::offsets_
std::vector< float, cms::cuda::HostAllocator< float > > offsets_
Definition:
HcalQIECodersGPU.h:34
cond::uint64_t
unsigned long long uint64_t
Definition:
Time.h:13
HcalQIECodersGPU
Definition:
HcalQIECodersGPU.h:13
ESProduct.h
HcalQIECodersGPU::Product::slopes
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > slopes
Definition:
HcalQIECodersGPU.h:19
Generated for CMSSW Reference Manual by
1.8.16