ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthCUDA
AthCUDAServices
src
PerEventStreamSvc.cxx
Go to the documentation of this file.
1
//
2
// Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
//
4
5
// Local include(s).
6
#include "
PerEventStreamSvc.h
"
7
8
// System include(s).
9
#include <cassert>
10
#include <iterator>
11
12
namespace
AthCUDA
{
13
14
StatusCode
PerEventStreamSvc::initialize
() {
15
16
// Create the streams object.
17
m_streams
= std::make_unique<
18
const
SG::SlotSpecificObj<Details::Stream, SG::InvalidSlot::Enabled>
>();
19
20
// Tell the user what happened.
21
ATH_MSG_INFO
(
"Initialized "
22
<< std::distance(
m_streams
->begin(),
m_streams
->end())
23
<<
" CUDA stream(s):"
);
24
for
(
const
auto
&
stream
: *
m_streams
) {
25
ATH_MSG_INFO
(
" - "
<<
stream
.name());
26
}
27
28
// Return gracefully.
29
return
StatusCode::SUCCESS;
30
}
31
32
cudaStream_t
PerEventStreamSvc::stream
(
const
EventContext& ctx)
const
{
33
34
// Get the stream corresponding to the current slot.
35
assert(
m_streams
);
36
return
m_streams
->get(ctx)->stream();
37
}
38
39
}
// namespace AthCUDA
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition
AthMsgStreamMacros.h:31
PerEventStreamSvc.h
AthCUDA::PerEventStreamSvc::m_streams
std::unique_ptr< const SG::SlotSpecificObj< Details::Stream, SG::InvalidSlot::Enabled > > m_streams
Slot specific CUDA stream(s).
Definition
PerEventStreamSvc.h:57
AthCUDA::PerEventStreamSvc::initialize
virtual StatusCode initialize() override
Initialize the tool.
Definition
PerEventStreamSvc.cxx:14
AthCUDA::PerEventStreamSvc::stream
virtual cudaStream_t stream(const EventContext &ctx) const override
Get the CUDA stream to use.
Definition
PerEventStreamSvc.cxx:32
SG::SlotSpecificObj
Maintain a set of objects, one per slot.
Definition
AthenaKernel/AthenaKernel/SlotSpecificObj.h:84
AthCUDA
Definition
Info.h:14
Generated on
for ATLAS Offline Software by
1.17.0