ATLAS Offline Software
Loading...
Searching...
No Matches
AsyncCopyTool.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_ASYNCCOPYTOOL_H
5#define ATHCUDASERVICES_ASYNCCOPYTOOL_H
6
7// Framework include(s).
9#include "GaudiKernel/ToolHandle.h"
10
11// AthDevice include(s).
13
14// AthCUDA include(s).
16
17namespace AthCUDA {
18
20class AsyncCopyTool : public extends<AthAlgTool, AthDevice::ICopyTool> {
21
22 public:
23 // Inherit the base class's constructor(s).
24 using extends::extends;
25
28
30 virtual StatusCode initialize() override;
31
33
36
38 virtual std::shared_ptr<const vecmem::copy> copy(
39 const EventContext& ctx) const override;
40
42
43 private:
45 ToolHandle<IStreamTool> m_streamTool{
46 this, "StreamTool", "", "Tool to get the current CUDA stream from"};
47
48}; // class AsyncCopyTool
49
50} // namespace AthCUDA
51
52#endif // ATHCUDASERVICES_ASYNCCOPYTOOL_H
Tool providing an asynchronous vecmem::copy object for CUDA devices.
virtual std::shared_ptr< const vecmem::copy > copy(const EventContext &ctx) const override
Get the provided vecmem::copy object.
ToolHandle< IStreamTool > m_streamTool
Tool to get the current CUDA stream from.
virtual StatusCode initialize() override
Initialize the tool.
Definition Info.h:14