This page describes how to build the LiteRT tflite_runtime
Python
library for x86_64 and various ARM devices.
The following instructions have been tested on Ubuntu 16.04.3 64-bit PC (AMD64) , macOS Catalina (x86_64) and TensorFlow devel Docker image tensorflow/tensorflow:devel.
Prerequisites
You need CMake installed and a copy of the TensorFlow source code. Please check Build LiteRT with CMake page for the details.
To build the PIP package for your workstation, you can run the following commands.
PYTHON=python3 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh native
ARM cross compilation
For ARM cross compilation, it's recommended to use Docker since it makes easier
to setup cross build environment. Also you needs a target
option to figure out
the target architecture.
There is a helper tool in Makefile tensorflow/lite/tools/pip_package/Makefile
available to invoke a build command using a pre-defined Docker container. On a
Docker host machine, you can run a build command as followings.
make -C tensorflow/lite/tools/pip_package docker-build \
TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>
Available target names
tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh
script needs
a target name to figure out target architecture. Here is the list of supported
targets.
Target | Target architecture | Comments |
---|---|---|
armhf | ARMv7 VFP with Neon | Compatible with Raspberry Pi 3 and 4 |
rpi0 | ARMv6 | Compatible with Raspberry Pi Zero |
aarch64 | aarch64 (ARM 64-bit) | Coral Mendel Linux 4.0 Raspberry Pi with Ubuntu Server 20.04.01 LTS 64-bit |
native | Your workstation | It builds with "-mnative" optimization |
default | Your workstation | Default target |
Build examples
Here are some example commands you can use.
armhf target for Python 3.7
make -C tensorflow/lite/tools/pip_package docker-build \
TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7
aarch64 target for Python 3.8
make -C tensorflow/lite/tools/pip_package docker-build \
TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8
How to use a custom toolchain?
If the generated binaries are not compatible with your target, you need to use
your own toolchain or provide custom build flags. (Check
this
to understand your target environment) In that case, you need to modify
tensorflow/lite/tools/cmake/download_toolchains.sh
to use your own toolchain.
The toolchain script defines the following two variables for the
build_pip_package_with_cmake.sh
script.
Variable | Purpose | example |
---|---|---|
ARMCC_PREFIX |
defines toolchain prefix | arm-linux-gnueabihf- |
ARMCC_FLAGS |
compilation flags | -march=armv7-a -mfpu=neon-vfpv4 |