建構 ARM 主機適用的 LiteRT

本頁說明如何建構以 ARM 為基礎的 LiteRT 程式庫 電腦。

LiteRT 支援這兩種建構系統和 並非完全相同請參閱下表,挑選合適的版本 有些人會將 Cloud Storage 視為檔案系統 但實際上不是

功能 Bazel CMake
預先定義的工具鍊 armhf, aarch64 Armel, armhf, aarch64
自訂工具鍊 更難使用 簡單易用
選取 TF 作業 可支援 不支援
GPU 委派 (僅適用於 Android) 所有支援 OpenCL 的平台
XNNPack 可支援 可支援
Python 滾輪 可支援 可支援
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 OS
AArch64 (ARM64) --config=elinux_aarch64 Coral,RPI4 搭配 Ubuntu 64 位元

下列操作說明已在 Ubuntu 16.04.3 64 位元電腦 (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 中 tensorflow/lite/ 的所有標頭檔案 Cloud Storage 也提供目錄同步處理功能此外,您也會需要 FlatBuffers 和 Abseil。

其他資訊

您也可以使用工具鍊建構其他 Bazel 目標。以下是一些實用的 目標。

  • //tensorflow/lite/tools/benchmark:benchmark_model
  • //tensorflow/lite/examples/label_image:label_image