En esta página, se describe cómo compilar las bibliotecas LiteRT para apps basadas en ARM. en computadoras.
LiteRT admite dos sistemas de compilación y funciones compatibles de cada uno sistema de compilación no son idénticos. Consulta la siguiente tabla para elegir una compilación adecuada en un sistema de archivos.
Función | Bazel | CMake |
---|---|---|
Cadenas de herramientas predefinidas | armhf, aarch64 | armel, armhf, aarch64 |
Cadenas de herramientas personalizadas | más difícil de usar | fácil de usar |
Selecciona TF ops | compatible | not supported |
Delegado de GPU | solo disponible para Android | cualquier plataforma que admita OpenCL |
XNNPack | compatible | compatible |
Python Wheel | compatible | compatible |
API de C | compatible | admitido |
API de C++ | compatible con proyectos de Bazel | compatible con proyectos de CMake |
Compilación cruzada para ARM con CMake
Si tienes un proyecto de CMake o si quieres usar una cadena de herramientas personalizada, usar CMake para la compilación cruzada. Hay una sección Compilación cruzada LiteRT con CMake disponible para ello.
Compilación cruzada para ARM con Bazel
Si tienes un proyecto de Bazel o si quieres usar operaciones de TF, es mejor que utilices Bazel. de compilación. Usarás la función Cadenas de herramientas de ARM GCC 8.3 con Bazel para compilar una biblioteca compartida ARM32/64.
Arquitectura de destino | Configuración de Bazel | Dispositivos compatibles |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 de 32 bits Raspberry Pi OS |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 con Ubuntu 64 poco |
Las siguientes instrucciones se probaron en Ubuntu 16.04.3 64 bits PC (AMD64) y TensorFlow. tensorflow/tensorflow:devel.
Para compilar LiteRT con Bazel, sigue estos pasos:
Paso 1: Instala Bazel
Bazel es el sistema de compilación principal de TensorFlow. Instala la última versión de el sistema de compilación de Bazel.
Paso 2: Clona el repositorio de TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Paso 3: Compila el objeto binario ARM
Biblioteca C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Puedes encontrar una biblioteca compartida en las siguientes ubicaciones:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
Cheque API de LiteRT C para obtener más detalles.
Biblioteca C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Puedes encontrar una biblioteca compartida en las siguientes ubicaciones:
bazel-bin/tensorflow/lite/libtensorflowlite.so
Actualmente, no hay una forma directa de extraer todos los archivos de encabezado necesarios. por lo que debes incluir todos los archivos de encabezado en tensorflow/lite/ de TensorFlow en un repositorio de confianza. Además, necesitarás archivos de encabezados de FlatBuffers y Arábseil.
Etcétera
También puedes compilar otros destinos de Bazel con la cadena de herramientas. Estos son algunos ejemplos objetivos.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image