CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Attributes
EcalTimeCalibConstantsGPU Class Reference

#include <EcalTimeCalibConstantsGPU.h>

Classes

struct  Product
 

Public Member Functions

 EcalTimeCalibConstantsGPU (EcalTimeCalibConstants const &)
 
uint32_t getOffset () const
 
Product const & getProduct (cudaStream_t) const
 
 ~EcalTimeCalibConstantsGPU ()=default
 

Static Public Member Functions

static std::string name ()
 

Private Attributes

uint32_t offset_
 
cms::cuda::ESProduct< Productproduct_
 
std::vector< float,
cms::cuda::HostAllocator
< float > > 
values_
 

Detailed Description

Definition at line 13 of file EcalTimeCalibConstantsGPU.h.

Constructor & Destructor Documentation

EcalTimeCalibConstantsGPU::EcalTimeCalibConstantsGPU ( EcalTimeCalibConstants const &  values)

Definition at line 6 of file EcalTimeCalibConstantsGPU.cc.

References EcalCondObjectContainer< T >::barrelItems(), mps_fire::i, offset_, EcalCondObjectContainer< T >::size(), and values_.

6  {
7  values_.reserve(values.size());
8  for (size_t i = 0; i < values.size(); ++i) {
9  values_.emplace_back(values[i]);
10  }
11  offset_ = values.barrelItems().size();
12 }
std::vector< float, cms::cuda::HostAllocator< float > > values_
EcalTimeCalibConstantsGPU::~EcalTimeCalibConstantsGPU ( )
default

Member Function Documentation

uint32_t EcalTimeCalibConstantsGPU::getOffset ( ) const
inline

Definition at line 31 of file EcalTimeCalibConstantsGPU.h.

References offset_.

EcalTimeCalibConstantsGPU::Product const & EcalTimeCalibConstantsGPU::getProduct ( cudaStream_t  cudaStream) const

Definition at line 14 of file EcalTimeCalibConstantsGPU.cc.

References cms::cuda::copyAsync(), product_, EcalTimeCalibConstantsGPU::Product::values, and values_.

14  {
15  auto const& product = product_.dataForCurrentDeviceAsync(
16  cudaStream, [this](EcalTimeCalibConstantsGPU::Product& product, cudaStream_t cudaStream) {
17  // allocate
18  product.values = cms::cuda::make_device_unique<float[]>(values_.size(), cudaStream);
19  // transfer
20  cms::cuda::copyAsync(product.values, values_, cudaStream);
21  });
22 
23  return product;
24 }
std::vector< float, cms::cuda::HostAllocator< float > > values_
void copyAsync(device::unique_ptr< T > &dst, const host::unique_ptr< T > &src, cudaStream_t stream)
Definition: copyAsync.h:20
edm::propagate_const_array< cms::cuda::device::unique_ptr< float[]> > values
cms::cuda::ESProduct< Product > product_
static std::string EcalTimeCalibConstantsGPU::name ( )
inlinestatic

Member Data Documentation

uint32_t EcalTimeCalibConstantsGPU::offset_
private

Definition at line 38 of file EcalTimeCalibConstantsGPU.h.

Referenced by EcalTimeCalibConstantsGPU(), and getOffset().

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

Definition at line 40 of file EcalTimeCalibConstantsGPU.h.

Referenced by getProduct().

std::vector<float, cms::cuda::HostAllocator<float> > EcalTimeCalibConstantsGPU::values_
private

Definition at line 37 of file EcalTimeCalibConstantsGPU.h.

Referenced by EcalTimeCalibConstantsGPU(), and getProduct().