aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 46039b7069486db59aa06fb0894252d568fefec2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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.