Path: blob/master/site/es-419/lite/guide/build_cmake_arm.md
25118 views
Compilación cruzada TensorFlow Lite con CMake
Esta página describe cómo generar la librería TensorFlow Lite para varios dispositivos ARM.
Las siguientes instrucciones han sido analizadas en Ubuntu 16.04.3 64-bit PC (AMD64) y la imagen docker devel TensorFlow devel tensorflow/tensorflow:devel.
Nota: Esta función está disponible desde la versión 2.4.
Requisitos previos
Necesita tener instalado CMake y descargado el código fuente de TensorFlow. Visite la página Generar TensorFlow Lite con CMake para más detalles.
Verifique su entorno destino
Los siguientes ejemplos han sido analizados bajo Raspberry Pi OS, Ubuntu Server 20.04 LTS y Mendel Linux 4.0. Dependiendo de la versión glibc de su destino y de las capacidades de su CPU, es posible que tenga que usar una versión diferente de cadena de herramientas y de los parámetros de compilación.
Comprobación de la versión glibc
ldd (Debian GLIBC 2.28-10) 2.28 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.
Comprobación de la compatibilidad de ABI
Si su destino es ARM 32-bit, hay dos ABI disponibles dependiendo de la disponibilidad de VFP. armhf y armel. Este documento muestra un ejemplo armhf, necesita usar una cadena de herramientas diferente para destinos armel.
Comprobar la compatibilidad de la CPU
Para ARMv7, debe conocer la versión de VFP soportada por el destino y la disponibilidad de NEON.
processor : 0 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 108.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3
Generación para AArch64 (ARM64)
Estas instrucciones muestran cómo generar un binario AArch64 compatible con Coral Mendel Linux 4.0, Raspberry Pi (con Ubuntu Server 20.04.01 LTS 64-bit instalado).
Descargar la cadena de herramientas
Estos comandos instalan la cadena de herramientas gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu
bajo ${HOME}/toolchains.
Nota: Los binarios generados con GCC 8.3 requieren glibc 2.28 o superior. Si su destino tiene una versión de glibc inferior, deberá usar una cadena de herramientas GCC más antigua.
Ejecutar CMake
Nota: Puede habilitar el delegado de GPU con -DTFLITE_ENABLE_GPU=ON
si su dispositivo de destino admite OpenCL 1.2 o superior.
Generar para ARMv7 NEON habilitado
Esta instrucción muestra cómo generar ARMv7 con VFPv4 y NEON habilitado binario que es compatible con Raspberry Pi 3 y 4.
Descargar la cadena de herramientas
Estos comandos instalan la cadena de herramientas gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
en ${HOME}/toolchains.
Nota: Los binarios generados con GCC 8.3 requieren glibc 2.28 o superior. Si su destino tiene una versión de glibc inferior, deberá usar una cadena de herramientas GCC más antigua.
Ejecutar CMake
Nota: Dado que la arquitectura ARMv7 es diversa, puede que necesite actualizar ARMCC_FLAGS
para los perfiles de su dispositivo de destino. Por ejemplo, al compilar con XNNPACK activado (es decir, XNNPACK=ON
) en Tensorflow Lite 2.8, añada -mfp16-format=ieee
a ARMCC_FLAGS
.
Generar para Raspberry Pi Zero (ARMv6)
Esta instrucción muestra cómo generar un binario ARMv6 compatible con la Raspberry Pi Zero.
Descargar la cadena de herramientas
Estos comandos instalan la cadena de herramientas gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
en ${HOME}/toolchains.
Nota: Los binarios generados con GCC 8.3 requieren glibc 2.28 o superior. Si su destino tiene una versión de glibc inferior, deberá usar una cadena de herramientas GCC más antigua.
Ejecutar CMake
Nota: XNNPACK está desactivado ya que no hay soporte para NEON.