12 releases (6 breaking)
0.7.2 | Sep 3, 2024 |
---|---|
0.7.1 | Jul 4, 2024 |
0.7.0 | Apr 29, 2024 |
0.6.0 | Jan 16, 2024 |
0.1.0 | Mar 14, 2023 |
#171 in Machine learning
177 downloads per month
250KB
7K
SLoC
Proof of concept for writing custom operators for onnxruntime
Custom operators can be made available to the onnxruntime by creating a shared library with a standardized API. Directly interfacing with the API and types exposed by onnxruntime is quite cumbersome and error prone, though. This project provides abstractions that make this interfacing much easier and safe.
Each custom operator is an individual type which implements the CustomOp
trait. Types which implement that trait can be build
into static objects which are in turn exposed to the onnxruntime.
The example
crate demonstrates how to implement various custom operators.
These operators are loaded and used in the Python test cases in tests/python
.
Building and running these tests requires cargo
(i.e. the standard rust tool chain), onnxruntime
and pytest
.
Execute the following at the root of this repository to build the shared library and to run the python-defined tests:
cargo b && pytest tests/python -s
Dependencies
~1.5MB
~29K SLoC