inference/research
verifiedhigh · 0.85updated 2026-10-04

ONNX Runtime

runtime

Fields

id
compilers/onnx-runtime
Repo
microsoft/onnxruntime
Language
C++
License
MIT
First release
2018
Category
runtime
Target backends
cudarocmcpu-avx2cpu-avx512xnnpackopenclwebgpu
Input languages
onnx
Output artifacts
c
Compilation strategy
graph-rewrite
Autotuning
no
Production ready
yes
Production evidence
Used in production by Microsoft (Office, Azure, Bing)Cross-platform: Windows, Linux, macOS, iOS, AndroidExtensible execution provider framework
Strengths
Cross-platform: runs on Windows, Linux, macOS, iOS, AndroidGraph optimizations: constant folding, node elimination, fusion (GEMM+Activation, Attention, LayerNorm, etc.)Execution provider framework: extensible to new hardware (CUDA, TensorRT, OpenVINO, DirectML, etc.)Production-proven: used by Microsoft in production servicesONNX format: framework-neutral model representationOffline optimization: can save optimized graph to disk
Weaknesses
Graph-level only: does not generate new kernels, only optimizes existing ONNX operatorsNo autotuning: relies on heuristics for operator selection and fusionLimited fusion compared to Triton/Inductor: cannot fuse arbitrary operationsONNX export: not all PyTorch/TensorFlow models export cleanly to ONNXPerformance gap: for GPU inference, ONNX Runtime typically underperforms native Triton or TensorRT kernels
Learning curve
low
Compile time (s)
5
notes
ONNX Runtime is a cross-platform inference runtime that optimizes and executes ONNX models. It is not a kernel compiler: it does not generate new GPU kernels, but instead applies graph-level optimizations (constant folding, node elimination, operator fusion) and partitions the graph across execution providers. The execution provider framework is its key strength: the same model can run on CUDA, TensorRT, OpenVINO, DirectML, or CPU by simply changing the provider configuration. For production deployment, ONNX Runtime is most valuable when cross-platform support is required (e.g., Windows + Linux + mobile). For pure GPU inference on NVIDIA hardware, TensorRT or Triton-based engines typically outperform ONNX Runtime. The graph optimizations are effective but limited compared to what Triton or Inductor can achieve: ONNX Runtime can fuse GEMM+Activation or Attention, but cannot fuse arbitrary sequences of operations into a single kernel.

Notes

ONNX Runtime is a cross-platform inference runtime that optimizes and executes ONNX models. It is not a kernel compiler: it does not generate new GPU kernels, but instead applies graph-level optimizations (constant folding, node elimination, operator fusion) and partitions the graph across execution providers. The execution provider framework is its key strength: the same model can run on CUDA, TensorRT, OpenVINO, DirectML, or CPU by simply changing the provider configuration. For production deployment, ONNX Runtime is most valuable when cross-platform support is required (e.g., Windows + Linux + mobile). For pure GPU inference on NVIDIA hardware, TensorRT or Triton-based engines typically outperform ONNX Runtime. The graph optimizations are effective but limited compared to what Triton or Inductor can achieve: ONNX Runtime can fuse GEMM+Activation or Attention, but cannot fuse arbitrary sequences of operations into a single kernel.

Cross-references

This record references no other records — it is a leaf. It is cited by 0.