summaryrefslogtreecommitdiff
path: root/python/openvino/runtime/dla_aot_splitter/README.md
blob: ffefe0de0d2f9386d2b24d6686820ed6f2e8d6aa (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
50
51
52
# Intel AI Suite Core DLA 'AoT Splitter'

This tool is intended to split a compiled HETERO:FPGA OpenVINO model into Input memory, Config memory, and Filter memory data blobs that would normally exist in the DDR memory of a runtime CoreDLA IP. These blobs can be used to directly run an inference on the IP without using OpenVINO InferenceEngine.

# How to Build the Splitter, Plugin, and Example

First, follow all instructions to install CoreDLA compiler development environment

Change directory to the dla runtime folder

```
sh build_runtime.sh -target_de10_agilex
```

# How to Run the Splitter Executable

The executable outputs the memory blobs to the current working directory. Change directory to the location where you want the outputs to be generated

```
cd directory_where_you_want_output

runtime/build_Release/dla_aot_splitter/dla_aot_splitter -cm compiled_hetero_fpga_model.bin -i path/to/image.bmp -bgr -plugins runtime/dla_aot_splitter/dla_aot_splitter_plugin/plugins_aot_splitter.xml
```

Ensure that the libdla_aot_splitter.so, libcoreDLAHeteroPlugin.so and other shared libraries are available to the utility.

The tool outputs the following artifacts:
 - arch_build.mem / arch_build.bin
 - config.mem / config.bin
 - filter.mem /filter.bin
 - input.mem / input.bin
 - inter_size.mem
 - output_size.mem

# Building the Example Inference Program

The example inference program with static input,config,filter data is compiled with the following environment variables
and option to build_runtime.sh

## DE10 Agilex
```
export AOT_SPLITTER_EXAMPLE_MODEL=<path/to/model.xml>
export AOT_SPLITTER_EXAMPLE_INPUT=<path/to/image.bmp>
sh build_runtime.sh -aot_splitter_example -target_de10_agilex
```

This program directly embeds the input, config and filter data into the resulting exectuable file for direct use.

## PCIE

The emulation inference program uses the PCIE MMD driver from the example design to connect to and provision the IP.
Your system may require a different driver to provision the IP