Skip to content
This repository has been archived by the owner on Jun 11, 2022. It is now read-only.

How to build Larq compute engine

t-kuha edited this page May 17, 2020 · 3 revisions

Environment

  • Larq compute engine: v.0.9.5
  • TensorFlow: v2.2.0
  • Vitis: 2019.2

Get source

$ wget https://github.com/larq/compute-engine/archive/v0.3.0.tar.gz
$ wget https://github.com/tensorflow/tensorflow/archive/v2.2.0.tar.gz

$ tar xf v0.3.0.tar.gz
$ tar xf v2.2.0.tar.gz -C compute-engine-0.3.0/third_party/tensorflow/ --strip-components=1

Edit source

  • Edit larq_compute_engine/tflite/build_make/build_lce.sh

    • Before
    make -j ${NUM_HYPERTHREADS} TARGET=aarch64 -C "${ROOT_DIR}" -f ${LCE_MAKEFILE}
    • After
    make -j ${NUM_HYPERTHREADS} TARGET=linux TARGET_ARCH=aarch64 TARGET_TOOLCHAIN_PREFIX=aarch64-linux-gnu- -C "${ROOT_DIR}" -f ${LCE_MAKEFILE}

Build

$ larq_compute_engine/tflite/build_make/build_lce.sh --aarch64
  • Output files will be in third_party/tensorflow/tensorflow/lite/tools/make/gen/linux_aarch64

Run test

root@u96v2_vai:~# ./linux_aarch64/bin/lce_minimal ./quicknet.tflite                           
=== Pre-invoke Interpreter State ===
Interpreter has 131 tensors and 46 nodes
Inputs: 0
Outputs: 100

Tensor   0 input_1              kTfLiteFloat32  kTfLiteArenaRw     602112 bytes ( 0.6 MB)  1 224 224 3
Tensor   1 quicknet/dense/BiasAdd/ReadVariableOp kTfLiteFloat32   kTfLiteMmapRo       4000 bytes ( 0.0 MB)0
Tensor   2 quicknet/flatten/Const kTfLiteInt32   kTfLiteMmapRo          8 bytes ( 0.0 MB)  2
Tensor   3 quicknet/conv2d/Conv2D kTfLiteFloat32   kTfLiteMmapRo         32 bytes ( 0.0 MB)  8

...

Node  43 Operator Builtin Code  22 RESHAPE
  Inputs: 97 2
  Outputs: 98
Node  44 Operator Builtin Code   9 FULLY_CONNECTED
  Inputs: 98 28 1
  Outputs: 99
Node  45 Operator Builtin Code  25 SOFTMAX
  Inputs: 99
  Outputs: 100


=== Post-invoke Interpreter State ===
Interpreter has 131 tensors and 46 nodes
Inputs: 0
Outputs: 100

Tensor   0 input_1              kTfLiteFloat32  kTfLiteArenaRw     602112 bytes ( 0.6 MB)  1 224 224 3
Tensor   1 quicknet/dense/BiasAdd/ReadVariableOp kTfLiteFloat32   kTfLiteMmapRo       4000 bytes ( 0.0 MB)0
Tensor   2 quicknet/flatten/Const kTfLiteInt32   kTfLiteMmapRo          8 bytes ( 0.0 MB)  2
Tensor   3 quicknet/conv2d/Conv2D kTfLiteFloat32   kTfLiteMmapRo         32 bytes ( 0.0 MB)  8

...

Node  43 Operator Builtin Code  22 RESHAPE
  Inputs: 97 2
  Outputs: 98
Node  44 Operator Builtin Code   9 FULLY_CONNECTED
  Inputs: 98 28 1
  Outputs: 99
Node  45 Operator Builtin Code  25 SOFTMAX
  Inputs: 99
  Outputs: 100