CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Attributes
HcalLUTCorrsGPU Class Reference

#include <HcalLUTCorrsGPU.h>

Classes

struct  Product
 

Public Member Functions

Product const & getProduct (cudaStream_t) const
 
 HcalLUTCorrsGPU (HcalLUTCorrs const &)
 
 ~HcalLUTCorrsGPU ()=default
 

Private Attributes

cms::cuda::ESProduct< Productproduct_
 
std::vector< float, cms::cuda::HostAllocator< float > > value_
 

Detailed Description

Definition at line 13 of file HcalLUTCorrsGPU.h.

Constructor & Destructor Documentation

◆ HcalLUTCorrsGPU()

HcalLUTCorrsGPU::HcalLUTCorrsGPU ( HcalLUTCorrs const &  lutcorrs)

Definition at line 7 of file HcalLUTCorrsGPU.cc.

8  : value_(lutcorrs.getAllContainers()[0].second.size() + lutcorrs.getAllContainers()[1].second.size()) {
9  auto const containers = lutcorrs.getAllContainers();
10 
11  // fill in eb
12  auto const& barrelValues = containers[0].second;
13  for (uint64_t i = 0; i < barrelValues.size(); ++i) {
14  value_[i] = barrelValues[i].getValue();
15  }
16 
17  // fill in ee
18  auto const& endcapValues = containers[1].second;
19  auto const offset = barrelValues.size();
20  for (uint64_t i = 0; i < endcapValues.size(); ++i) {
21  value_[i + offset] = endcapValues[i].getValue();
22  }
23 }

References HcalCondObjectContainer< Item >::getAllContainers(), mps_fire::i, hltrates_dqm_sourceclient-live_cfg::offset, and value_.

◆ ~HcalLUTCorrsGPU()

HcalLUTCorrsGPU::~HcalLUTCorrsGPU ( )
default

Member Function Documentation

◆ getProduct()

HcalLUTCorrsGPU::Product const & HcalLUTCorrsGPU::getProduct ( cudaStream_t  stream) const

Definition at line 25 of file HcalLUTCorrsGPU.cc.

25  {
26  auto const& product =
27  product_.dataForCurrentDeviceAsync(stream, [this](HcalLUTCorrsGPU::Product& product, cudaStream_t stream) {
28  // allocate
29  product.value = cms::cuda::make_device_unique<float[]>(value_.size(), stream);
30 
31  // transfer
33  });
34 
35  return product;
36 }

References cms::cuda::copyAsync(), product_, cms::cuda::stream, HcalLUTCorrsGPU::Product::value, and value_.

Referenced by HBHERecHitProducerGPU::acquire().

Member Data Documentation

◆ product_

cms::cuda::ESProduct<Product> HcalLUTCorrsGPU::product_
private

Definition at line 32 of file HcalLUTCorrsGPU.h.

Referenced by getProduct().

◆ value_

std::vector<float, cms::cuda::HostAllocator<float> > HcalLUTCorrsGPU::value_
private

Definition at line 30 of file HcalLUTCorrsGPU.h.

Referenced by getProduct(), and HcalLUTCorrsGPU().

mps_fire.i
i
Definition: mps_fire.py:428
cms::cuda::stream
cudaStream_t stream
Definition: HistoContainer.h:57
HcalLUTCorrsGPU::value_
std::vector< float, cms::cuda::HostAllocator< float > > value_
Definition: HcalLUTCorrsGPU.h:30
HcalLUTCorrsGPU::Product
Definition: HcalLUTCorrsGPU.h:15
cond::uint64_t
unsigned long long uint64_t
Definition: Time.h:13
HcalLUTCorrsGPU::product_
cms::cuda::ESProduct< Product > product_
Definition: HcalLUTCorrsGPU.h:32
hltrates_dqm_sourceclient-live_cfg.offset
offset
Definition: hltrates_dqm_sourceclient-live_cfg.py:82
HcalLUTCorrsGPU::Product::value
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > value
Definition: HcalLUTCorrsGPU.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