Skip to content

Commit ca0afb4

Browse files
authored
Merge pull request #47515 from makortel/migrateAlpakaEDProducerHostProduct
[15_0_X] Migrate BeamSpotDeviceProducer and HcalDigisSoAProducer to rely on implicit host-to-device copy
2 parents d232e6c + b719a9a commit ca0afb4

File tree

2 files changed

+9
-31
lines changed

2 files changed

+9
-31
lines changed

EventFilter/HcalRawToDigi/plugins/alpaka/HcalDigisSoAProducer.cc

Lines changed: 6 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
2-
#include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
32
#include "DataFormats/HcalDigi/interface/HcalDigiHostCollection.h"
43
#include "DataFormats/HcalDigi/interface/alpaka/HcalDigiDeviceCollection.h"
54

@@ -35,13 +34,10 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
3534
using HostCollectionPhase1 = hcal::Phase1DigiHostCollection;
3635
using HostCollectionPhase0 = hcal::Phase0DigiHostCollection;
3736

38-
using DeviceCollectionPhase1 = hcal::Phase1DigiDeviceCollection;
39-
using DeviceCollectionPhase0 = hcal::Phase0DigiDeviceCollection;
40-
4137
// output product tokens
42-
device::EDPutToken<DeviceCollectionPhase1> digisF01HEToken_;
43-
device::EDPutToken<DeviceCollectionPhase0> digisF5HBToken_;
44-
device::EDPutToken<DeviceCollectionPhase1> digisF3HBToken_;
38+
edm::EDPutTokenT<HostCollectionPhase1> digisF01HEToken_;
39+
edm::EDPutTokenT<HostCollectionPhase0> digisF5HBToken_;
40+
edm::EDPutTokenT<HostCollectionPhase1> digisF3HBToken_;
4541

4642
struct ConfigParameters {
4743
uint32_t maxChannelsF01HE, maxChannelsF5HB, maxChannelsF3HB;
@@ -87,9 +83,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
8783
// stack host memory in the queue
8884
HostCollectionPhase0 hf5_(size, event.queue());
8985

90-
// device product
91-
DeviceCollectionPhase0 df5_(size, event.queue());
92-
9386
// set SoA_Scalar;
9487
hf5_.view().stride() = stride;
9588
hf5_.view().size() = hbheDigis.size();
@@ -112,9 +105,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
112105
hf5_vi.data()[i + 1] = sample;
113106
}
114107
}
115-
// copy hf5 to df5
116-
alpaka::memcpy(event.queue(), df5_.buffer(), hf5_.const_buffer());
117-
event.emplace(digisF5HBToken_, std::move(df5_));
108+
event.emplace(digisF5HBToken_, std::move(hf5_));
118109

119110
if (qie11Digis.empty()) {
120111
event.emplace(digisF01HEToken_, 0, event.queue());
@@ -145,10 +136,6 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
145136
HostCollectionPhase1 hf1_(size_f1, event.queue());
146137
HostCollectionPhase1 hf3_(size_f3, event.queue());
147138

148-
// device product
149-
DeviceCollectionPhase1 df1_(size_f1, event.queue());
150-
DeviceCollectionPhase1 df3_(size_f3, event.queue());
151-
152139
// set SoA_Scalar;
153140
hf1_.view().stride() = stride01;
154141
hf3_.view().stride() = stride01;
@@ -187,11 +174,8 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
187174
hf1_.view().size() = size_f1;
188175
hf3_.view().size() = size_f3;
189176

190-
alpaka::memcpy(event.queue(), df1_.buffer(), hf1_.const_buffer());
191-
alpaka::memcpy(event.queue(), df3_.buffer(), hf3_.const_buffer());
192-
193-
event.emplace(digisF01HEToken_, std::move(df1_));
194-
event.emplace(digisF3HBToken_, std::move(df3_));
177+
event.emplace(digisF01HEToken_, std::move(hf1_));
178+
event.emplace(digisF3HBToken_, std::move(hf3_));
195179
}
196180
}
197181
} // namespace ALPAKA_ACCELERATOR_NAMESPACE

RecoVertex/BeamSpotProducer/plugins/alpaka/BeamSpotDeviceProducer.cc

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
1717
BeamSpotDeviceProducer(edm::ParameterSet const& config)
1818
: EDProducer(config),
1919
legacyToken_{consumes(config.getParameter<edm::InputTag>("src"))},
20-
deviceToken_{produces()} {}
20+
podToken_{produces()} {}
2121

2222
void produce(edm::StreamID, device::Event& event, device::EventSetup const& setup) const override {
2323
reco::BeamSpot const& beamspot = event.get(legacyToken_);
@@ -35,13 +35,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
3535
hostProduct->emittanceY = beamspot.emittanceY();
3636
hostProduct->betaStar = beamspot.betaStar();
3737

38-
if constexpr (std::is_same_v<Device, alpaka::DevCpu>) {
39-
event.emplace(deviceToken_, std::move(hostProduct));
40-
} else {
41-
BeamSpotDevice deviceProduct{event.queue()};
42-
alpaka::memcpy(event.queue(), deviceProduct.buffer(), hostProduct.const_buffer());
43-
event.emplace(deviceToken_, std::move(deviceProduct));
44-
}
38+
event.emplace(podToken_, std::move(hostProduct));
4539
}
4640

4741
static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
@@ -52,7 +46,7 @@ namespace ALPAKA_ACCELERATOR_NAMESPACE {
5246

5347
private:
5448
const edm::EDGetTokenT<reco::BeamSpot> legacyToken_;
55-
const device::EDPutToken<BeamSpotDevice> deviceToken_;
49+
const edm::EDPutTokenT<BeamSpotHost> podToken_;
5650
};
5751

5852
} // namespace ALPAKA_ACCELERATOR_NAMESPACE

0 commit comments

Comments
 (0)