Draft: add Service for ONNXRuntime
Adds service that manages sessions of ONNXRuntime. In addition, a light wrapper around these Ort::Sessions is added, StandardSessions, that manages it for the most standard use cases in LHCb.
To do list
-
add setting of max threads (done using config in ApplicationOptions) -
add wrapper around standard option of vector of float (in one tensor) to vector of floats output
Accompanies (also more details in) Rec!3380 (closed). Related to Rec#460.
Possible future improvements if needed
-
use AddInitializerto make session per thread making more efficient if needed to reduce memory consumption (see here)
ONNXRuntime package (install)
For cmake part to work still need to do locally:
export LD_LIBRARY_PATH=/cvmfs/sft.cern.ch/lcg/releases/onnxruntime/1.13.1-9722b/x86_64-centos7-gcc11-opt/lib:$LD_LIBRARY_PATH
Or add the following line to Findonnxruntime.cmake file somewhere before the add_library command:
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
To fix that onnxruntime needs to be added to (@clemenci):
-
https://gitlab.cern.ch/lhcb-core/lcg-toolchains/-/blob/master/LCG_103/lcginfo.json -
Installed in LHCb related CVMFS
Edited by Maarten Van Veghel