Skip to content

Commit 8b5045e

Browse files
committed
Migrate PyTorch alpaka modules to stream::FixedQueueEDProducer
This ensures that PyTorch sees only a limited number of device streams, reducing the overall device memory utilisation.
1 parent fc6daac commit 8b5045e

File tree

5 files changed

+15
-15
lines changed

5 files changed

+15
-15
lines changed

PhysicsTools/PyTorchAlpakaTest/plugins/alpaka/DataSource.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h"
88
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h"
99
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/MakerMacros.h"
10-
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h"
10+
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/FixedQueueEDProducer.h"
1111
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"
1212
#include "PhysicsTools/PyTorchAlpakaTest/interface/Environment.h"
1313
#include "PhysicsTools/PyTorchAlpakaTest/plugins/alpaka/CommonKernels.h"
1414

1515
namespace ALPAKA_ACCELERATOR_NAMESPACE::torchtest {
1616

17-
class DataSource : public stream::EDProducer<> {
17+
class DataSource : public stream::FixedQueueEDProducer<> {
1818
public:
1919
DataSource(const edm::ParameterSet &params)
20-
: EDProducer<>(params),
20+
: FixedQueueEDProducer<>(params),
2121
particles_token_{produces()},
2222
images_token_{produces()},
2323
batch_size_(params.getParameter<uint32_t>("batchSize")),

PhysicsTools/PyTorchAlpakaTest/plugins/alpaka/MaskedNet.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h"
1010
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h"
1111
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/MakerMacros.h"
12-
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h"
12+
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/FixedQueueEDProducer.h"
1313
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"
1414
#include "PhysicsTools/PyTorchAlpaka/interface/TensorCollection.h"
1515
#include "PhysicsTools/PyTorchAlpaka/interface/alpaka/AlpakaModel.h"
@@ -18,10 +18,10 @@
1818

1919
namespace ALPAKA_ACCELERATOR_NAMESPACE::torchtest {
2020

21-
class MaskedNet : public stream::EDProducer<> {
21+
class MaskedNet : public stream::FixedQueueEDProducer<> {
2222
public:
2323
MaskedNet(const edm::ParameterSet &params)
24-
: EDProducer<>(params),
24+
: FixedQueueEDProducer<>(params),
2525
particles_token_(consumes(params.getParameter<edm::InputTag>("particles"))),
2626
masked_net_token_{produces()},
2727
model_(params.getParameter<edm::FileInPath>("model").fullPath()),

PhysicsTools/PyTorchAlpakaTest/plugins/alpaka/MultiHeadNet.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@
88
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h"
99
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h"
1010
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/MakerMacros.h"
11-
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h"
11+
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/FixedQueueEDProducer.h"
1212
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"
1313
#include "PhysicsTools/PyTorchAlpaka/interface/TensorCollection.h"
1414
#include "PhysicsTools/PyTorchAlpaka/interface/alpaka/AlpakaModel.h"
1515
#include "PhysicsTools/PyTorchAlpakaTest/interface/Environment.h"
1616

1717
namespace ALPAKA_ACCELERATOR_NAMESPACE::torchtest {
1818

19-
class MultiHeadNet : public stream::EDProducer<> {
19+
class MultiHeadNet : public stream::FixedQueueEDProducer<> {
2020
public:
2121
MultiHeadNet(const edm::ParameterSet &params)
22-
: EDProducer<>(params),
22+
: FixedQueueEDProducer<>(params),
2323
particles_token_(consumes(params.getParameter<edm::InputTag>("particles"))),
2424
multi_head_net_token_{produces()},
2525
model_(params.getParameter<edm::FileInPath>("model").fullPath()),

PhysicsTools/PyTorchAlpakaTest/plugins/alpaka/SimpleNet.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@
88
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h"
99
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h"
1010
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/MakerMacros.h"
11-
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h"
11+
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/FixedQueueEDProducer.h"
1212
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"
1313
#include "PhysicsTools/PyTorchAlpaka/interface/TensorCollection.h"
1414
#include "PhysicsTools/PyTorchAlpaka/interface/alpaka/AlpakaModel.h"
1515
#include "PhysicsTools/PyTorchAlpakaTest/interface/Environment.h"
1616

1717
namespace ALPAKA_ACCELERATOR_NAMESPACE::torchtest {
1818

19-
class SimpleNet : public stream::EDProducer<> {
19+
class SimpleNet : public stream::FixedQueueEDProducer<> {
2020
public:
2121
SimpleNet(const edm::ParameterSet &params)
22-
: EDProducer<>(params),
22+
: FixedQueueEDProducer<>(params),
2323
particles_token_(consumes(params.getParameter<edm::InputTag>("particles"))),
2424
simple_net_token_{produces()},
2525
model_(params.getParameter<edm::FileInPath>("model").fullPath()),

PhysicsTools/PyTorchAlpakaTest/plugins/alpaka/TinyResNet.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,18 @@
88
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/Event.h"
99
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/EventSetup.h"
1010
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/MakerMacros.h"
11-
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/EDProducer.h"
11+
#include "HeterogeneousCore/AlpakaCore/interface/alpaka/stream/FixedQueueEDProducer.h"
1212
#include "HeterogeneousCore/AlpakaInterface/interface/config.h"
1313
#include "PhysicsTools/PyTorchAlpaka/interface/TensorCollection.h"
1414
#include "PhysicsTools/PyTorchAlpaka/interface/alpaka/AlpakaModel.h"
1515
#include "PhysicsTools/PyTorchAlpakaTest/interface/Environment.h"
1616

1717
namespace ALPAKA_ACCELERATOR_NAMESPACE::torchtest {
1818

19-
class TinyResNet : public stream::EDProducer<> {
19+
class TinyResNet : public stream::FixedQueueEDProducer<> {
2020
public:
2121
TinyResNet(const edm::ParameterSet &params)
22-
: EDProducer<>(params),
22+
: FixedQueueEDProducer<>(params),
2323
images_token_(consumes(params.getParameter<edm::InputTag>("images"))),
2424
logits_token_{produces()},
2525
model_(params.getParameter<edm::FileInPath>("model").fullPath()),

0 commit comments

Comments
 (0)