ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthOnnx
AthOnnxComps
AthOnnxComps
OnnxRuntimeSessionToolCUDA.h
Go to the documentation of this file.
1
// Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3
#ifndef OnnxRuntimeSessionToolCUDA_H
4
#define OnnxRuntimeSessionToolCUDA_H
5
6
#include "
AsgTools/AsgTool.h
"
7
#include "
AthOnnxInterfaces/IOnnxRuntimeSessionTool.h
"
8
#include "
AthOnnxInterfaces/IOnnxRuntimeSvc.h
"
9
#include "
AsgServices/ServiceHandle.h
"
10
#include "
AsgTools/PropertyWrapper.h
"
11
12
#include <string>
13
14
namespace
AthOnnx
{
15
// @class OnnxRuntimeSessionToolCUDA
16
//
17
// @brief Tool to create Onnx Runtime session with CUDA backend
18
//
19
// @author Xiangyang Ju <xiangyang.ju@cern.ch>
20
class
OnnxRuntimeSessionToolCUDA
:
public
asg::AsgTool
,
virtual
public
IOnnxRuntimeSessionTool
21
{
22
ASG_TOOL_CLASS
(
OnnxRuntimeSessionToolCUDA
,
IOnnxRuntimeSessionTool
)
23
public
:
25
OnnxRuntimeSessionToolCUDA
(
const
std::string& name);
26
virtual
~OnnxRuntimeSessionToolCUDA
() =
default
;
27
29
virtual
StatusCode
initialize
() override final;
30
32
virtual
Ort
::Session&
session
()
const
override final;
33
35
virtual
bool
supportsAsync
()
const
override final;
36
38
int
deviceId
()
const
{
return
m_deviceId
; }
39
40
protected
:
41
OnnxRuntimeSessionToolCUDA
() =
delete
;
42
OnnxRuntimeSessionToolCUDA
(
const
OnnxRuntimeSessionToolCUDA
&) =
delete
;
43
OnnxRuntimeSessionToolCUDA
&
operator=
(
const
OnnxRuntimeSessionToolCUDA
&) =
delete
;
44
45
private
:
46
Gaudi::Property<std::string>
m_modelFileName
{
this
,
"ModelFileName"
,
""
,
"The model file name"
};
48
Gaudi::Property<int>
m_deviceId
{
this
,
"DeviceId"
, 0,
"Device ID to use"
};
49
Gaudi::Property<bool>
m_enableMemoryShrinkage
{
this
,
"EnableMemoryShrinkage"
,
false
,
"Enable automatic memory shrinkage"
};
50
52
ServiceHandle<IOnnxRuntimeSvc>
m_onnxRuntimeSvc
{
this
,
"OnnxRuntimeSvc"
,
"AthOnnx::OnnxRuntimeSvc/OnnxRuntimeSvc"
,
"The Onnx runtime service"
};
53
std::unique_ptr<Ort::Session>
m_session
;
54
};
55
}
56
57
#endif
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition
AsgToolMacros.h:68
AsgTool.h
IOnnxRuntimeSessionTool.h
IOnnxRuntimeSvc.h
PropertyWrapper.h
ServiceHandle.h
AthOnnx::IOnnxRuntimeSessionTool
Definition
IOnnxRuntimeSessionTool.h:18
AthOnnx::OnnxRuntimeSessionToolCUDA::OnnxRuntimeSessionToolCUDA
OnnxRuntimeSessionToolCUDA(const std::string &name)
Standard constructor.
Definition
OnnxRuntimeSessionToolCUDA.cxx:8
AthOnnx::OnnxRuntimeSessionToolCUDA::~OnnxRuntimeSessionToolCUDA
virtual ~OnnxRuntimeSessionToolCUDA()=default
AthOnnx::OnnxRuntimeSessionToolCUDA::OnnxRuntimeSessionToolCUDA
OnnxRuntimeSessionToolCUDA(const OnnxRuntimeSessionToolCUDA &)=delete
AthOnnx::OnnxRuntimeSessionToolCUDA::supportsAsync
virtual bool supportsAsync() const override final
Check if asynchronous inference is supported (yes, it is).
Definition
OnnxRuntimeSessionToolCUDA.cxx:64
AthOnnx::OnnxRuntimeSessionToolCUDA::operator=
OnnxRuntimeSessionToolCUDA & operator=(const OnnxRuntimeSessionToolCUDA &)=delete
AthOnnx::OnnxRuntimeSessionToolCUDA::OnnxRuntimeSessionToolCUDA
OnnxRuntimeSessionToolCUDA()=delete
AthOnnx::OnnxRuntimeSessionToolCUDA::m_onnxRuntimeSvc
ServiceHandle< IOnnxRuntimeSvc > m_onnxRuntimeSvc
runtime service
Definition
OnnxRuntimeSessionToolCUDA.h:52
AthOnnx::OnnxRuntimeSessionToolCUDA::m_enableMemoryShrinkage
Gaudi::Property< bool > m_enableMemoryShrinkage
Definition
OnnxRuntimeSessionToolCUDA.h:49
AthOnnx::OnnxRuntimeSessionToolCUDA::m_deviceId
Gaudi::Property< int > m_deviceId
The device ID to use.
Definition
OnnxRuntimeSessionToolCUDA.h:48
AthOnnx::OnnxRuntimeSessionToolCUDA::session
virtual Ort::Session & session() const override final
Create Onnx Runtime session.
Definition
OnnxRuntimeSessionToolCUDA.cxx:59
AthOnnx::OnnxRuntimeSessionToolCUDA::m_modelFileName
Gaudi::Property< std::string > m_modelFileName
Definition
OnnxRuntimeSessionToolCUDA.h:46
AthOnnx::OnnxRuntimeSessionToolCUDA::deviceId
int deviceId() const
Device ID passed to the CUDA provider (needed to build Ort::MemoryInfo for IoBinding).
Definition
OnnxRuntimeSessionToolCUDA.h:38
AthOnnx::OnnxRuntimeSessionToolCUDA::initialize
virtual StatusCode initialize() override final
Initialize the tool.
Definition
OnnxRuntimeSessionToolCUDA.cxx:13
AthOnnx::OnnxRuntimeSessionToolCUDA::m_session
std::unique_ptr< Ort::Session > m_session
Definition
OnnxRuntimeSessionToolCUDA.h:53
ServiceHandle
Definition
ClusterMakerTool.h:36
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition
AsgTool.h:47
const
AthOnnx
Namespace holding all of the Onnx Runtime example code.
Definition
EvaluateModel.cxx:11
Ort
Definition
OnnxNNCollection.h:14
Generated on
for ATLAS Offline Software by
1.17.0