이 페이지에서는 ARM 기반 컴퓨터용 LiteRT 라이브러리를 빌드하는 방법을 설명합니다.
LiteRT는 두 가지 빌드 시스템을 지원하며 각 빌드 시스템에서 지원되는 기능은 동일하지 않습니다. 다음 표를 확인하여 적절한 빌드 시스템을 선택하세요.
| 기능 | 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 빌드 시스템을 사용하는 것이 좋습니다. Bazel과 통합된 ARM GCC 8.3 도구 모음을 사용하여 ARM32/64 공유 라이브러리를 빌드합니다.
| 타겟 아키텍처 | Bazel 구성 | 호환 기기 |
|---|---|---|
| armhf (ARM32) | --config=elinux_armhf | 32비트 Raspberry Pi OS가 설치된 RPI3, RPI4 |
| 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 및 Abseil의 헤더 파일이 필요합니다.
기타
툴체인으로 다른 Bazel 타겟을 빌드할 수도 있습니다. 다음은 유용한 타겟입니다.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image