@@ -68,7 +68,11 @@ void ML::init(o2::framework::ProcessingContext& pc)
6868 LOG (info) << " Set GraphOptimizationLevel to " << mParams .graphOptimizationLevel ;
6969
7070 // create actual session
71+ #if __has_include(<onnxruntime/core/session/experimental_onnxruntime_cxx_api.h>)
7172 mSession = std::make_unique<Ort::Experimental::Session>(mEnv , reinterpret_cast <void *>(model_data.data ()), model_data.size (), mSessionOptions );
73+ #else
74+ mSession = std::make_unique<Ort::Session>(mEnv , reinterpret_cast <void *>(model_data.data ()), model_data.size (), mSessionOptions );
75+ #endif
7276 LOG (info) << " ONNX runtime session created" ;
7377
7478 // print name/shape of inputs
@@ -104,8 +108,15 @@ float ML::process(const TrackTRD& trk, const o2::globaltracking::RecoContainer&
104108 try {
105109 auto input = prepareModelInput (trk, inputTracks);
106110 // create memory mapping to vector above
111+ #if __has_include(<onnxruntime/core/session/experimental_onnxruntime_cxx_api.h>)
107112 auto inputTensor = Ort::Experimental::Value::CreateTensor<float >(input.data (), input.size (),
108113 {static_cast <int64_t >(input.size ()) / mInputShapes [0 ][1 ], mInputShapes [0 ][1 ]});
114+ #else
115+ Ort::MemoryInfo mem_info =
116+ Ort::MemoryInfo::CreateCpu (OrtAllocatorType::OrtArenaAllocator, OrtMemType::OrtMemTypeDefault);
117+ auto inputTensor = Ort::Value::CreateTensor<float >(mem_info, input.data (), input.size (),
118+ {static_cast <int64_t >(input.size ()) / mInputShapes [0 ][1 ], mInputShapes [0 ][1 ]});
119+ #endif
109120 std::vector<Ort::Value> ortTensor;
110121 ortTensor.push_back (std::move (inputTensor));
111122 auto outTensor = mSession ->Run (mInputNames , ortTensor, mOutputNames );
0 commit comments