
Qualcomm TensorFlow Lite SDK 소프트웨어 사용자 가이드

개정 내역
| 개정 | 날짜 | 설명 |
| AA | 2023년 XNUMX월 | 최초 릴리스 |
| AB | 2023년 XNUMX월 |
|
Qualcomm TFLite SDK 도구 소개
Qualcomm TensorFlow Lite 소프트웨어 개발 키트(Qualcomm TFLite SDK) 도구는 애플리케이션 개발자가 적합한 AI 애플리케이션을 개발하거나 실행할 수 있도록 지원하는 기기 내 인공 지능(AI) 추론을 위한 TensorFlow Lite 프레임워크를 제공합니다.
이 문서에서는 독립형 Qualcomm TFLite SDK를 컴파일하고 개발 환경을 설정하기 위한 단계별 지침을 제공합니다. 이를 통해 다음을 포함하는 개발자 워크플로가 가능해집니다.
- 개발자가 Qualcomm TFLite SDK를 컴파일할 수 있는 빌드 환경 설정
- 독립형 Qualcomm TFLite SDK 애플리케이션 개발
지원을 받으려면 https://를 참조하세요.www.qualcomm.com/지원하다. 다음 그림은 Qualcomm TFLite SDK 워크플로를 요약한 것입니다.
그림 1-1 Qualcomm TFLite SDK 워크플로
이 도구에는 플랫폼 SDK와 구성이 필요합니다. file (JSON 형식)을 사용하여 Qualcomm TFLite SDK 아티팩트를 생성합니다.
멀티미디어, AI 및 컴퓨터 비전(CV) 하위 시스템을 사용하여 엔드투엔드 애플리케이션을 구축하려면 Qualcomm Intelligent Multimedia SDK(QIM SDK) 빠른 시작 가이드(80-50450-51)를 참조하세요.
표에는 CodeLinaro 릴리스와 Qualcomm TFLite SDK 버전 매핑이 나와 있습니다. tag:
표 1-1 릴리스 정보

| 퀄컴 TFLite SDK 버전 | CodeLinero 릴리스 tag |
| V1.0 | 퀄컴 TFLITE.SDK.1.0.r1-00200-TFLITE.0 |
표 1-2 지원되는 Qualcomm TFLite SDK 버전
| 퀄컴 TFLite SDK 버전 | 지원되는 소프트웨어 제품 | 지원되는 TFLite 버전 |
| V1.0 | QCS8550.LE.1.0 |
|
|
||
|
||
|
||
|
||
|
참고문헌
표 1-3 관련 문서
| 제목 | 숫자 |
| 퀄컴 | |
| 00067.1 QCS8550.LE.1.0용 릴리스 노트 | RNO-230830225415 |
| Qualcomm 지능형 멀티미디어 SDK(QIM SDK) 빠른 시작 가이드 | 80-50450-51 |
| Qualcomm 지능형 멀티미디어 SDK(QIM SDK) 참조 | 80-50450-50 |
| 자원 | |
| https://source.android.com/docs/setup/start/initializing | – |
표 1-4 약어 및 정의
| 약어 또는 용어 | 정의 |
| AI | 인공지능 |
| 바이오스 | 기본 입출력 시스템 |
| CV | 컴퓨터 비전 |
| 아이피케이(IPK) | Itsy 패키지 file |
| QIM SDK | Qualcomm 지능형 멀티미디어 소프트웨어 개발 키트 |
| 소프트웨어 개발 키트(SDK) | 소프트웨어 개발 키트 |
| TFLite | 텐서플로우 라이트 |
| 엑스엔엔 | Xth 가장 가까운 이웃 |
Qualcomm TFLite SDK 도구용 빌드 환경 설정
Qualcomm TFLite SDK 도구는 소스 형식으로 출시됩니다. 따라서 이를 컴파일하기 위한 빌드 환경을 설정하는 것은 필수이지만 일회성 설정입니다.
필수 조건
- Linux 호스트 시스템에 대한 sudo액세스 권한이 있는지 확인하십시오.
- Linux 호스트 버전이 Ubuntu 18.04 또는 Ubuntu 20.04인지 확인하세요.
- 호스트 시스템의 최대 사용자 감시 및 최대 사용자 인스턴스를 늘립니다.
- /etc/sysctl.conf에 다음 명령줄을 추가하고 호스트를 재부팅합니다. fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288
필수 호스트 패키지 설치
호스트 패키지는 Linux 호스트 시스템에 설치됩니다.
다음 명령을 실행하여 호스트 패키지를 설치하십시오. $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Ubuntu 18.04 이상의 경우:
$ sudo apt-get install git-core gnupg flex bison 빌드 필수 zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5- dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzipfontconfig
자세한 내용은 https://s를 참조하세요.ource.android.com/docs/setup/시작/초기화.
도커 환경 설정
도커는 소프트웨어를 구축, 개발, 테스트 및 제공하는 데 사용되는 플랫폼입니다. SDK를 컴파일하려면 Linux 호스트 시스템에서 docker를 구성해야 합니다.
Linux 호스트 시스템에서 CPU 가상화가 활성화되어 있는지 확인하십시오. 활성화되지 않은 경우 다음을 수행하여 BIOS(기본 입/출력 시스템) 구성 설정에서 활성화합니다.
- BIOS에서 가상화를 활성화합니다.
a. 시스템이 부팅될 때 F1 또는 F2를 눌러 BIOS로 들어갑니다. BIOS 창이 표시됩니다.
b. 고급 탭으로 전환하세요.
c. CPU 구성 섹션에서 가상화 기술을 활성화로 설정합니다.
a. F12를 눌러 저장하고 종료한 다음 시스템을 다시 시작합니다.
이러한 단계가 작동하지 않으면 시스템 공급자의 특정 지침에 따라 가상화를 활성화하십시오. - Docker의 이전 인스턴스를 제거합니다.
$ sudo apt docker-desktop 제거
$ rm -r $HOME/.docker/desktop
$ sudo rm /usr/local/bin/com.docker.cli
$ sudo apt purge docker-desktop - Docker 원격 저장소를 설정합니다.
$ sudo apt-get 업데이트 $ sudo apt-get 설치 ca 인증서 curl gnupg lsb-release $ sudo mkdir -p /etc/apt/keyrings $ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg — dearmor -o /etc/apt/keyrings/docker.gpg $ echo “deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/ keyrings/ docker.gpg] https:// download.docker.com/linux/ubuntu $(lsb_release -cs) 안정” | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null - 도커 엔진을 설치합니다:
$ sudo apt-get 업데이트 $ sudo apt-get 설치 docker-ce docker-ce-cli - Docker 그룹에 사용자를 추가합니다.
$ sudo groupadd docker $ sudo usermod -aG docker $USER - 시스템을 재부팅하세요.
플랫폼 SDK 생성
플랫폼 SDK는 Qualcomm TFLite SDK 도구를 컴파일하기 위한 필수 요구 사항입니다. Qualcomm TFLite SDK에 필요한 모든 필수 플랫폼 종속성을 제공합니다.
플랫폼 SDK를 생성하려면 다음을 수행하십시오.
- 선호하는 소프트웨어 제품에 대한 빌드를 만듭니다.
QCS8550.LE.1.0 릴리스를 빌드하는 지침은 릴리스 노트에 제공됩니다. 릴리스 정보에 액세스하려면 참고 자료를 참조하세요.
이미지가 이전에 빌드된 경우 2단계를 실행한 다음 클린 빌드를 만듭니다. - 다음 명령을 실행하여 사용자 공간 이미지와 플랫폼 SDK를 빌드합니다.
QCS8550.LE.1.0의 경우 kalama.conf의 MACHINE_FEATURES에 시스템 기능 qti-tflite-delegate를 추가합니다. file 릴리스 노트의 지침에 따라 빌드 환경을 소싱합니다.
빌드에서 사용자 공간 이미지를 생성한 후 다음 명령을 실행하여 플랫폼 SDK를 생성합니다.
$ bitbake -fc populate_sdk qti-로봇공학-이미지
Qualcomm TFLite SDK 도구 구축 - 개발자 워크플로
Qualcomm TFLite SDK 도구 워크플로를 사용하려면 개발자가 구성을 제공해야 합니다. file 유효한 입력 항목이 있습니다. tflite-tools 프로젝트의 도우미 셸 스크립트(Qualcomm TFLite SDK 소스 트리에 있음)는 Qualcomm TFLite SDK 워크플로에 사용할 수 있는 셸 환경을 설정하는 도우미 유틸리티 기능을 제공합니다.
개발자는 컨테이너 내에 Qualcomm TFLite SDK 프로젝트를 빌드하고 tflite-tools에서 제공하는 유틸리티를 사용하여 아티팩트를 생성합니다.
Qualcomm TFLite SDK 컨테이너가 구축된 후 개발자는 지속적인 개발을 위해 컨테이너에 연결하고 컨테이너 셸 환경의 도우미 유틸리티를 사용할 수 있습니다.
- USB/adb를 통해 Linux 호스트에 연결된 Qualcomm 장치에 Qualcomm TFLite SDK 아티팩트를 설치하는 규정이 있습니다.
- Qualcomm TFLite SDK 아티팩트를 컨테이너에서 Qualcomm 장치가 연결된 다른 호스트 시스템으로 복사하는 기능도 있습니다.

다음 그림에는 Qualcomm TFLite SDK 빌드를 위한 도우미 스크립트를 사용하여 컨테이너 빌드 환경을 설정한 후 사용할 수 있는 유틸리티 세트가 나열되어 있습니다.

그림은 유틸리티 실행 순서를 보여줍니다.
그림 4-3 호스트의 유틸리티 순서

Qualcomm TFLite SDK 동기화 및 빌드
Qualcomm TFLite SDK는 Docker 이미지가 생성될 때 컴파일됩니다. Qualcomm TFLite SDK를 동기화하고 빌드하려면 다음을 수행하세요.
- 호스트에 디렉터리 생성 file Qualcomm TFLite SDK 작업 공간을 동기화하는 시스템입니다. 을 위한
examp르 : $mkdir $cd - CodeLinaro에서 Qualcomm TFLite SDK 소스 코드를 가져옵니다.
$ repo init -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ 매니페스트.git –repo-branch=qc/stable –repo-url=git://git.quicinc.com/ tools/repo.git -m TFLITE.SDK.1.0.r1-00200-TFLITE.0.xml -b 릴리스 && repo sync -qc –no-tags -j - 호스트에 디렉터리 생성 file docker에 마운트할 수 있는 시스템입니다. 예를 들어ample: mkdir-p / 이 디렉터리는 Linux 호스트 시스템의 어느 곳에서나 생성될 수 있으며 Qualcomm TFLite SDK 프로젝트가 동기화되는 위치에 의존하지 않습니다. 컨테이너 내에서 워크플로가 완료된 후 이 단계에서 생성된 디렉터리에서 Qualcomm TFLite SDK 아티팩트를 찾을 수 있습니다.
- JSON 구성 편집 file 다음 항목과 함께 /tflite-tools/targets/le-tflite-tools-builder.json에 있습니다.
"이미지": "tflite-tools-builder", "Device_OS": "le", "Additional_tag": "", "TFLite_Version": "2.11.1", "대표자": { "Hexagon_delegate": "OFF", "Gpu_delegate": "ON", "Xnnpack_delegate": "ON" }, "TFLite_rsync_destination": " /”, “SDK_path”: “/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>”, “SDK_shell_file”: “”, “Base_Dir_Location”: “” }
json 구성에 언급된 항목에 대한 자세한 내용은 file, Docker.md 추가 정보를 참조하세요. file /tflite-tools/에 있습니다.
메모 QCS8550의 경우 Qualcomm® Hexagon™ DSP 델리게이트가 지원되지 않습니다. - 환경을 설정하기 위한 스크립트를 소싱합니다.
$CD /tflite-tools $ 소스 ./scripts/host/docker_env_setup.sh - Qualcomm TFLite SDK Docker 이미지를 빌드합니다. $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json 빌드 설정이 실패하면 Docker 설정 문제 해결을 참조하세요. 성공적으로 완료되면 다음 메시지가 표시됩니다. "상태:이미지 빌드가 성공적으로 완료되었습니다!!" 이 단계를 실행하면 Qualcomm TFLite SDK도 빌드됩니다.
- Qualcomm TFLite SDK Docker 컨테이너를 실행합니다. 그러면 컨테이너가 다음과 같이 시작됩니다. tags JSON 구성에서 제공 file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
- 이전 단계에서 시작된 컨테이너에 연결합니다.
$ 도커 연결
Qualcomm TFLite SDK가 컴파일되었으며 아티팩트를 배포할 준비가 되었습니다.
QIM SDK TFLite 플러그인을 생성하는 데 사용됩니다.
장치를 호스트에 연결하고 아티팩트를 배포]
컴파일 후 장치를 호스트에 연결하고 배포하는 두 가지 메커니즘이 있습니다.
Qualcomm TFLite SDK 아티팩트.
- 로컬 Linux 호스트에 연결된 장치:
개발자는 장치를 워크스테이션에 연결하고 컨테이너의 Qualcomm TFLite SDK 아티팩트를 장치(QCS8550)에 직접 설치합니다. - 원격 호스트에 연결된 장치:
개발자는 장치를 원격 워크스테이션에 연결하고 Windows 및 Linux 플랫폼에서 팩 관리자 설치 프로그램 명령을 사용하여 Qualcomm TFLite SDK 아티팩트를 장치(QCS8550)에 설치할 수 있습니다.
그림 4-4 개발자 및 원격 워크스테이션에 장치 보드 연결

워크스테이션에 장치 연결
장치는 워크스테이션에 연결되고 개발 컨테이너는 USB/adb를 통해 장치에 액세스할 수 있습니다.
그림은 s를 보여줍니다.tagQualcomm TFLite SDK 워크플로의 순서는 다음과 같습니다.

- 다음 명령을 실행하여 장치에 아티팩트를 설치합니다.
$ tflite-tools-device-준비
$ tflite-도구-장치-배포 - 아티팩트를 제거하려면 다음 명령을 실행하십시오.
$ tflite-tools-device-packages-remove
장치를 원격 시스템에 연결
장치가 원격 시스템에 연결되어 있고 Qualcomm TFLite SDK 컨테이너가 USB/ad를 통해 장치에 액세스할 수 없습니다. b.
그림은 s를 보여줍니다.tagQualcomm TFLite SDK 워크플로의 순서는 다음과 같습니다.

tflite-tools 컨테이너에서 다음 명령을 실행하여 아티팩트를 원격 시스템에 복사합니다.
장치의 패키지 관리자에 따라:
$ tflite-tools-remote-sync-ipk-rel-pkg
메모 원격 머신 정보는 JSON 구성으로 제공됩니다. file.
Windows 플랫폼용 아티팩트 설치
Qualcomm TFLite SDK 아티팩트는 원격 시스템의 운영 체제를 기반으로 장치에 설치할 수 있습니다.
Windows 플랫폼의 경우 다음을 수행합니다.
PowerShell에서는 다음 스크립트를 사용합니다. PS C:
> adb 루트 PS C:> adb 비활성화-진실 PS C:> adb 재부팅 PS C:> adb 장치 대기 PS C:> adb 루트 PS C:> adb remount PS C:> adb shell mount -o remount, rw / PS C:> adb shell “mkdir -p /tmp” PS C:> adb push /tmp 패키지가 ipk(QCS8550.LE.1.0용)인 경우 다음 명령을 사용합니다. PS C:> adb shell “ opkg –force-dependents –force-reinstall –force-overwrite 설치 /tmp/”
Linux 플랫폼용 아티팩트 설치
다음 명령을 사용하세요:
$ adb root $ adb 비활성화-verity $ adb 재부팅 $ adb wait-for-device $ adb root $ adb remount $ adb shell mount -o remount,rw / $ adb shell “mkdir -p /tmp” $ adb push /tmp If 패키지는 ipk입니다(QCS8550.LE.1.0의 경우): $ adb shell “opkg –force-dependents –force-reinstall –force-overwrite install /tmp/”
도커 이미지 정리
개발자 워크플로를 완료한 후에는 Docker 환경을 정리하여 디스크의 저장소를 확보해야 합니다. 도커를 정리하면 사용하지 않는 컨테이너와 이미지가 제거되어 디스크 공간이 확보됩니다.
Docker 이미지를 정리하려면 다음 명령을 사용하십시오.
- Linux 워크스테이션에서 다음 명령을 실행합니다.
$CD /tflite-도구 - 컨테이너를 중지합니다.
$ tflite-tools-host-stop-container ./targets/le-tflite-tools-builder.json - 컨테이너를 제거합니다:
$ tflite-tools-host-rm-container ./targets/le-tflite-tools-builder.json - 이전 Docker 이미지를 제거합니다.
$ tflite-tools-host-images-cleanup
Docker 설정 문제 해결
tflite-tools-host-build-image 명령이 Nospace left on device 메시지를 반환하는 경우 docker 디렉터리를/local/mnt로 이동합니다. 설정 문제를 해결하려면 다음을 수행하십시오.
- 기존 도커 백업 files:
$ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date + %s).tar.gz - 도커를 중지합니다.
$ 서비스 도커 중지 - 실행 중인 Docker 프로세스가 없는지 확인합니다.
$ ps 가짜 | 그렙 도커 - docker 디렉터리 구조를 확인하세요.
$ sudo ls /var/lib/docker/ - docker 디렉터리를 새 파티션으로 이동합니다.
$ mv /var/lib/docker /local/mnt/docker - 새 파티션의 docker 디렉터리에 대한 심볼릭 링크를 만듭니다.
$ ln -s /local/mnt/docker /var/lib/docker - docker 디렉터리 구조가 변경되지 않은 상태로 유지되는지 확인하세요.
$ sudo ls /var/lib/docker/ - 도커를 시작합니다:
$ 서비스 도커 시작 - docker 디렉터리를 이동한 후 모든 컨테이너를 다시 시작합니다.
Linux 워크스테이션으로 TFLite SDK 생성
TFLite SDK 워크플로는 Linux 워크스테이션을 사용하여 컨테이너 없이 활성화할 수 있습니다. 이 절차는 컨테이너 사용의 대안입니다.
Qualcomm TFLite SDK를 동기화하고 빌드하려면 다음을 수행하세요.
- 호스트에 디렉터리 생성 file Qualcomm TFLite SDK 작업 공간을 동기화하는 시스템입니다. 예를 들어amp르 :
$mkdir
$cd - CodeLinaro에서 Qualcomm TFLite SDK 소스 코드를 가져옵니다.
$ repo init -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ 매니페스트.git –repo-branch=qc/stable –repo-url=git://git.quicinc.com/ tools/repo.git -m TFLITE.SDK.1.0.r1-00200-TFLITE.0.xml -b 릴리스 && repo sync -qc –no-tags -j8 && 저장소 동기화 -qc –no-tags -j8 - 3. JSON 구성 편집 file 에 존재 /tflite-tools/targets/le-tflite-tools-builder.json 다음 항목 포함
"이미지": "tflite-tools-builder", "Device_OS": "le", "Additional_tag": "", "TFLite_Version": "2.11.1", "대표자": { "Hexagon_delegate": "OFF", "Gpu_delegate": "ON", "Xnnpack_delegate": "ON" }, "TFLite_rsync_destination": " ”, “SDK_path”: “/build-qti-distro-fullstack-perf/tmpglibc/deploy/sdk>”, “SDK_shell_file": "", "기본_방향_위치": ""
json 구성에 언급된 항목에 대한 자세한 내용은 file, Docker.md 추가 정보를 참조하세요. file ~에 /tflite-도구/.
메모 QCS8550의 경우 Hexagon DSP 델리게이트는 지원되지 않습니다. - 환경을 설정하기 위한 스크립트를 소싱합니다.
$CD /tflite-도구
$ 소스 ./scripts/host/host_env_setup.sh - Qualcomm TFLite SDK를 빌드합니다.
$ tflite-tools-setup 타겟/le-tflite-tools-builder.json - 동일한 Linux 셸에서 다음 유틸리티 명령을 실행하여 TFLite SDK 아티팩트를 수집합니다.
TFLite_rsync_destination.
$ tflite-tools-host-get-rel-package 타겟/le-tflite-tools-builder.json
$ tflite-tools-host-get-dev-package 타겟/le-tflite-tools-builder.json - 운영 체제를 기반으로 아티팩트 설치
- Windows 플랫폼의 경우 PowerShell에서 다음 스크립트를 사용합니다.
PS C:> adb 루트 PS C:> adb 비활성화-진실성 PS C:> adb 재부팅 PS C:> adb 장치 대기 PS C:> adb 루트 PS C:> adb remount PS C:> adb shell mount - o 다시 마운트, rw / PS C:> adb shell “mkdir -p /tmp” PS C:> adb push /tmp
패키지가 ipk(QCS8550.LE.1.0용)인 경우 다음 명령을 사용합니다.
PS C:> adb 쉘 "opkg –force-dependents –force-reinstall –forceoverwrite 설치 /tmp/
Linux 플랫폼의 경우 다음 스크립트를 사용합니다.
$ adb root $ adb 비활성화-verity $ adb 재부팅 $ adb 장치 대기 $ adb root $ adb remount $ adb 쉘 마운트 -o remount,rw / $ adb 쉘 "mkdir -p /tmp" $ adb push /tmp 패키지가 ipk인 경우(QCS8550.LE.1.0의 경우):
$ adb 쉘 "opkg -force-dependents -force-reinstall -force-overwrite 설치 /tmp/"
- Windows 플랫폼의 경우 PowerShell에서 다음 스크립트를 사용합니다.
QIM SDK 빌드를 위한 Qualcomm TFLite SDK 아티팩트 생성
QIM SDK에서 Qualcomm TFLite SDK GStreamer 플러그인을 활성화하기 위해 생성된 아티팩트를 사용하려면 다음을 수행하십시오.
- Qualcomm TFLite SDK 동기화 및 빌드의 절차를 완료한 후 다음 명령을 실행합니다. $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
타르 file 생성됩니다. 여기에는 제공된 경로에 Qualcomm TFLite SDK가 포함되어 있습니다. "TFLite_rsync_destination" - Qualcomm TFLite SDK GStreamer 플러그인을 활성화하려면 tar를 사용하십시오. file JSON 구성의 인수로 file QIM SDK 빌드용.
QIM SDK 컴파일에 대한 자세한 내용은 Qualcomm 지능형 멀티미디어 SDK(QIM SDK) 빠른 시작 가이드(80-50450-51)를 참조하세요.
Qualcomm TFLite SDK를 점진적으로 구축
Qualcomm TFLite SDK를 처음으로 구축하는 경우 Qualcomm TFLite SDK 도구 구축 – 개발자 워크플로를 참조하세요. 점진적인 개발을 위해 동일한 빌드 환경을 재사용할 수 있습니다.
그림에 언급된 도우미 유틸리티(컨테이너 내)는 개발자가 수정된 애플리케이션과 플러그인을 컴파일하는 데 사용할 수 있습니다.
그림 5-1 컨테이너의 작업 흐름

코드 디렉터리에서 코드 변경이 완료된 후 다음을 수행합니다.
- 수정된 코드를 컴파일합니다.
$ tflite-tools-incremental-build-install - 패키지 컴파일 코드:
$ tflite-tools-ipk-rel-pkg 또는 $ tflite-tools-deb-rel-pkg - 릴리스 패키지를 호스트와 동기화 file 체계:
$ tflite-tools-remote-sync-ipk-rel-pkg
Or
$ tflite-tools-remote-sync-deb-rel-pkg - 개발 패키지를 준비합니다.
$ tflite-tools-ipk-dev-pkg
컴파일된 아티팩트는 JSON에 언급된 TFLite_rsync_destination 폴더에서 찾을 수 있습니다. file, 임의의 디렉토리에 복사할 수 있습니다.
QNN 외부 TFLite 대리인과 협력
TFLite 외부 위임을 사용하면 Qualcomm의 QNN과 같은 신뢰할 수 있는 제3자가 제공하는 라이브러리를 사용하여 다른 실행기에서 모델(부분 또는 전체)을 실행할 수 있습니다. 이 메커니즘은 추론을 위해 GPU 또는 HTP(Hexagon Tensor Processor)와 같은 다양한 기기 내 가속기를 활용할 수 있습니다. 이는 개발자에게 추론 속도를 높이기 위해 기본 TFLite에서 유연하고 분리된 방법을 제공합니다.
필수 조건:
- QNN AI 스택을 추출하려면 Ubuntu 워크스테이션을 사용해야 합니다.
- Qualcomm TFLite SDK와 함께 사용하려면 QNN 버전 2.14를 사용해야 합니다.
Qualcomm TFLite SDK는 QNN용 TFLite 외부 위임을 통해 여러 QNN 백엔드에서 추론을 실행할 수 있습니다. 공통 플랫버퍼 표현을 사용하는 TFLite 모델은 GPU 및 HTP에서 실행될 수 있습니다.
Qualcomm TFLite SDK 패키지가 장치에 설치된 후 다음을 수행하여 장치에 QNN 라이브러리를 설치합니다.
- Ubuntu용 Qualcomm Package Manager 3를 다운로드하세요.
a. 클릭https://qpm.qualcomm.com/를 클릭하고 도구를 클릭합니다.
b. 왼쪽 창의 검색 도구 필드에 QPM을 입력합니다. 시스템 OS 목록에서 Linux를 선택합니다.
검색 결과에는 Qualcomm 패키지 관리자 목록이 표시됩니다.
c. Qualcomm Package Manager 3을 선택하고 Linux debian 패키지를 다운로드하세요. - Linux용 Qualcomm Package Manager 3를 설치합니다. 다음 명령을 사용하십시오.
$ dpkg -i –force-overwrite /경로/to/
QualcommPackageManager3.3.0.83.1.Linux-x86.deb - Qualcomm® 다운로드
Ubuntu 워크스테이션의 AI Engine Direct SDK.
a. https://를 클릭하세요.qpm.qualcomm.com/ 도구를 클릭합니다.
b. 왼쪽 창의 검색 도구 필드에 AI 스택을 입력합니다. 시스템 OS 목록에서 Linux를 선택합니다.
A 다양한 AI 스택 엔진이 포함된 드롭다운 목록이 표시됩니다.
c. Qualcomm® AI Engine Direct SDK를 클릭하고 Linux v2.14.0 패키지를 다운로드하세요. - Ubuntu 워크스테이션에 Qualcomm® AI Engine Direct SDK를 설치합니다.
ㅏ. 라이센스를 활성화하십시오:
qpm-cli –license-활성화 qualcomm_ai_engine_direct
b AI Engine Direct SDK를 설치합니다.
$ qpm-cli –extract /path/to/ qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik - adb push를 사용하여 Ubuntu 워크스테이션에서 장치로 라이브러리를 푸시합니다.
$ cd /opt/qcom/aistack/qnn/2.14.0.230828 $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnDsp.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnDspV66Stub.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnGpu.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnHtpPrepare.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnHtp.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnHtpV68Stub.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnSaver.so /usr/lib/ $ adb push ./lib/aarch64-oe- linux-gcc11.2/ libQnnSystem.so /usr/lib/ $ adb push ./lib/aarch64-oe-linux-gcc11.2/ libQnnTFLiteDelegate.so /usr/lib/ $ adb push ./lib/hexagon-v65/ unsigned/ libQnnDspV65Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v66/unsigned/ libQnnDspV66Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v68/unsigned/ libQnnHtpV68Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v69/unsigned/ libQnnHtpV69Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v73/unsigned/ libQnnHtpV73Skel. 그래서 /usr/lib/rfsa/adsp
Qualcomm TFLite SDK 테스트
Qualcomm TFLite SDK는 특정 ex를 제공합니다.amp개발자가 평가하려는 모델의 정확성을 검증하고 벤치마킹하고 얻는 데 사용할 수 있는 파일 애플리케이션입니다.
Qualcomm TFLite SDK 패키지가 장치에 설치되면 장치에서 런타임을 사용하여 이러한 ex를 실행할 수 있습니다.amp르 응용 프로그램.
필수 조건
장치에 다음 디렉터리를 만듭니다.
$ adb 쉘 “mkdir /data/Models”
$ adb 쉘 “mkdir /data/Lables”
$ adb 쉘 “mkdir /data/profiling”
라벨 이미지
라벨 이미지는 사전 학습 및 변환된 TensorFlow Lite 모델을 로드하고 이를 사용하여 이미지의 객체를 인식하는 방법을 보여주는 Qualcomm TFLite SDK에서 제공하는 유틸리티입니다. 전제 조건:
다운로드 samp모델 및 이미지:
호환되는 모든 모델을 사용할 수 있지만 다음 MobileNet v1 모델은 1000개의 다양한 객체를 인식하도록 훈련된 모델의 좋은 데모를 제공합니다.
- 모델 가져오기
$curl https://저장소.googleapis.com/download.tensorflow.org/models/ mobilenet_v1_2018_02_22/mobilenet_v1_1.0_224.tgz | tar xzv -C /data $ mv /data/mobilenet_v1_1.0_224.tflite /data/Models/ - 라벨 가져오기
$curl https://저장소.googleapis.com/download.tensorflow.org/models/ mobilenet_v1_1.0_224_frozen.tgz | tar xzv -C /data mobilenet_v1_1.0_224/ labels.txt
$ mv /data/mobilenet_v1_1.0_224/labels.txt /data/Labels/
Qualcomm TFLite SDK Docker 컨테이너에 연결하면 다음 위치에서 이미지를 찾을 수 있습니다.
"/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp”
a. 이것을 밀어 file /데이터/라벨/
b. 명령을 실행합니다:
$ adb 쉘 "label_image -l /data/Labels/labels.txt -i /data/Labels/ Grace_hopper.bmp -m /data/Models/mobilenet_v1_1.0_224.tflite -c 10 -j 1 -p 1"
기준
Qualcomm TFLite SDK는 다양한 런타임 성능을 계산하는 벤치마킹 도구를 제공합니다.
이러한 벤치마크 도구는 현재 다음과 같은 중요한 성능 지표에 대한 통계를 측정하고 계산합니다.
- 초기화 시간
- 준비 상태 추론 시간
- 정상상태의 추론 시간
- 초기화 시간 동안의 메모리 사용량
- 전체 메모리 사용량
필수 조건
TFLite Model Zoo에서 테스트할 모델을 푸시합니다(https://tfhub.dev/)/데이터/모델/. 실행 다음 스크립트:
- XNN 팩
$ adb 쉘 "benchmark_model –graph=/data/Models/ — 활성화_op_profiling=true –use_xnnpack=true –num_threads=4 –max_secs=300 –profiling_output_csv_file=/데이터/프로파일링/” - GPU 델리게이트
$ adb 쉘 "benchmark_model –graph=/data/Models/ — 활성화_op_profiling=true –use_gpu=true –num_runs=100 –warmup_runs=10 — max_secs=300 –profiling_output_csv_file=/데이터/프로파일링/” - 외부 대리인
QNN 외부 대리인 GPU:
부동 소수점 모델로 추론을 실행합니다.
$ adb 쉘 명령 "benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:gpu;library_path:/usr/lib/ libQnnGpu.so;skel_library_dir:/usr/lib/rfsa /adsp'”
QNN 외부 대리인 HTP:
정량 모델로 추론을 실행합니다.
$ adb 쉘 명령 "benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:htp;library_path:/usr/lib/ libQnnHtp.so;skel_library_dir:/usr/lib/rfsa /adsp'”
정확도 도구
Qualcomm TFLite SDK는 다양한 런타임으로 모델의 정확도를 계산하는 정확도 도구를 제공합니다.
- GPU 대리자를 사용한 분류
필요한 것을 다운로드하는 단계 file테스트할 항목은 "/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/imagenet_image_classificatio/README.md"에서 찾을 수 있습니다.
이 도구를 실행하기 위한 바이너리는 이미 SDK의 일부이므로 개발자는 이를 다시 빌드할 필요가 없습니다.
$ adb 쉘 "image_classify_run_eval — 모델_file=/데이터/모델/ –ground_truth_images_path=/data/ — ground_truth_labels=/data/ –model_output_labels=/ 데이터/ –delegate=gpu” - XNN 팩을 사용한 객체 감지
$ adb 쉘 "inf_diff_run_eval –model_file=/데이터/모델/ –delegate=xnnpac
법적 정보
사양, 참조 보드와 함께 이 문서에 대한 액세스 및 사용 file여기에 포함된 도면, 진단 및 기타 정보(총칭하여 "선적 서류 비치"), 귀하(귀하가 대표하는 기업 또는 기타 법인 포함)의 적용을 받습니다. “귀하” 또는 “귀하의”) 이용 약관에 동의 (“이용약관”) 아래에 설명합니다. 본 이용 약관에 동의하지 않는 경우 본 문서를 사용할 수 없으며 해당 문서의 모든 사본을 즉시 파기해야 합니다.
- 법적 고지.
본 문서는 본 문서에 설명된 Qualcomm Technologies, Inc.(“Qualcomm Technologies”) 및 그 계열사의 제품 및 서비스 제공과 함께 내부 용도로만 사용할 수 있으며 다른 목적으로는 사용할 수 없습니다. 본 문서는 Qualcomm Technologies의 사전 서면 승인 없이는 어떤 방식으로든 변경, 편집 또는 수정할 수 없습니다. 이를 무단으로 사용하거나 공개하는 행위
여기에 포함된 문서 또는 정보는 엄격히 금지되며, 귀하는 이 문서의 전체 또는 공개에 대한 무단 사용 또는 공개로 인해 Qualcomm Technologies, 그 계열사 및 라이센스 제공자가 입은 손해 또는 손실에 대해 Qualcomm Technologies, 그 계열사 및 라이센스 제공자를 면책하는 데 동의합니다. 부분. Qualcomm Technologies, 그 계열사 및 라이센스 제공자는 본 문서에 대한 모든 권리와 소유권을 보유합니다. 상표, 특허, 저작권, 마스크 작업 보호 권리 또는 기타 지적 재산권에 대한 라이센스는 이 설명서 또는 여기에 공개된 정보(제작, 사용, 수입 또는 라이센스를 포함하되 이에 국한되지 않음)에 의해 부여되거나 암시되지 않습니다. 본 문서의 정보를 구현하는 제품, 서비스 또는 기술을 판매하는 행위.
이 문서는 명시적, 묵시적, 법적 또는 기타 어떠한 종류의 보증도 없이 "있는 그대로" 제공됩니다. 법률이 허용하는 최대 범위 내에서 Qualcomm Technologies, 그 계열사 및 라이센스 제공자는 소유권, 상품성, 비침해, 특정 목적에의 적합성, 만족스러운 품질, 완전성 또는 정확성 및 모든 보증에 대한 모든 보증을 명시적으로 부인합니다. 무역 이용으로 인해 발생하거나 거래 과정이나 이행 과정에서 발생합니다. 또한, Qualcomm Technologies, 그 계열사 또는 라이센스 제공자는 이 문서에 따라 귀하가 초래하거나 수행한 모든 비용, 손실, 사용 또는 조치에 대해 귀하 또는 제3자에게 책임을 지지 않습니다.
본 문서에 언급된 특정 제품 키트, 도구 및 자료의 경우 해당 항목에 액세스하거나 사용하기 전에 추가 이용 약관에 동의해야 할 수도 있습니다.
본 문서에 명시된 기술 데이터에는 미국 및 기타 관련 수출 통제법이 적용될 수 있습니다. 미국 및 기타 관련 법률에 반하는 전송은 엄격히 금지됩니다.
본 문서의 어떠한 내용도 여기에 언급된 구성 요소나 장치를 판매하겠다는 제안이 아닙니다.
이 문서는 추가 통지 없이 변경될 수 있습니다. 본 이용약관과 본 약관이 상충하는 경우 Web사이트 이용약관 www.qualcomm.com 또는 다음에 언급된 Qualcomm 개인 정보 보호 정책 www.qualcomm.com, 본 이용약관이 적용됩니다. 본 이용약관과 본 문서에 대한 귀하의 액세스 및 사용과 관련하여 귀하와 Qualcomm Technologies 또는 Qualcomm Technologies 계열사가 체결한 기타 계약(서면 또는 클릭을 통한 계약)이 충돌하는 경우 다른 계약이 우선 적용됩니다. .
본 이용약관은 국제사법 원칙에 관계없이 국제물품매매에 관한 UN 협약을 제외하고 캘리포니아 주법에 따라 규율되고 해석되고 집행됩니다. 본 이용 약관 또는 본 이용 약관의 위반이나 타당성과 관련하여 발생하는 모든 분쟁, 청구 또는 논란은 캘리포니아 주 샌디에고 카운티의 관할 법원에서만 판결을 받으며 귀하는 이에 동의합니다. 해당 목적에 대해서는 해당 법원의 개인 관할권입니다. - 상표 및 제품 귀속 설명.
Qualcomm은 Qualcomm Incorporated의 상표 또는 등록 상표입니다. Arm은 미국 및/또는 기타 지역에서 Arm Limited(또는 그 자회사)의 등록 상표입니다. Bluetooth® 워드마크는 Bluetooth SIG, Inc. 소유의 등록 상표입니다. 본 문서에 언급된 기타 제품 및 브랜드 이름은 해당 소유자의 상표 또는 등록 상표일 수 있습니다.
본 문서에 언급된 Snapdragon 및 Qualcomm 브랜드 제품은 Qualcomm Technologies, Inc. 및/또는 그 자회사의 제품입니다. Qualcomm 특허 기술은 Qualcomm Incorporated에 의해 라이센스가 부여됩니다.

문서 / 리소스
![]() | TensorFlow Lite SDK 소프트웨어 |
참고문헌
- Ðомен docker.md пÑодаеÑÑÑ!docker.md
- Index of linux/ubuntu/download.docker.com
- download.docker.com/linux/ubuntu/gpgdownload.docker.com
- tflite · GitLabgit.codelinaro.org
- TFLITE.SDK.1.0.r1-00500-TFLITE.0.xml · 릴리스 · CodeLinaro / le / sdktflite / tflite / 매니페스트 · GitLabgit.codelinaro.org
- git.quicinc.com/git.quicinc.com
- libQnnDsp.solibqnndsp.so
- libQnnDspV65Skel.solibqnndspv65skel.so
- libQnnDspV66Skel.solibqnndspv66skel.so
- libQnnDspV66Stub.solibqnndspv66stub.so
- 사용자 설명서manual.tools
