이 페이지에서는 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