이 페이지에서는 다양한 ARM용 LiteRT 라이브러리를 빌드하는 방법을 설명합니다. 기기에서 사용할 수 있습니다.
다음 지침은 Ubuntu 16.04.3 64비트 PC (AMD64)에서 테스트되었습니다. , TensorFlow 개발 Docker 이미지 tensorflow/tensorflow:devel.
기본 요건
CMake를 설치하고 TensorFlow 소스 코드를 다운로드해야 합니다. 다음을 확인하세요. CMake로 LiteRT 빌드 페이지를 참조하세요.
대상 환경 확인
다음 예는 Raspberry Pi OS, Ubuntu Server 20.04 LTS에서 테스트되었습니다. Mendel Linux 4.0입니다. 대상 glibc 버전 및 CPU에 따라 다름 기능을 이해하려면 다른 버전의 도구 모음을 사용하고 매개변수입니다.
glibc 버전 확인
ldd --version
ldd (Debian GLIBC 2.28-10) 2.28 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Written by Roland McGrath and Ulrich Drepper.
ABI 호환성 확인
타겟이 ARM 32비트인 경우 VFP에 따라 두 가지 ABI를 사용할 수 있습니다. 있습니다. armhf 및 armel 이 문서에서는 armhf를 보여줍니다. 예를 들어 armel 대상에 다른 도구 모음을 사용해야 합니다.
CPU 기능 확인
ARMv7의 경우 대상에서 지원되는 VFP 버전과 NEON 가용성을 알아야 합니다.
cat /proc/cpuinfo
processor : 0 model name : ARMv7 Processor rev 3 (v7l) BogoMIPS : 108.00 Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xd08 CPU revision : 3
AArch64용 빌드 (ARM64)
이 안내는 다음과 호환되는 AArch64 바이너리를 빌드하는 방법을 보여줍니다. Coral Mendel Linux 4.0, Raspberry Pi( Ubuntu Server 20.04.01 LTS 64비트 합니다.
도구 모음 다운로드
다음 명령어는 gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu
도구 모음을 설치합니다.
${HOME}/도구 모음 아래에 있습니다.
curl -LO https://storage.googleapis.com/mirror.tensorflow.org/developer.arm.com/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz
mkdir -p ${HOME}/toolchains
tar xvf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz -C ${HOME}/toolchains
CMake 실행
ARMCC_PREFIX=${HOME}/toolchains/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin/aarch64-linux-gnu-
ARMCC_FLAGS="-funsafe-math-optimizations"
cmake -DCMAKE_C_COMPILER=${ARMCC_PREFIX}gcc \
-DCMAKE_CXX_COMPILER=${ARMCC_PREFIX}g++ \
-DCMAKE_C_FLAGS="${ARMCC_FLAGS}" \
-DCMAKE_CXX_FLAGS="${ARMCC_FLAGS}" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_PROCESSOR=aarch64 \
../tensorflow/lite/
ARMv7 NEON용 빌드가 사용 설정됨
이 명령어는 VFPv4 및 NEON 지원 바이너리로 ARMv7을 빌드하는 방법을 보여줍니다. Raspberry Pi 3 및 4와 호환됩니다.
도구 모음 다운로드
이 명령어는 gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
를 설치합니다.
툴체인에 대한 자세한 내용을 확인할 수 있습니다.
curl -LO https://storage.googleapis.com/mirror.tensorflow.org/developer.arm.com/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz
mkdir -p ${HOME}/toolchains
tar xvf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz -C ${HOME}/toolchains
CMake 실행
ARMCC_FLAGS="-march=armv7-a -mfpu=neon-vfpv4 -funsafe-math-optimizations -mfp16-format=ieee"
ARMCC_PREFIX=${HOME}/toolchains/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
cmake -DCMAKE_C_COMPILER=${ARMCC_PREFIX}gcc \
-DCMAKE_CXX_COMPILER=${ARMCC_PREFIX}g++ \
-DCMAKE_C_FLAGS="${ARMCC_FLAGS}" \
-DCMAKE_CXX_FLAGS="${ARMCC_FLAGS}" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_PROCESSOR=armv7 \
../tensorflow/lite/
Raspberry Pi Zero (ARMv6)용 빌드
이 명령은 호환되는 ARMv6 바이너리를 빌드하는 방법을 보여줍니다. Raspberry Pi Zero라고 합니다.
도구 모음 다운로드
이 명령어는 gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
를 설치합니다.
툴체인에 대한 자세한 내용을 확인할 수 있습니다.
curl -LO https://storage.googleapis.com/mirror.tensorflow.org/developer.arm.com/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz
mkdir -p ${HOME}/toolchains
tar xvf gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf.tar.xz -C ${HOME}/toolchains
CMake 실행
ARMCC_FLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=hard -funsafe-math-optimizations"
ARMCC_PREFIX=${HOME}/toolchains/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
cmake -DCMAKE_C_COMPILER=${ARMCC_PREFIX}gcc \
-DCMAKE_CXX_COMPILER=${ARMCC_PREFIX}g++ \
-DCMAKE_C_FLAGS="${ARMCC_FLAGS}" \
-DCMAKE_CXX_FLAGS="${ARMCC_FLAGS}" \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_PROCESSOR=armv6 \
-DTFLITE_ENABLE_XNNPACK=OFF \
../tensorflow/lite/