Adding a new operator to Arm NN involves several steps. In this guide, we show you all the steps to add an example Softmax operator, SoftmaxLayer, to the reference backend. We use the example of adding a SoftmaxLayer operator to the reference backend because Arm NN controls the reference backend. If you want to enable an operator in a different backend, implement the backend-specific workloads when you add the reference workload support.

When a new operator has been added to Arm NN, you must add the new operator to the following programs and libraries which are additional features of Arm NN:

  • The armnnSerializer is a library for serializing an Arm NN network to a stream.
  • The armnnDeserializer is a library for loading neural networks defined by Arm NN FlatBuffers files into the Arm NN runtime.
  • The ArmnnQuantizer is a program that loads a 32-bit float network into Arm NN and converts it into a quantized asymmetric 8-bit or quantized symmetric 16-bit network.

This guide also includes details on how to support the Android NN Driver and support for any required parsers. Both the Android NN driver and parsers are optional.

The following figure shows the steps to add a new operator:Flow for implementing a new layer