All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.3.0] - 2020-04-30 Cheng-Chi Wang [email protected]
- New operators - Clip, Max, Min, ReduceMean, and PRelu.
- Integration with MKLDNN - The ONNC library can call Intel MKLDNN library for accelerating the computation of convolution and Gemm (matrix multiplication) on Intel CPU.
- C Backend
- ONNC can compile models into C files.
- ONNC provides a library containing function implementation for 116 neural network operators defined according to ONNX rel-1.3.0 specification.
1.0.0 - 2019-3-11 Der-Yu Tsai [email protected]
- NVDLA Backend
- Vanilla Backend - A template for porting a new backend
- Interpreter interface
- ONNC IR
- Add a stable topological sort for
ComputeGraph
- Add a stable topological sort for
- Best-Fit linear scan memory allocation
- Vanilla backend - A template for porting a new backend
- Statistic API
- Utility for pass
- Template class
CustomPass<T>
for convenient to create newModulePass
type
- Template class
- Utility for ONNC IR
- Template class
CustomVisitor<T>
for convenient to create newComputeVisitor
type
- Template class
- ONNI
- ONNI v2
- Add
CountOperatorPass
: Operator counts statistics - Add
OnnxOptPass
: Run onnx optimizer - Add more verbose level for debugging or benchmarking.
- Add
- ONNI v3
- Rewrite the Interpreter interface.
- Add best-fit algorithm to LinearScan pass, you can pass
-fLinearScanAlgo=best-fit
to onni to use it. - Add ComputeGraph::topologicalSort() to do the stable topological sort.
- Add a new X86 ONNC IR:
X86ConvRelu
andX86FuseConvReluPass
to demonstrate how to fuse operators.
- ONNI v2
- Runtime
- PassManager
- Add new template method
add<T>()
to thePassManager
class for users to emplace a newPass
object in the pass manager. - Change
Pass
object storing mechanism in the pass manager, allowing multiple same typePass
objects.
- Add new template method
- Refine cmake building system
- Fix Memory leaks in framework
- Fix the shown error messags if running into unsupported ONNX operators in the model
0.9.3 - 2018-9-19 Evan Li [email protected]
- Complete the x86 interpreter runtime.
- Enable FuseInplaceValue pass on x86 to further optimize memory footprint.
0.9.2 - 2018-9-19 Evan Li [email protected]
- Complete the x86 memory allocation with liveness analysis information, and tested on experimental in-house runtime that will be released for next version.
- Integrate TravisCI with github PR system.
0.9.1 - 2018-8-3 Luba Tang [email protected]
First open source release: 0.9.0
- Finish basic infrastructure of ONNC, including IR, Core, ADT, Support, Diagnostic and backends.
- Enable Sophon backend. Now Sophon backend still use old form of compute operators.
- Provides onnc, onnx2tg and some utilities.
0.9.0 - 2018-1-17 Luba Tang [email protected]
- Initialization: create all directory structures and auto-tool building system.