ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Control
AthOnnx
AthOnnxComps
AthOnnxComps
OnnxRuntimeInferenceTool.h
Go to the documentation of this file.
1
// Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3
#ifndef OnnxRuntimeInferenceTool_H
4
#define OnnxRuntimeInferenceTool_H
5
6
#include "
AsgTools/AsgTool.h
"
7
#include "
AthOnnxInterfaces/IOnnxRuntimeInferenceTool.h
"
8
#include "
AthOnnxInterfaces/IAthInferenceTool.h
"
9
10
#include "
AthOnnxInterfaces/IOnnxRuntimeSvc.h
"
11
#include "
AthOnnxInterfaces/IOnnxRuntimeSessionTool.h
"
12
#include "
AsgServices/ServiceHandle.h
"
13
#include "
AsgTools/ToolHandle.h
"
14
15
// Forward declaration
16
class
AthAsynchronousAlgorithm
;
17
18
namespace
AthOnnx
{
19
// @class OnnxRuntimeInferenceTool
20
//
21
// @brief Tool to create Onnx Runtime session with CPU backend
22
//
23
// @author Xiangyang Ju <xiangyang.ju@cern.ch>
24
class
OnnxRuntimeInferenceTool
:
public
asg::AsgTool
,
virtual
public
IOnnxRuntimeInferenceTool
,
virtual
public
AthInfer::IAthInferenceTool
25
{
26
ASG_TOOL_CLASS2
(
OnnxRuntimeInferenceTool
,
IOnnxRuntimeInferenceTool
,
AthInfer::IAthInferenceTool
)
27
public
:
29
OnnxRuntimeInferenceTool
(
const
std::string& name );
30
virtual
~OnnxRuntimeInferenceTool
() =
default
;
31
33
virtual
StatusCode
initialize
()
override
;
34
35
36
virtual
void
setBatchSize
(int64_t batchSize)
override
final
;
37
virtual
int64_t
getBatchSize
(int64_t inputDataSize,
int
idx = 0)
const
override final;
38
39
virtual StatusCode
inference
(
std
::
vector
<
Ort
::
Value
>& inputTensors,
std
::
vector
<
Ort
::
Value
>& outputTensors)
const
override final;
40
41
virtual
void
printModelInfo
()
const
override final;
42
43
virtual StatusCode
inference
(
AthInfer
::InputDataMap& inputData,
AthInfer
::OutputDataMap& outputData)
const
override final;
44
45
protected
:
46
OnnxRuntimeInferenceTool
() = delete;
47
OnnxRuntimeInferenceTool
(
const
OnnxRuntimeInferenceTool
&) = delete;
48
OnnxRuntimeInferenceTool
& operator=(
const
OnnxRuntimeInferenceTool
&) = delete;
49
50
private
:
51
StatusCode
getNodeInfo
();
52
53
ServiceHandle
<
IOnnxRuntimeSvc
>
m_onnxRuntimeSvc
{
this
,
"OnnxRuntimeSvc"
,
"AthOnnx::OnnxRuntimeSvc/OnnxRuntimeSvc"
,
"The Onnx runtime service"
};
54
ToolHandle<IOnnxRuntimeSessionTool>
m_onnxSessionTool
{
55
this
,
"ORTSessionTool"
,
56
"AthOnnx::OnnxRuntimeSessionToolCPU/OnnxRuntimeSessionTool"
,
57
"The Onnx session tool"
58
};
59
std::vector<std::string>
m_inputNodeNames
;
60
std::vector<std::string>
m_outputNodeNames
;
61
62
// pointer to parent AthAsynchronousAlgorithm if one exists
63
const
AthAsynchronousAlgorithm
*
m_parentAsyncAlg
=
nullptr
;
64
};
65
}
// namespace AthOnnx
66
67
#endif
ASG_TOOL_CLASS2
#define ASG_TOOL_CLASS2(CLASSNAME, INT1, INT2)
Definition
AsgToolMacros.h:77
AsgTool.h
IAthInferenceTool.h
IOnnxRuntimeInferenceTool.h
IOnnxRuntimeSessionTool.h
IOnnxRuntimeSvc.h
ServiceHandle.h
ToolHandle.h
AthAsynchronousAlgorithm
An algorithm that can be suspended while work is offloaded to an accelerator.
Definition
AthAsynchronousAlgorithm.h:28
AthInfer::IAthInferenceTool
Definition
IAthInferenceTool.h:25
AthOnnx::IOnnxRuntimeInferenceTool
Interface class for creating Onnx Runtime sessions.
Definition
IOnnxRuntimeInferenceTool.h:48
AthOnnx::IOnnxRuntimeSvc
Service used for managing global objects used by Onnx Runtime.
Definition
IOnnxRuntimeSvc.h:25
AthOnnx::OnnxRuntimeInferenceTool::m_onnxSessionTool
ToolHandle< IOnnxRuntimeSessionTool > m_onnxSessionTool
Definition
OnnxRuntimeInferenceTool.h:54
AthOnnx::OnnxRuntimeInferenceTool::inference
virtual StatusCode inference(std::vector< Ort::Value > &inputTensors, std::vector< Ort::Value > &outputTensors) const override final
perform inference
Definition
OnnxRuntimeInferenceTool.cxx:104
AthOnnx::OnnxRuntimeInferenceTool::m_inputNodeNames
std::vector< std::string > m_inputNodeNames
Definition
OnnxRuntimeInferenceTool.h:59
AthOnnx::OnnxRuntimeInferenceTool::getBatchSize
virtual int64_t getBatchSize(int64_t inputDataSize, int idx=0) const override final
methods for determining batch size from the data size
Definition
OnnxRuntimeInferenceTool.cxx:94
AthOnnx::OnnxRuntimeInferenceTool::OnnxRuntimeInferenceTool
OnnxRuntimeInferenceTool(const std::string &name)
Standard constructor.
Definition
OnnxRuntimeInferenceTool.cxx:16
AthOnnx::OnnxRuntimeInferenceTool::initialize
virtual StatusCode initialize() override
Initialize the tool.
Definition
OnnxRuntimeInferenceTool.cxx:21
AthOnnx::OnnxRuntimeInferenceTool::printModelInfo
virtual void printModelInfo() const override final
Definition
OnnxRuntimeInferenceTool.cxx:137
AthOnnx::OnnxRuntimeInferenceTool::getNodeInfo
StatusCode getNodeInfo()
Definition
OnnxRuntimeInferenceTool.cxx:60
AthOnnx::OnnxRuntimeInferenceTool::m_parentAsyncAlg
const AthAsynchronousAlgorithm * m_parentAsyncAlg
Definition
OnnxRuntimeInferenceTool.h:63
AthOnnx::OnnxRuntimeInferenceTool::m_onnxRuntimeSvc
ServiceHandle< IOnnxRuntimeSvc > m_onnxRuntimeSvc
Definition
OnnxRuntimeInferenceTool.h:53
AthOnnx::OnnxRuntimeInferenceTool::OnnxRuntimeInferenceTool
OnnxRuntimeInferenceTool()=delete
AthOnnx::OnnxRuntimeInferenceTool::m_outputNodeNames
std::vector< std::string > m_outputNodeNames
Definition
OnnxRuntimeInferenceTool.h:60
AthOnnx::OnnxRuntimeInferenceTool::setBatchSize
virtual void setBatchSize(int64_t batchSize) override final
set batch size.
Definition
OnnxRuntimeInferenceTool.cxx:74
AthOnnx::OnnxRuntimeInferenceTool::~OnnxRuntimeInferenceTool
virtual ~OnnxRuntimeInferenceTool()=default
ServiceHandle
Definition
ClusterMakerTool.h:36
Value
tag-value pair class.
Definition
Value.h:39
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition
AsgTool.h:47
vector
Definition
MultiHisto.h:13
const
AthInfer
Definition
ExampleAsyncMLInferenceWithTriton.cxx:17
AthOnnx
Namespace holding all of the Onnx Runtime example code.
Definition
EvaluateModel.cxx:11
Ort
Definition
OnnxNNCollection.h:14
std
STL namespace.
protected
#define protected
Definition
testRead.cxx:26
private
#define private
Definition
testRead.cxx:27
Generated on
for ATLAS Offline Software by
1.17.0