ATLAS Offline Software
OnnxRuntimeSessionToolCUDA.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 #ifndef OnnxRuntimeSessionToolCUDA_H
4 #define OnnxRuntimeSessionToolCUDA_H
5 
6 #include "AsgTools/AsgTool.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>
21  {
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 
34  protected:
38 
39  private:
40  Gaudi::Property<std::string> m_modelFileName{this, "ModelFileName", "", "The model file name"};
42  Gaudi::Property<int> m_deviceId{this, "DeviceId", 0, "Device ID to use"};
43  Gaudi::Property<bool> m_enableMemoryShrinkage{this, "EnableMemoryShrinkage", false, "Enable automatic memory shrinkage"};
44 
46  ServiceHandle<IOnnxRuntimeSvc> m_onnxRuntimeSvc{"AthOnnx::OnnxRuntimeSvc", "AthOnnx::OnnxRuntimeSvc"};
47  std::unique_ptr<Ort::Session> m_session;
48  };
49 }
50 
51 #endif
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
PropertyWrapper.h
AthOnnx::OnnxRuntimeSessionToolCUDA::m_session
std::unique_ptr< Ort::Session > m_session
Definition: OnnxRuntimeSessionToolCUDA.h:47
AthOnnx::OnnxRuntimeSessionToolCUDA::session
virtual Ort::Session & session() const override final
Create Onnx Runtime session.
Definition: OnnxRuntimeSessionToolCUDA.cxx:58
AthOnnx::OnnxRuntimeSessionToolCUDA::m_modelFileName
Gaudi::Property< std::string > m_modelFileName
Definition: OnnxRuntimeSessionToolCUDA.h:40
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
python.oracle.Session
Session
Definition: oracle.py:78
Property
Support class for PropertyMgr.
Definition: Property.h:23
protected
#define protected
Definition: DetDescrConditionsDict_dict_fixes.cxx:14
AthOnnx::OnnxRuntimeSessionToolCUDA::m_onnxRuntimeSvc
ServiceHandle< IOnnxRuntimeSvc > m_onnxRuntimeSvc
runtime service
Definition: OnnxRuntimeSessionToolCUDA.h:46
AthOnnx::OnnxRuntimeSessionToolCUDA::~OnnxRuntimeSessionToolCUDA
virtual ~OnnxRuntimeSessionToolCUDA()=default
AthOnnx::OnnxRuntimeSessionToolCUDA::initialize
virtual StatusCode initialize() override final
Initialize the tool.
Definition: OnnxRuntimeSessionToolCUDA.cxx:15
AthOnnx::OnnxRuntimeSessionToolCUDA::OnnxRuntimeSessionToolCUDA
OnnxRuntimeSessionToolCUDA()=delete
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IOnnxRuntimeSessionTool.h
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
AthOnnx::OnnxRuntimeSessionToolCUDA
Definition: OnnxRuntimeSessionToolCUDA.h:21
ServiceHandle.h
IOnnxRuntimeSvc.h
calibdata.delete
list delete
Definition: calibdata.py:46
ASG_TOOL_CLASS
#define ASG_TOOL_CLASS(CLASSNAME, INT1)
Definition: AsgToolMacros.h:68
AthOnnx::OnnxRuntimeSessionToolCUDA::m_deviceId
Gaudi::Property< int > m_deviceId
The device ID to use.
Definition: OnnxRuntimeSessionToolCUDA.h:42
Gaudi
=============================================================================
Definition: CaloGPUClusterAndCellDataMonitorOptions.h:273
AthOnnx::IOnnxRuntimeSessionTool
Definition: IOnnxRuntimeSessionTool.h:18
AsgTool.h
AthOnnx::OnnxRuntimeSessionToolCUDA::m_enableMemoryShrinkage
Gaudi::Property< bool > m_enableMemoryShrinkage
Definition: OnnxRuntimeSessionToolCUDA.h:43
ServiceHandle
Definition: ClusterMakerTool.h:37
AthOnnx
Namespace holding all of the Onnx Runtime example code.
Definition: EvaluateModel.cxx:13