  Open Neural Network Exchange (ONNX) is an open format to represent AI models
and is supported by many machine learning frameworks. While ONNX defines
unified and portable computation operators across various frameworks, the
conformance tests for those operators are insufficient, which makes it
difficult to verify if an operator's behavior in an ONNX backend implementation
complies with the ONNX standard. In this paper, we present the first automatic
unit test generator named Sionnx for verifying the compliance of ONNX
implementation. First, we propose a compact yet complete set of rules to
describe the operator's attributes and the properties of its operands. Second,
we design an Operator Specification Language (OSL) to provide a high-level
description for the operator's syntax. Finally, through this easy-to-use
specification language, we are able to build a full testing specification which
leverages LLVM TableGen to automatically generate unit tests for ONNX operators
with much large coverage. Sionnx is lightweight and flexible to support
cross-framework verification. The Sionnx framework is open-sourced in the
github repository (https://github.com/alibaba/Sionnx).
