File indexing completed on 2024-04-06 12:15:42
0001 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0002
0003 #include "TestHelperClass.h"
0004
0005 namespace ALPAKA_ACCELERATOR_NAMESPACE {
0006 TestHelperClass::TestHelperClass(edm::ParameterSet const& iConfig, edm::ConsumesCollector iC)
0007 : getToken_(iC.consumes(iConfig.getParameter<edm::InputTag>("source"))),
0008 getTokenMulti2_(iC.consumes(iConfig.getParameter<edm::InputTag>("source"))),
0009 getTokenMulti3_(iC.consumes(iConfig.getParameter<edm::InputTag>("source"))),
0010 esTokenHost_(iC.esConsumes()),
0011 esTokenDevice_(iC.esConsumes()) {}
0012
0013 void TestHelperClass::fillPSetDescription(edm::ParameterSetDescription& iDesc) { iDesc.add<edm::InputTag>("source"); }
0014
0015 void TestHelperClass::makeAsync(device::Event const& iEvent, device::EventSetup const& iSetup) {
0016 [[maybe_unused]] auto esDataHostHandle = iSetup.getHandle(esTokenHost_);
0017 [[maybe_unused]] auto const& esDataDevice = iSetup.getData(esTokenDevice_);
0018 portabletest::TestDeviceCollection const& deviceProduct = iEvent.get(getToken_);
0019 portabletest::TestDeviceMultiCollection2 const& deviceProductMulti2 = iEvent.get(getTokenMulti2_);
0020 portabletest::TestDeviceMultiCollection3 const& deviceProductMulti3 = iEvent.get(getTokenMulti3_);
0021
0022 hostProduct_ = portabletest::TestHostCollection{deviceProduct->metadata().size(), iEvent.queue()};
0023 hostProductMulti2_ = portabletest::TestHostMultiCollection2{deviceProductMulti2.sizes(), iEvent.queue()};
0024 hostProductMulti3_ = portabletest::TestHostMultiCollection3{deviceProductMulti3.sizes(), iEvent.queue()};
0025
0026 alpaka::memcpy(iEvent.queue(), hostProduct_.buffer(), deviceProduct.const_buffer());
0027 alpaka::memcpy(iEvent.queue(), hostProductMulti2_.buffer(), deviceProductMulti2.const_buffer());
0028 alpaka::memcpy(iEvent.queue(), hostProductMulti3_.buffer(), deviceProductMulti3.const_buffer());
0029 }
0030 }