本頁說明如何建構以 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