Esta página descreve como criar as bibliotecas LiteRT para computadores baseados em ARM.
O LiteRT é compatível com dois sistemas de build, e os recursos disponíveis em cada um deles não são idênticos. Confira a tabela a seguir para escolher um sistema de build adequado.
| Recurso | Bazel | CMake |
|---|---|---|
| Conjuntos de ferramentas predefinidos | armhf, aarch64 | armel, armhf, aarch64 |
| Conjuntos de ferramentas personalizados | mais difícil de usar | fácil de usar |
| Selecionar operações do TF | suportado | not supported |
| Delegado de GPU | disponível apenas para Android | qualquer plataforma compatível com OpenCL |
| XNNPack | suportado | suportado |
| Python Wheel | suportado | suportado |
| API C | suportado | compatível |
| API C++ | compatível com projetos do Bazel | compatível com projetos do CMake |
Compilação cruzada para ARM com CMake
Se você tiver um projeto CMake ou quiser usar um conjunto de ferramentas personalizado, é melhor usar o CMake para a compilação cruzada. Há uma página separada Compilação cruzada LiteRT com CMake disponível para isso.
Compilação cruzada para ARM com o Bazel
Se você tiver um projeto do Bazel ou quiser usar operações do TF, é melhor usar o sistema de build do Bazel. Você vai usar os conjuntos de ferramentas ARM GCC 8.3 integrados com o Bazel para criar uma biblioteca compartilhada ARM32/64.
| Arquitetura de destino | Configuração do Bazel | Dispositivos compatíveis |
|---|---|---|
| armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 com Raspberry Pi OS de 32 bits |
| AArch64 (ARM64) | --config=elinux_aarch64 | Coral, RPI4 com Ubuntu 64 bits |
As instruções a seguir foram testadas em um PC Ubuntu 16.04.3 de 64 bits (AMD64) e na imagem do Docker de desenvolvimento do TensorFlow tensorflow/tensorflow:devel.
Para fazer a compilação cruzada do LiteRT com o Bazel, siga estas etapas:
Etapa 1. Instalar o Bazel
O Bazel é o principal sistema de build do TensorFlow. Instale a versão mais recente do sistema de build do Bazel.
Etapa 2. Clonar o repositório do TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Etapa 3. Criar binário ARM
Biblioteca C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Você pode encontrar uma biblioteca compartilhada em:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so.
Confira os detalhes na página da API C do LiteRT.
Biblioteca C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Você pode encontrar uma biblioteca compartilhada em:
bazel-bin/tensorflow/lite/libtensorflowlite.so.
No momento, não há uma maneira simples de extrair todos os arquivos de cabeçalho necessários. Por isso, inclua todos os arquivos de cabeçalho em tensorflow/lite/ do repositório do TensorFlow. Além disso, você vai precisar de arquivos de cabeçalho do FlatBuffers e do Abseil.
Etc
Também é possível criar outros destinos do Bazel com a cadeia de ferramentas. Confira alguns destinos úteis.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image