CMS 3D CMS Logo

HcalPedestalWidthsGPU.cc
Go to the documentation of this file.
5 
6 // FIXME: add proper getters to conditions
8  : unitIsADC_{pedestals.isADC()},
9  totalChannels_{pedestals.getAllContainers()[0].second.size() + pedestals.getAllContainers()[1].second.size()},
10  sigma00_(totalChannels_),
11  sigma01_(totalChannels_),
12  sigma02_(totalChannels_),
13  sigma03_(totalChannels_),
14  sigma10_(totalChannels_),
15  sigma11_(totalChannels_),
16  sigma12_(totalChannels_),
17  sigma13_(totalChannels_),
18  sigma20_(totalChannels_),
19  sigma21_(totalChannels_),
20  sigma22_(totalChannels_),
21  sigma23_(totalChannels_),
22  sigma30_(totalChannels_),
23  sigma31_(totalChannels_),
24  sigma32_(totalChannels_),
25  sigma33_(totalChannels_) {
26  auto const containers = pedestals.getAllContainers();
27 
28  // fill in hb
29  auto const& barrelValues = containers[0].second;
30  for (uint64_t i = 0; i < barrelValues.size(); ++i) {
31  sigma00_[i] = *(barrelValues[i].getValues() /* + 0 */);
32  sigma01_[i] = *(barrelValues[i].getValues() + 1);
33  sigma02_[i] = *(barrelValues[i].getValues() + 2);
34  sigma03_[i] = *(barrelValues[i].getValues() + 3);
35  sigma10_[i] = *(barrelValues[i].getValues() + 3);
36  sigma11_[i] = *(barrelValues[i].getValues() + 5);
37  sigma12_[i] = *(barrelValues[i].getValues() + 6);
38  sigma13_[i] = *(barrelValues[i].getValues() + 7);
39  sigma20_[i] = *(barrelValues[i].getValues() + 8);
40  sigma21_[i] = *(barrelValues[i].getValues() + 9);
41  sigma22_[i] = *(barrelValues[i].getValues() + 10);
42  sigma23_[i] = *(barrelValues[i].getValues() + 11);
43  sigma30_[i] = *(barrelValues[i].getValues() + 12);
44  sigma31_[i] = *(barrelValues[i].getValues() + 13);
45  sigma32_[i] = *(barrelValues[i].getValues() + 14);
46  sigma33_[i] = *(barrelValues[i].getValues() + 15);
47  }
48 
49  // fill in he
50  auto const& endcapValues = containers[1].second;
51  auto const offset = barrelValues.size();
52  for (uint64_t i = 0; i < endcapValues.size(); ++i) {
53  sigma00_[i + offset] = *(endcapValues[i].getValues() /* + 0 */);
54  sigma01_[i + offset] = *(endcapValues[i].getValues() + 1);
55  sigma02_[i + offset] = *(endcapValues[i].getValues() + 2);
56  sigma03_[i + offset] = *(endcapValues[i].getValues() + 3);
57  sigma10_[i + offset] = *(endcapValues[i].getValues() + 3);
58  sigma11_[i + offset] = *(endcapValues[i].getValues() + 5);
59  sigma12_[i + offset] = *(endcapValues[i].getValues() + 6);
60  sigma13_[i + offset] = *(endcapValues[i].getValues() + 7);
61  sigma20_[i + offset] = *(endcapValues[i].getValues() + 8);
62  sigma21_[i + offset] = *(endcapValues[i].getValues() + 9);
63  sigma22_[i + offset] = *(endcapValues[i].getValues() + 10);
64  sigma23_[i + offset] = *(endcapValues[i].getValues() + 11);
65  sigma30_[i + offset] = *(endcapValues[i].getValues() + 12);
66  sigma31_[i + offset] = *(endcapValues[i].getValues() + 13);
67  sigma32_[i + offset] = *(endcapValues[i].getValues() + 14);
68  sigma33_[i + offset] = *(endcapValues[i].getValues() + 15);
69  }
70 }
71 
73  auto const& product =
74  product_.dataForCurrentDeviceAsync(stream, [this](HcalPedestalWidthsGPU::Product& product, cudaStream_t stream) {
75  // allocate
76  product.sigma00 = cms::cuda::make_device_unique<float[]>(sigma00_.size(), stream);
77  product.sigma01 = cms::cuda::make_device_unique<float[]>(sigma01_.size(), stream);
78  product.sigma02 = cms::cuda::make_device_unique<float[]>(sigma02_.size(), stream);
79  product.sigma03 = cms::cuda::make_device_unique<float[]>(sigma03_.size(), stream);
80 
81  product.sigma10 = cms::cuda::make_device_unique<float[]>(sigma10_.size(), stream);
82  product.sigma11 = cms::cuda::make_device_unique<float[]>(sigma11_.size(), stream);
83  product.sigma12 = cms::cuda::make_device_unique<float[]>(sigma12_.size(), stream);
84  product.sigma13 = cms::cuda::make_device_unique<float[]>(sigma13_.size(), stream);
85 
86  product.sigma20 = cms::cuda::make_device_unique<float[]>(sigma20_.size(), stream);
87  product.sigma21 = cms::cuda::make_device_unique<float[]>(sigma21_.size(), stream);
88  product.sigma22 = cms::cuda::make_device_unique<float[]>(sigma22_.size(), stream);
89  product.sigma23 = cms::cuda::make_device_unique<float[]>(sigma23_.size(), stream);
90 
91  product.sigma30 = cms::cuda::make_device_unique<float[]>(sigma30_.size(), stream);
92  product.sigma31 = cms::cuda::make_device_unique<float[]>(sigma31_.size(), stream);
93  product.sigma32 = cms::cuda::make_device_unique<float[]>(sigma32_.size(), stream);
94  product.sigma33 = cms::cuda::make_device_unique<float[]>(sigma33_.size(), stream);
95 
96  // transfer
101 
106 
111 
116  });
117 
118  return product;
119 }
120 
HcalPedestalWidthsGPU::Product::sigma32
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma32
Definition: HcalPedestalWidthsGPU.h:30
HcalPedestalWidthsGPU.h
mps_fire.i
i
Definition: mps_fire.py:428
HcalPedestalWidthsGPU::sigma21_
std::vector< float, cms::cuda::HostAllocator< float > > sigma21_
Definition: HcalPedestalWidthsGPU.h:59
HcalPedestalWidthsGPU::Product::sigma13
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma13
Definition: HcalPedestalWidthsGPU.h:23
HcalPedestalWidthsGPU::Product::sigma22
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma22
Definition: HcalPedestalWidthsGPU.h:26
cms::cuda::stream
uint32_t const T *__restrict__ const uint32_t *__restrict__ int32_t int Histo::index_type cudaStream_t stream
Definition: HistoContainer.h:51
HcalPedestalWidthsGPU::Product::sigma11
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma11
Definition: HcalPedestalWidthsGPU.h:21
HcalPedestalWidthsGPU::sigma00_
std::vector< float, cms::cuda::HostAllocator< float > > sigma00_
Definition: HcalPedestalWidthsGPU.h:50
typelookup.h
HcalPedestalWidthsGPU::sigma13_
std::vector< float, cms::cuda::HostAllocator< float > > sigma13_
Definition: HcalPedestalWidthsGPU.h:57
HcalPedestalWidthsGPU::sigma32_
std::vector< float, cms::cuda::HostAllocator< float > > sigma32_
Definition: HcalPedestalWidthsGPU.h:64
HcalPedestalWidthsGPU::HcalPedestalWidthsGPU
HcalPedestalWidthsGPU(HcalPedestalWidths const &)
Definition: HcalPedestalWidthsGPU.cc:7
HcalPedestalWidthsGPU::getProduct
Product const & getProduct(cudaStream_t) const
Definition: HcalPedestalWidthsGPU.cc:72
HcalPedestalWidthsGPU::Product::sigma20
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma20
Definition: HcalPedestalWidthsGPU.h:24
HcalPedestalWidthsGPU::sigma31_
std::vector< float, cms::cuda::HostAllocator< float > > sigma31_
Definition: HcalPedestalWidthsGPU.h:63
HcalPedestalWidthsGPU::Product::sigma03
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma03
Definition: HcalPedestalWidthsGPU.h:19
HcalPedestalWidths
Definition: HcalPedestalWidths.h:17
HcalPedestalWidthsGPU::Product
Definition: HcalPedestalWidthsGPU.h:15
HcalPedestalWidthsGPU
Definition: HcalPedestalWidthsGPU.h:13
HcalPedestalWidthsGPU::sigma01_
std::vector< float, cms::cuda::HostAllocator< float > > sigma01_
Definition: HcalPedestalWidthsGPU.h:51
HcalPedestalWidthsGPU::sigma03_
std::vector< float, cms::cuda::HostAllocator< float > > sigma03_
Definition: HcalPedestalWidthsGPU.h:53
HcalPedestalWidthsGPU::Product::sigma21
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma21
Definition: HcalPedestalWidthsGPU.h:25
HcalPedestalWidthsGPU::sigma10_
std::vector< float, cms::cuda::HostAllocator< float > > sigma10_
Definition: HcalPedestalWidthsGPU.h:54
HcalPedestalWidthsGPU::sigma02_
std::vector< float, cms::cuda::HostAllocator< float > > sigma02_
Definition: HcalPedestalWidthsGPU.h:52
HcalPedestalWidthsGPU::sigma33_
std::vector< float, cms::cuda::HostAllocator< float > > sigma33_
Definition: HcalPedestalWidthsGPU.h:65
HcalPedestalWidthsGPU::sigma11_
std::vector< float, cms::cuda::HostAllocator< float > > sigma11_
Definition: HcalPedestalWidthsGPU.h:55
HcalPedestalWidths::isADC
bool isADC() const
Definition: HcalPedestalWidths.h:28
HcalPedestalWidthsGPU::Product::sigma33
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma33
Definition: HcalPedestalWidthsGPU.h:31
HcalPedestalWidthsGPU::sigma30_
std::vector< float, cms::cuda::HostAllocator< float > > sigma30_
Definition: HcalPedestalWidthsGPU.h:62
copyAsync.h
HcalPedestalWidthsGPU::Product::sigma23
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma23
Definition: HcalPedestalWidthsGPU.h:27
HcalPedestalWidths.h
TYPELOOKUP_DATA_REG
#define TYPELOOKUP_DATA_REG(_dataclass_)
Definition: typelookup.h:102
HcalPedestalWidthsGPU::Product::sigma12
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma12
Definition: HcalPedestalWidthsGPU.h:22
HcalPedestalWidthsGPU::sigma20_
std::vector< float, cms::cuda::HostAllocator< float > > sigma20_
Definition: HcalPedestalWidthsGPU.h:58
HcalPedestalWidthsGPU::sigma22_
std::vector< float, cms::cuda::HostAllocator< float > > sigma22_
Definition: HcalPedestalWidthsGPU.h:60
HcalPedestalWidthsGPU::Product::sigma10
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma10
Definition: HcalPedestalWidthsGPU.h:20
HcalPedestalWidthsGPU::product_
cms::cuda::ESProduct< Product > product_
Definition: HcalPedestalWidthsGPU.h:67
HcalPedestalWidthsGPU::Product::sigma30
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma30
Definition: HcalPedestalWidthsGPU.h:28
HcalPedestalWidthsGPU::sigma23_
std::vector< float, cms::cuda::HostAllocator< float > > sigma23_
Definition: HcalPedestalWidthsGPU.h:61
cond::uint64_t
unsigned long long uint64_t
Definition: Time.h:13
HcalPedestalWidthsGPU::Product::sigma31
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma31
Definition: HcalPedestalWidthsGPU.h:29
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
HcalPedestalWidthsGPU::Product::sigma01
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma01
Definition: HcalPedestalWidthsGPU.h:17
HcalPedestalWidthsGPU::Product::sigma02
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma02
Definition: HcalPedestalWidthsGPU.h:18
HcalPedestalWidthsGPU::sigma12_
std::vector< float, cms::cuda::HostAllocator< float > > sigma12_
Definition: HcalPedestalWidthsGPU.h:56
HcalPedestalWidthsGPU::Product::sigma00
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > sigma00
Definition: HcalPedestalWidthsGPU.h:16
cms::cuda::copyAsync
void copyAsync(device::unique_ptr< T > &dst, const host::unique_ptr< T > &src, cudaStream_t stream)
Definition: copyAsync.h:20