summaryrefslogtreecommitdiff
path: root/compiler/mir/Readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/mir/Readme.md')
-rw-r--r--compiler/mir/Readme.md36
1 files changed, 36 insertions, 0 deletions
diff --git a/compiler/mir/Readme.md b/compiler/mir/Readme.md
new file mode 100644
index 000000000..9fb1348a5
--- /dev/null
+++ b/compiler/mir/Readme.md
@@ -0,0 +1,36 @@
+## Model IR (MIR)
+
+### Purpose
+This library exposes **NNC**'s model IR to the outer tools (currently `Mirunner`).
+
+### Design philosophy
+
+**MIR** was designed to support a multiple-frontend NN compiler/optimizer.
+
+### Function
+
+The high level overview of **MIR** is:
+* operations are a composition of their `inputs`, `outputs` and
+special attributes specific to different operation types.
+* operations can have multiple inputs and multiple outputs,
+ each output can be an input to more than one operation
+ (can be used in more than one operation).
+* the kernel tensors are represented by `ConstantOp` and
+ are linked to operations via `Input` objects.
+
+Mir has a protobuf serializer/deserializer for shapes and tensors (see `mir.proto` schema).
+
+For list of currently supported operations, see `mir/ops/operations.lst.h`.
+
+### How to use
+Can be included as a `CMake` target.
+
+### TODO
+
+* Expand serialization
+* Add More to readme
+
+### Dependencies
+
+Mir depends on `adtitas` library, which provides the `small_vector` data type.
+