[tosa_mlir_translator] Add Shape Ops Support

- Add serialization/deserialization of tosa shape ops.
- Changed TileOp's multiples from attribute to shape input.
- Change 'shape' attribute of RESHAPE to an input

Signed-off-by: Tai Ly <tai.ly@arm.com>
Change-Id: I4329e621fd7637b1a3491c195fbda77d2a0ad23a
5 files changed
tree: 045fbbc352d9b988ca501c3557adf4124879111f
  1. .clang-format
  2. .gitmodules
  3. .pre-commit-config.yaml
  4. CMakeLists.txt
  5. LICENSE.txt
  6. README.md
  7. include/
  8. src/
  9. third_party/
README.md

TOSA MLIR Translator

Introduction

The TOSA MLIR Translator repository implements translators between the TOSA MLIR dialect and serialized representations.

The current implementation supports serialization from MLIR form to flatbuffers. A deserializer from flatbuffers to MLIR form is in development.

Dependencies

##TOSA serialization library https://review.mlplatform.org/plugins/gitiles/tosa/serialization_lib The library includes a FlatBuffers schema and a C++ API for reading and writing a TOSA graph as a flatbuffer.

Compiling

This repository does not currently build standalone. It must be included within another MLIR repository with a pass manager registering the passes implemented within this repository.

The included CMake rules can be used to add this repository as a submodule. The include/SerializationPasses.h enables MLIR pass registration inclusion.

If target "tosa_serialize" is linked correctly, you should able to see "--tosa-serialize" and "--tosa-serialize-json" options available in your MLIR pass manager/MLIR optimizer.

Usage

To serialize a TOSA MLIR graph to TOSA flatbuffer binary file:

<YOUR_MLIR_OPTIMIZER> --tosa-serialize <TOSA_MLIR_GRAPH>
--tosa-flatbuffer-filename <TOSA_FLATBUFFER_FILENAME>

To serialize a TOSA MLIR graph to TOSA flatbuffer JSON file:

<YOUR_MLIR_OPTIMIZER> --tosa-serialize <TOSA_MLIR_GRAPH>
--tosa-flatbuffer-schema <PATH_TO_TOSA_FLATBUFFER_SCHEMA>
--tosa-flatbuffer-filename <TOSA_FLATBUFFER_FILENAME>

where <PATH_TO_TOSA_FLATBUFFER_SCHEMA> is provided within the serialization library submodule in third_party/serialization_lib/schema/tosa.fbs

License

The TOSA MLIR Translator is licensed under Apache-2.0 with LLVM Exceptions.