CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset Class Reference
Inheritance diagram for ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset:
ALPAKA_ACCELERATOR_NAMESPACE::global::EDProducer<> edm::ProducerBase< edm::global::EDProducer, Args... >

Public Member Functions

void produce (edm::StreamID, device::Event &iEvent, device::EventSetup const &iSetup) const override
 
 TestAlpakaGlobalProducerOffset (edm::ParameterSet const &config)
 
- Public Member Functions inherited from ALPAKA_ACCELERATOR_NAMESPACE::global::EDProducer<>
void produce (edm::StreamID sid, edm::Event &iEvent, edm::EventSetup const &iSetup) const final
 
- Public Member Functions inherited from edm::ProducerBase< edm::global::EDProducer, Args... >
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

TestAlgo const algo_ {}
 
device::EDPutToken< portabletest::TestDeviceCollection > const deviceToken_
 
device::ESGetToken< AlpakaESTestDataADevice, AlpakaESTestRecordA > const esToken_
 
double const x_
 

Additional Inherited Members

- Public Types inherited from edm::ProducerBase< edm::global::EDProducer, Args... >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Protected Member Functions inherited from edm::ProducerBase< edm::global::EDProducer, Args... >
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
BranchAliasSetterT< ProductType > produces ()
 
auto produces () noexcept
 
ProducesCollector producesCollector ()
 

Detailed Description

This class is primarily for consuming AlpakaESTestDataEDevice ESProduct. It also demonstrates a proof-of-concept for backend-specific configuration parameters.

Definition at line 22 of file TestAlpakaGlobalProducerOffset.cc.

Constructor & Destructor Documentation

◆ TestAlpakaGlobalProducerOffset()

ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset::TestAlpakaGlobalProducerOffset ( edm::ParameterSet const &  config)
inline

Definition at line 24 of file TestAlpakaGlobalProducerOffset.cc.

References edm::ProducerBase< edm::global::EDProducer, Args... >::produces().

25  : esToken_(esConsumes()),
27  x_(config.getParameter<edm::ParameterSet>("xvalue").getParameter<double>(
ESGetTokenH3DDVariant esConsumes(std::string const &Record, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
Definition: config.py:1
#define EDM_STRINGIZE(token)
Definition: stringize.h:6
auto produces(std::string instanceName) noexcept
declare what type of product will make and with which optional label
device::EDPutToken< portabletest::TestDeviceCollection > const deviceToken_
device::ESGetToken< AlpakaESTestDataADevice, AlpakaESTestRecordA > const esToken_

Member Function Documentation

◆ fillDescriptions()

static void ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
inlinestatic

Definition at line 41 of file TestAlpakaGlobalProducerOffset.cc.

References edm::ParameterSetDescription::add(), edm::ConfigurationDescriptions::addWithDefaultLabel(), and submitPVResolutionJobs::desc.

41  {
43 
44  // TODO: if this becomes an accepted pattern, we could look into
45  // simplifying the definition (also this use case has additional
46  // constraints not in a general PSet)
48  psetX.add<double>("alpaka_serial_sync", 0.);
49  psetX.add<double>("alpaka_cuda_async", 0.);
50  psetX.add<double>("alpaka_rocm_async", 0.);
51  desc.add("xvalue", psetX);
52 
53  descriptions.addWithDefaultLabel(desc);
54  }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
ParameterDescriptionBase * add(U const &iLabel, T const &value)

◆ produce()

void ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset::produce ( edm::StreamID  ,
device::Event iEvent,
device::EventSetup const &  iSetup 
) const
inlineoverridevirtual

Implements ALPAKA_ACCELERATOR_NAMESPACE::global::EDProducer<>.

Definition at line 30 of file TestAlpakaGlobalProducerOffset.cc.

References algo_, deviceToken_, esToken_, ALPAKA_ACCELERATOR_NAMESPACE::TestAlgo::fill(), ALPAKA_ACCELERATOR_NAMESPACE::device::EventSetup::getData(), iEvent, eostools::move(), and x_.

30  {
31  auto const& esData = iSetup.getData(esToken_);
32 
33  portabletest::TestDeviceCollection deviceProduct{esData->metadata().size(), iEvent.queue()};
34 
35  // run the algorithm, potentially asynchronously
36  algo_.fill(iEvent.queue(), deviceProduct, x_);
37 
38  iEvent.emplace(deviceToken_, std::move(deviceProduct));
39  }
PortableCollection< TestSoA > TestDeviceCollection
int iEvent
Definition: GenABIO.cc:224
void fill(Queue &queue, portabletest::TestDeviceCollection &collection, double xvalue=0.) const
Definition: TestAlgo.dev.cc:83
device::EDPutToken< portabletest::TestDeviceCollection > const deviceToken_
device::ESGetToken< AlpakaESTestDataADevice, AlpakaESTestRecordA > const esToken_
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

◆ algo_

TestAlgo const ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset::algo_ {}
private

Definition at line 60 of file TestAlpakaGlobalProducerOffset.cc.

Referenced by produce().

◆ deviceToken_

device::EDPutToken<portabletest::TestDeviceCollection> const ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset::deviceToken_
private

Definition at line 58 of file TestAlpakaGlobalProducerOffset.cc.

Referenced by produce().

◆ esToken_

device::ESGetToken<AlpakaESTestDataADevice, AlpakaESTestRecordA> const ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset::esToken_
private

Definition at line 57 of file TestAlpakaGlobalProducerOffset.cc.

Referenced by produce().

◆ x_

double const ALPAKA_ACCELERATOR_NAMESPACE::TestAlpakaGlobalProducerOffset::x_
private

Definition at line 62 of file TestAlpakaGlobalProducerOffset.cc.

Referenced by produce().