Skip to content
Switch branches/tags
Go to file
Cannot retrieve contributors at this time


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


  • 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


  • NVDLA Backend
  • Vanilla Backend - A template for porting a new backend
  • Interpreter interface
    • Add a stable topological sort for ComputeGraph
  • 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 new ModulePass type
  • Utility for ONNC IR
    • Template class CustomVisitor<T> for convenient to create new ComputeVisitor type


  • ONNI
    • ONNI v2
      • Add CountOperatorPass: Operator counts statistics
      • Add OnnxOptPass: Run onnx optimizer
      • Add more verbose level for debugging or benchmarking.
    • 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 and X86FuseConvReluPass to demonstrate how to fuse operators.
  • Runtime
  • PassManager
    • Add new template method add<T>() to the PassManager class for users to emplace a new Pass object in the pass manager.
    • Change Pass object storing mechanism in the pass manager, allowing multiple same type Pass objects.


  • 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

Executive Summary

  1. Complete the x86 interpreter runtime.
  2. Enable FuseInplaceValue pass on x86 to further optimize memory footprint.

0.9.2 - 2018-9-19 Evan Li

Executive Summary

  1. Complete the x86 memory allocation with liveness analysis information, and tested on experimental in-house runtime that will be released for next version.
  2. Integrate TravisCI with github PR system.

0.9.1 - 2018-8-3 Luba Tang

First open source release: 0.9.0

Executive Summary

  1. Finish basic infrastructure of ONNC, including IR, Core, ADT, Support, Diagnostic and backends.
  2. Enable Sophon backend. Now Sophon backend still use old form of compute operators.
  3. Provides onnc, onnx2tg and some utilities.

0.9.0 - 2018-1-17 Luba Tang

Executive Summary

  • Initialization: create all directory structures and auto-tool building system.