That is my understanding, ONNX is the weights and the operators. You could then project that model into SPIR-V, Verilog or run it via native code.
I just did an install of the runtime on Python ( pip install onnxruntime ) . Here are the additional packages it installs.
Package Version
------------- -------
coloredlogs 15.0.1
flatbuffers 23.5.26
humanfriendly 10.0
mpmath 1.3.0
numpy 1.25.2
onnxruntime 1.15.1
packaging 23.1
protobuf 4.23.4
sympy 1.12
https://onnxruntime.ai/docs/install/If an ONNX implementation wants to do codegen, like what XLA does, then usually it is based on LLVM and it needs to be shipped with a copy of LLVM.