本页介绍了如何为基于 ARM 的 LiteRT 库构建 计算机。
LiteRT 支持两种构建系统,每种系统支持的功能 不相同请查看下表以选择正确的 build 系统。
功能 | Bazel | CMake |
---|---|---|
预定义的工具链 | armhf、aarch64 | armel, armhf, aarch64 |
自定义工具链 | 更难使用 | 简单易用 |
选择 TF 操作 | 支持 | 不支持 |
GPU 代理 | 仅适用于 Android | 任何支持 OpenCL 的平台 |
XNNPack | 支持 | 支持 |
Python Wheel | 支持 | 支持 |
C API | 支持 | 支持 |
C++ API | 支持 Bazel 项目 | 支持 CMake 项目 |
使用 CMake 对 ARM 进行交叉编译
如果您有 CMake 项目或想要使用自定义工具链, 最好使用 CMake 进行交叉编译。有一个单独的 使用 CMake 对 LiteRT 进行交叉编译 页面。
使用 Bazel 对 ARM 进行交叉编译
如果您有 Bazel 项目,或者想要使用 TF 操作,最好使用 Bazel 构建系统您将使用 ARM GCC 8.3 工具链 使用 Bazel 构建 ARM32/64 共享库。
目标架构 | Bazel 配置 | 兼容的设备 |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3、RPI4 和 32 位 Raspberry Pi 操作系统 |
AArch64 (ARM64) | --config=elinux_aarch64 | Coral、RPI4 和 Ubuntu 64 位 |
以下说明已在 Ubuntu 16.04.3 64 位 PC (AMD64) 上进行了测试 和 TensorFlow devel Docker 映像 tensorflow/tensorflow:devel.
如需使用 Bazel 交叉编译 LiteRT,请按以下步骤操作:
第 1 步:安装 Bazel
Bazel 是 TensorFlow 的主要构建系统。安装最新版本的 Bazel 构建系统。
第 2 步:克隆 TensorFlow 代码库
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
第 3 步:构建 ARM 二进制文件
C 库
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
您可以在以下位置找到共享库:
bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
。
查看 LiteRT C API 可了解详情。
C++ 库
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
您可以在以下位置找到共享库:
bazel-bin/tensorflow/lite/libtensorflowlite.so
。
目前,没有直接的方法可以提取所需的所有头文件, 因此您必须将 tensorflow/lite/ 中的所有头文件 存储库此外,您还需要来自 FlatBuffers 和 Abseil。
其他
您还可以使用工具链构建其他 Bazel 目标。以下是一些有用的 目标。
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image