ATLAS Offline Software
Loading...
Searching...
No Matches
PerEventAndComponentStreamTool.h
Go to the documentation of this file.
1//
2// Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3//
4#ifndef ATHCUDASERVICES_PEREVENTANDCOMPONENTSTREAMTOOL_H
5#define ATHCUDASERVICES_PEREVENTANDCOMPONENTSTREAMTOOL_H
6
7// Local include(s).
8#include "Stream.h"
9
10// Framework include(s).
13
14// AthCUDA include(s).
16
17// System include(s).
18#include <memory>
19
20namespace AthCUDA {
21
27class PerEventAndComponentStreamTool : public extends<AthAlgTool, IStreamTool> {
28
29 public:
30 // Inherit the base class's constructor(s).
31 using extends::extends;
32
35
37 virtual StatusCode initialize() override;
38
40
43
49 virtual cudaStream_t stream(const EventContext& ctx) const override;
50
52
53 private:
55 std::unique_ptr<
58
59}; // class PerEventAndComponentStreamTool
60
61} // namespace AthCUDA
62
63#endif // ATHCUDASERVICES_PEREVENTANDCOMPONENTSTREAMTOOL_H
Maintain a set of objects, one per slot.
Tool providing a separate, per-event CUDA streams to the component using it.
std::unique_ptr< const SG::SlotSpecificObj< Details::Stream, SG::InvalidSlot::Enabled > > m_streams
Slot specific CUDA stream(s).
virtual cudaStream_t stream(const EventContext &ctx) const override
Get the CUDA stream to use.
virtual StatusCode initialize() override
Initialize the tool.
Maintain a set of objects, one per slot.
Definition Info.h:14