ARM 보드용 LiteRT 빌드

이 페이지에서는 ARM 기반용 LiteRT 라이브러리를 빌드하는 방법을 설명합니다. 있습니다.

LiteRT는 두 가지 빌드 시스템과 각 빌드 시스템의 지원되는 기능을 지원합니다. 빌드 시스템이 동일하지 않습니다. 다음 표를 확인하여 올바른 빌드를 선택하세요. 있습니다.

기능 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비트 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의 tensorflow/lite/ 에 모든 헤더 파일을 포함해야 합니다. 저장소 또한 FlatBuffers와 압세일.

기타

도구 모음을 사용하여 다른 Bazel 대상을 빌드할 수도 있습니다. 몇 가지 유용한 있습니다

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