Qualcomm TensorFlow Lite SDK-Programara Uzantgvidilo
Historio de revizioj
Revizio | Dato | Priskribo |
AA | septembro 2023 | Komenca eldono |
AB | oktobro 2023 |
|
Enkonduko al Qualcomm TFLite SDK-iloj
La iloj de Qualcomm TensorFlow Lite ellaborado de programaro (Qualcomm TFLite SDK) provizas la kadron TensorFlow Lite por sur-aparata artefarita inteligenteco (AI) inferencado, kiu faciligas programistojn evoluigi aŭ funkcii taŭgajn AI-aplikaĵojn.
Ĉi tiu dokumento provizas paŝon post paŝoj por kompili memstaran Qualcomm TFLite SDK kaj agordi la evoluan medion. Ĉi tio ebligas la programfluon, kiu inkluzivas:
- starigi la konstruan medion kie la programisto povas kompili la Qualcomm TFLite SDK
- evoluigante memstarajn Qualcomm TFLite SDK-aplikaĵojn
Por subteno, vidu https://www.qualcomm.com/subteno. La sekva figuro provizas resumon de la laborfluo de Qualcomm TFLite SDK: "
Figuro 1-1 Qualcomm TFLite SDK laborfluo
La ilo postulas platformon SDK kaj agordon file (JSON-formato) por generi la Qualcomm TFLite SDK-artefaktojn.
Por konstrui fin-al-finan aplikaĵon uzante plurmediajn, AI, kaj komputilvizion (CV) subsistemojn, vidu Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51).
La tabelo montras mapadon de versio de Qualcomm TFLite SDK kun eldono de CodeLinaro tag:
Tabelo 1-1 Liberiga informo
Qualcomm TFLite SDK-versio | CodeLinaro-eldono tag |
V1.0 | Qualcomm TFLITE.SDK.1.0.r1-00200-TFLITE.0 |
Tablo 1-2 Subtenataj versioj de Qualcomm TFLite SDK
Qualcomm TFLite SDK-versio | Subtena programaro | Subtenita TFLite-versio |
V1.0 | QCS8550.LE.1.0 |
|
|
||
|
||
|
||
|
||
|
Referencoj
Tabelo 1-3 Rilataj dokumentoj
Titolo | Numero |
Qualcomm | |
00067.1 Eldona Noto por QCS8550.LE.1.0 | RNO-230830225415 |
Qualcomm Intelligent Multimedia SDK (QIM SDK) Rapida Komenca Gvidilo | 80-50450-51 |
Referenco de Qualcomm Intelligent Multimedia SDK (QIM SDK). | 80-50450-50 |
Rimedoj | |
https://source.android.com/docs/setup/start/initializing | – |
Tabelo 1-4 Akronimoj kaj difinoj
Akronimo aŭ termino | Difino |
AI | Artefarita inteligenteco |
BIOSO | Baza enigo/eliga sistemo |
CV | Komputila vizio |
IPK | Ĝia pako file |
QIM SDK | Qualcomm Inteligenta plurmedia programaro disvolva ilaro |
SDK | Kompleto pri programaro |
TFLite | TensorFlow Lite |
XNN | Xth plej proksima najbaro |
Agordu konstruan medion por Qualcomm TFLite SDK-iloj
La Qualcomm TFLite SDK-iloj estas liberigitaj en fontoformo; tial, establi la konstruan medion por kompili ĝin estas deviga sed unufoja aranĝo.
Antaŭkondiĉoj
- Certigu, ke vi havas sudoaliron al la Linuksa gastiga maŝino.
- Certigu, ke la Linuksa gastiga versio estas Ubuntu 18.04 aŭ Ubuntu 20.04.
- Pliigu la maksimumajn uzanthorloĝojn kaj maksimumajn uzantkazojn en la gastiga sistemo.
- Aldonu la sekvajn komandliniojn al/etc/sysctl.confand rekomencu la gastiganton: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288
Instalu postulatajn gastigajn pakaĵojn
La gastigaj pakoj estas instalitaj sur la Linuksa gastiga maŝino.
Rulu la komandojn por instali la gastigajn pakaĵojn: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Por Ubuntu 18.04 kaj pli alte:
$ sudo apt-get install git-core gnupg flex bison build-essential 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 unzip fontconfig
Por pliaj informoj, vidu https://source.android.com/docs/setup/start/initializing.
Agordu docker-medion
Docker estas platformo uzata por konstrui, disvolvi, testi kaj liveri programaron. Por kompili la SDK, la docker devas esti agordita sur la Linuksa gastiga maŝino.
Certigu, ke CPU-virtualigo estas ebligita sur la Linuksa gastiga maŝino. Se ĝi ne estas ebligita, faru la jenon por ebligi ĝin de la bazaj agordoj de agordoj de bazaj enigo/eliga sistemo (BIOS):
- Ebligu virtualigon de BIOS:
a. Premu F1 aŭ F2 kiam la sistemo ekfunkciigas por eniri BIOS. La BIOS-fenestro montriĝas.
b. Ŝanĝu al la Altnivela langeto.
c. En la sekcio de CPU-Agordo, agordu Virtualigan Teknologion al Ebligita.
a. Premu F12 por konservi kaj eliri, kaj poste rekomenci la sistemon.
Se ĉi tiuj paŝoj ne funkcias, sekvu la specifajn instrukciojn de la sistemprovizanto por ebligi la virtualigon - Forigu iujn malnovajn okazojn de la docker:
$ sudo apt forigi docker-desktop
$ rm -r $HOME/.docker/desktop
$ sudo rm /usr/local/bin/com.docker.cli
$ sudo apt purge docker-desktop - Agordu la docker-foran deponejon:
$ sudo apt-get update $ sudo apt-get install ca-certificates 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) stabila” | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null - Instalu docker-motoron:
$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli - Aldonu uzanton al docker-grupo:
$ sudo groupadd docker $ sudo usermod -aG docker $USER - Rekomencu la sistemon.
Generu platforman SDK
La platforma SDK estas deviga postulo por kompili la ilojn Qualcomm TFLite SDK. Ĝi provizas ĉiujn postulatajn platformdependecojn postulatajn de Qualcomm TFLite SDK.
Faru la jenon por generi la platforman SDK:
- Kreu konstruon por la preferata programara produkto.
La instrukcioj por konstrui la eldonon de QCS8550.LE.1.0 estas provizitaj en la eldonaj notoj. Por aliri la eldonnotojn, vidu Referencoj.
Se la bildoj antaŭe estis konstruitaj, faru paŝon 2, kaj poste kreu puran konstruon. - Rulu la sekvan komandon por konstrui la uzantspacajn bildojn kaj platforman SDK:
Por QCS8550.LE.1.0, aldonu la maŝinan funkcion qti-tflite-delegate en MACHINE_FEATURES en la kalama.conf file kaj fontu la konstruan medion laŭ instrukcioj de la eldonaj notoj.
Post generi uzantspacajn bildojn de konstruo, rulu la sekvan komandon por generi la platforman SDK.
$ bitbake -fc populate_sdk qti-robotics-image
Konstruu Qualcomm TFLite SDK-iloj - laborfluo por programistoj
La laborfluo de la iloj de Qualcomm TFLite SDK postulas, ke la programisto provizi la agordon file kun validaj enigaĵoj. La helpaj ŝelaj skriptoj de la projekto tflite-tools (ĉeestas en la fontarbo de Qualcomm TFLite SDK) provizas helpajn utilajn funkciojn por agordi la ŝelan medion, kiu povas esti uzata por la laborfluo de Qualcomm TFLite SDK.
La programisto konstruas la Qualcomm TFLite SDK-projektojn ene de la ujo kaj generas la artefaktojn uzante la ilojn provizitajn de tflite-iloj.
Post kiam ujo de Qualcomm TFLite SDK estas konstruita, la programisto povas alkroĉi al la ujo kaj uzi la helpajn ilojn en la ujo-ŝelmedio por kontinua disvolviĝo.
- Estas provizo por instali la Qualcomm TFLite SDK-artefaktojn al Qualcomm-aparato konektita al la Linuksa gastiganto per USB/adb.
- Ankaŭ ekzistas kondiĉo por kopii la Qualcomm TFLite SDK-artefaktojn de la ujo al malsama gastiga maŝino kie la Qualcomm-aparato estas konektita.
La sekva figuro listigas la aron de disponeblaj utilecoj post agordo de la uj-konstrua medio uzante la helpajn skriptojn por konstrui la Qualcomm TFLite SDK.
La figuro montras la sekvencon de ekzekuto de la utilecoj:
Figuro 4-3 Sekvenco de utilecoj sur gastiganto
Sinkronigu kaj konstruu Qualcomm TFLite SDK
La Qualcomm TFLite SDK estas kompilita kiam la docker-bildo estas kreita. Por sinkronigi kaj konstrui la Qualcomm TFLite SDK, faru la jenon:
- Kreu dosierujon sur la gastiganto file sistemo por sinkronigi la laborspacon Qualcomm TFLite SDK. Por
example: $mkdir $kd - Prenu la fontkodon Qualcomm TFLite SDK de CodeLinaro:
$ repo init -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ manifest.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 liberigo && repo sync -qc –no-tags -j - Kreu dosierujon sur la gastiganto file sistemo kiu povas esti muntita en docker. Por ekzample: mkdir-p / Ĉi tiu dosierujo povas esti kreita ie ajn sur la Linuksa gastiga maŝino, kaj ĝi ne dependas de kie la projekto Qualcomm TFLite SDK estas sinkronigita. Post kiam la laborfluo finiĝas ene de la ujo, la Qualcomm TFLite SDK-artefaktoj troveblas ĉe la dosierujo kreita en ĉi tiu paŝo.
- Redaktu la JSON-agordon file ĉeestas en /tflite-tools/ targets/le-tflite-tools-builder.json kun la jenaj enskriboj:
"Bildo": "tflite-tools-builder", "Device_OS": "le", "Aldona_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegitoj”: { “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”: “” }
Por pliaj informoj pri la enskriboj menciitaj en la json-agordo file, vidu la legume Docker.md file ĉe /tflite-tools/.
NOTO Por QCS8550, la delegito Qualcomm® Hexagon™ DSP ne estas subtenata. - Fontu la skripton por agordi la medion:
$ kd /tflite-tools $ source ./scripts/host/docker_env_setup.sh - Konstruu la konstruaĵbildon de Qualcomm TFLite SDK: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json Se la konstruagordo malsukcesas, vidu Troubleshoot docker-agordo. Post sukcesa kompletigo, la sekva mesaĝo montriĝas: "Stato:Konstruo de bildo sukcese kompletigita!!" Kurante ĉi tiun paŝon ankaŭ konstruas Qualcomm TFLite SDK.
- Rulu la docker-ujon Qualcomm TFLite SDK. Ĉi tio komencas la ujon per la tags provizita en la JSON-agordo file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
- Alkroĉu al la ujo komencita de la antaŭa paŝo.
$ docker attach
La Qualcomm TFLite SDK estas kompilita, kaj la artefaktoj estas pretaj por esti deplojitaj aŭ plue povas esti
uzata por generi la aldonaĵon QIM SDK TFLite.
Konekti aparaton por gastigi kaj disfaldi artefaktojn]
Post kompilo, ekzistas du mekanismoj por konekti la aparaton al gastiganto kaj disfaldi la
Artefaktoj de Qualcomm TFLite SDK.
- Aparato konektita al loka Linuksa gastiganto:
Programisto konektas la aparaton al laborstacio kaj instalas la Qualcomm TFLite SDK-artefaktojn de la ujo rekte sur la aparato (QCS8550). - Aparato konektita al fora gastiganto:
Programisto konektas la aparaton al fora laborstacio, kaj ili povas uzi la pakmanaĝerajn instalilkomandojn sur Vindozo kaj Linukso platformoj por instali la Qualcomm TFLite SDK-artefaktojn al la aparato (QCS8550)
Figuro 4-4 Konekto de aparato-tabulo al programisto kaj fora laborstacio
Konekti aparaton al laborstacio
La aparato estas konektita al la laborstacio kaj la evolua ujo povas aliri la aparaton per USB/adb.
La figuro montras la stagestas en la sekvenco de la laborfluo de Qualcomm TFLite SDK:
- Rulu la sekvajn komandojn por instali la artefaktojn al la aparato:
$ tflite-iloj-aparato-prepari
$ tflite-ilo-aparato-deploy - Por malinstali la artefaktojn, rulu la sekvan komandon:
$ tflite-iloj-aparataj pakoj-forigi
Konekti aparaton al fora maŝino
La aparato estas konektita al fora maŝino, kaj la Qualcomm TFLite SDK-ujo ne povas aliri la aparaton per USB/ad b.
La figuro montras la stagestas en la sekvenco de la laborfluo de Qualcomm TFLite SDK:
Rulu la jenajn komandojn en la tflite-tools-ujo por kopii la artefaktojn al fora maŝino
depende de la pakaĵmanaĝero sur la aparato:
$ tflite-iloj-remote-sync-ipk-rel-pkg
NOTO La fora maŝina informo estas provizita en la JSON-agordo file.
Instalu artefaktojn por Vindoza platformo
La Qualcomm TFLite SDK-artefaktoj povas esti instalitaj sur la aparato bazita sur la operaciumo de la fora maŝino.
Por la Vindoza platformo, faru la jenon:
En PowerShell, uzu la sekvan skripton: PS C:
> adb root PS C:> adb disable-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb radiko PS C:> adb remount PS C:> adb shell mount -o remount, rw / PS C:> adb shell “mkdir -p /tmp” PS C:> adb push /tmp Se la pako estas ipk (por QCS8550.LE.1.0), uzu la jenajn komandojn: PS C:> adb shell “ opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
Instalu artefaktojn por Linukso-platformo
Uzu la jenajn komandojn:
$ adb root $ adb disable-verity $ adb reboot $ adb wait-for-device $ adb radiko $ adb remount $ adb shell mount -o remount,rw / $ adb ŝelo “mkdir -p /tmp” $ adb push /tmp Se la pako estas ipk (por QCS8550.LE.1.0): $ adb shell “opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
Purigu docker-bildon
Post kompletigado de la ellaboranta laborfluo, la docker-medio devas esti purigita por liberigi la stokadon sur la disko. Purigi la docker forigas la neuzatajn ujojn kaj bildojn, tiel liberigante la diskospacon.
Uzu la jenajn komandojn por purigi la docker-bildon:
- Rulu la sekvan komandon sur la Linuksa laborstacio:
$ kd /tflite-iloj - Haltu la ujon:
$ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json - Forigu la ujon:
$ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json - Forigu la pli malnovajn docker-bildojn:
$ tflite-iloj-gastiganto-bildoj-purigado
Solvu problemojn de docker-agordo
Se la komando tflite-tools-host-build-image resendas Nospace lasitan sur la aparato-mesaĝo, tiam movu la docker-dosierujon al/local/mnt. Faru la jenon por solvi problemojn pri la agordo:
- Sekurigu la ekzistantan docker files:
$ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(dato + %s).tar.gz - Haltu la docker:
$ service docker halto - Kontrolu, ke neniu docker-procezo funkcias:
$ ps falsa | grep docker - Kontrolu la docker-dosierujon:
$ sudo ls /var/lib/docker/ - Movu la docker-dosierujon al nova sekcio:
$ mv /var/lib/docker /local/mnt/docker - Faru simbolligon al la docker-dosierujo en la nova sekcio:
$ ln -s /local/mnt/docker /var/lib/docker - Certigu, ke la docker-dosierujo-strukturo restas senŝanĝa:
$ sudo ls /var/lib/docker/ - Komencu docker:
$ service docker start - Rekomencu ĉiujn ujojn post movi la docker-dosierujon.
Generu TFLite SDK kun Linuksa laborstacio
La laborfluo de TFLite SDK povas esti ebligita sen ujoj uzante la Linuksan laborstacion. Ĉi tiu proceduro estas alternativo al uzado de ujoj.
Por sinkronigi kaj konstrui la Qualcomm TFLite SDK, faru la jenon:
- Kreu dosierujon sur la gastiganto file sistemo por sinkronigi la laborspacon Qualcomm TFLite SDK. Por ekzample:
$mkdir
$cd - Prenu la fontkodon Qualcomm TFLite SDK de CodeLinaro:
$ repo init -u https://git.codelinaro.org/clo/le/sdktflite/tflite/ manifest.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 liberigo && repo sync -qc –no-tags -j8 && repo sync -qc –ne-tags -j8 - 3. Redaktu la JSON-agordon file ĉeestas en /tflite-tools/ targets/le-tflite-tools-builder.json kun la sekvaj enskriboj
"Bildo": "tflite-tools-builder", "Device_OS": "le", "Aldona_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegitoj”: { “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”: “”
Por pliaj informoj pri la enskriboj menciitaj en la json-agordo file, vidu la legume Docker.md file ĉe /tflite-tools/.
NOTO Por QCS8550, Hexagon DSP-delegito ne estas subtenata - Fontu la skripton por agordi la medion:
$ kd /tflite-iloj
$ fonto ./scripts/host/host_env_setup.sh - Konstruu la Qualcomm TFLite SDK.
$ tflite-tools-setup targets/le-tflite-tools-builder.json - Rulu la sekvajn utilajn komandojn en la sama Linuksa ŝelo por kolekti la artefaktojn de TFLite SDK
TFLite_rsync_destino.
$ tflite-tools-host-get-rel-package targets/le-tflite-tools-builder.json
$ tflite-tools-host-get-dev-package targets/le-tflite-tools-builder.json - Instalu artefaktojn bazitajn sur la operaciumo
- Por la Vindoza platformo, sur PowerShell, uzu la sekvan skripton
PS C:> adb root PS C:> adb disable-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb radiko PS C:> adb remount PS C:> adb shell mount - o remunti,rw / PS C:> adb-ŝelo "mkdir -p /tmp" PS C:> adb push /tmp
Se la pako estas ipk (por QCS8550.LE.1.0), uzu la jenajn komandojn:
PS C:> adb-ŝelo "opkg -force-depends -force-reinstall -forceoverwrite install /tmp/
Por la Linukso-platformo, uzu la sekvan skripton:
$ adb root $ adb disable-verity $ adb reboot $ adb wait-for-device $ adb radiko $ adb remount $ adb shell mount -o remount,rw / $ adb ŝelo “mkdir -p /tmp” $ adb push /tmp Se la pako estas ipk (por QCS8550.LE.1.0):
$ adb-ŝelo "opkg –force-depends –force-reinstall –force-overwrite install /tmp/”
- Por la Vindoza platformo, sur PowerShell, uzu la sekvan skripton
Generu Qualcomm TFLite SDK artefaktojn por QIM SDK-konstruo
Por uzi la artefaktojn generitajn por ebligi la kromprogramon Qualcomm TFLite SDK GStreamer en QIM SDK, faru la jenon:
- Kompletigu la proceduron en Sync kaj konstruu Qualcomm TFLite SDK, kaj poste rulu la sekvan komandon: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
Gudro file estas generita. Ĝi enhavas la Qualcomm TFLite SDK ĉe la vojo provizita ĉe "TFLite_rsync_destination" - Por ebligi la kromprogramon Qualcomm TFLite SDK GStreamer, uzu la gudron file kiel argumento en la JSON-agordo file por la QIM SDK-konstruo.
Por informoj pri kompilado de QIM SDK, vidu Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51).
Konstruu Qualcomm TFLite SDK iom post iom
Se vi konstruas la Qualcomm TFLite SDK por la unua fojo, vidu Konstrui Qualcomm TFLite SDK-iloj - programista laborfluo. La sama konstrumedio povas esti recikligita por pliiga evoluo.
La helpaj utilecoj (ene de la ujo) menciitaj en la figuro estas disponeblaj por programistoj por kompili modifitajn aplikojn kaj kromprogramojn.
Figuro 5-1 Laborfluo en ujo
Post kiam la kodaj ŝanĝoj finiĝas en la koda dosierujo, faru la jenon:
- Kompilu modifitan kodon:
$ tflite-tools-incremental-build-install - Pako kompilita kodo:
$ tflite-tools-ipk-rel-pkg aŭ $ tflite-tools-deb-rel-pkg - Sinkronigi eldonpakaĵojn kun la gastiganto file sistemo:
$ tflite-iloj-remote-sync-ipk-rel-pkg
Or
$ tflite-iloj-remote-sync-deb-rel-pkg - Preparu dev-pakaĵon:
$ tflite-iloj-ipk-dev-pkg
La kompilitaj artefaktoj troviĝas ĉe en la dosierujo TFLite_rsync_destination menciita en la JSON file, kiu povas esti kopiita al ajna dosierujo.
Laboru kun QNN ekstera TFLite Delegito
Ekstera Delegito de TFLite ebligas al vi funkciigi viajn modelojn (parton aŭ tutan) sur alia ekzekutisto uzante bibliotekojn provizitajn de fidinda tria partio kiel QNN de Qualcomm. Ĉi tiu mekanismo povas utiligi diversajn sur-aparatajn akceliloj kiel la GPU aŭ Hexagon Tensor Processor (HTP) por inferenco. Ĉi tio provizas programistojn flekseblan kaj malkunligan metodon de la defaŭlta TFLite por akceli inferencon.
Antaŭkondiĉoj:
- Certigu, ke vi uzas Ubuntu-laborstacion por ĉerpi QNN AI-stakon.
- Certigu, ke vi uzas QNN-version 2.14 por esti kune kun Qualcomm TFLite SDK
La Qualcomm TFLite SDK estas ebligita por ruli inferencojn sur pluraj QNN-back-ends tra TFLite ekstera Delegito por QNN. La TFLite-modeloj kun ofta flatbuffer-reprezento povas funkcii per GPU kaj HTP.
Post kiam la pakaĵoj Qualcomm TFLite SDK estas instalitaj sur la aparato, faru la jenon por instali la QNN-bibliotekojn sur la aparato.
- Elŝutu Qualcomm Package Manager 3 por Ubuntu.
a. Alklaku https://qpm.qualcomm.com/, kaj alklaku Ilojn.
b. En la maldekstra panelo, en la kampo Serĉilo, tajpu QPM. El la listo System OS, elektu Linukso.
La serĉrezultoj montras liston de Qualcomm Package Managers.
c. Elektu Qualcomm Package Manager 3 kaj elŝutu la Linuksan debian-pakaĵon. - Instalu Qualcomm Package Manager 3 por Linukso. Uzu la jenan komandon:
$ dpkg -i –force-overwrite /pado/al/
QualcommPackageManager3.3.0.83.1.Linux-x86.deb - Elŝutu Qualcomm®
AI Engine Direct SDK sur la Ubuntu-laborstacio.
a. Alklaku https://qpm.qualcomm.com/ kaj alklaku Ilojn.
b. En la maldekstra panelo, en la kampo Serĉilo, tajpu AI-stako. El la listo System OS, elektu Linukso.
A montriĝas menulisto enhavanta diversajn AI-stajn motorojn.
c. Alklaku Qualcomm® AI Engine Direct SDK kaj elŝutu la pakaĵon Linukso v2.14.0. - Instalu Qualcomm® AI Engine Direct SDK sur la Ubuntu-laborstacio.
a. Aktivigu la permesilon:
qpm-cli –license-activate qualcomm_ai_engine_direct
b Instalu AI Engine Direct SDK:
$ qpm-cli –extract /path/to/qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik - Puŝu bibliotekojn al la aparato de la Ubuntu-laborstacio per adb push.
$ 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/V libQ73nSkelt. do /usr/lib/rfsa/adsp
Testu Qualcomm TFLite SDK
La Qualcomm TFLite SDK provizas certan ekzample-aplikoj, kiuj povas esti uzataj por validigi, komparmarki kaj akiri la precizecon de la modeloj, kiujn programisto volas taksi.
Post kiam la Qualcomm TFLite SDK-pakaĵoj estas instalitaj sur la aparato, la rultempo disponeblas sur la aparato por ruli ĉi tiujn eksample aplikoj.
Antaŭkondiĉo
Kreu la sekvajn dosierujojn sur la aparato:
$ adb-ŝelo "mkdir /datumoj/Modeloj"
$ adb-ŝelo "mkdir /data/Lables"
$ adb-ŝelo "mkdir /data/profiling"
Etikedu bildon
Etikedbildo estas ilo provizita de Qualcomm TFLite SDK, kiu montras kiel vi povas ŝargi antaŭtrejnitan kaj konvertitan TensorFlow Lite-modelon kaj uzi ĝin por rekoni objektojn en bildoj. Antaŭkondiĉoj:
Elŝutu sampmodelo kaj bildo:
Vi povas uzi ajnan kongruan modelon, sed la sekva modelo MobileNet v1 ofertas bonan pruvon de modelo trejnita por rekoni 1000 malsamajn objektojn.
- Akiru modelon
$ curl https://storage.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/ - Akiru etikedojn
$ curl https://storage.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/
Post kiam vi konektas al la docker-ujo Qualcomm TFLite SDK, la bildo troveblas ĉe:
“/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp”
a. Premu ĉi tion file al/datenoj/Etikedoj/
b. Rulu la komandon:
$ adb-ŝelo "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"
Benchmark
La Qualcomm TFLite SDK provizas la benchmarking ilon por kalkuli la rendimenton de diversaj rultempoj.
Ĉi tiuj komparnormaj iloj nuntempe mezuras kaj kalkulas statistikojn por la sekvaj gravaj agado-metrikoj:
- Komenca tempo
- Inferenca tempo de varmiga stato
- Inferenca tempo de stabila stato
- Memoruzo dum komenca tempo
- Ĝenerala uzado de memoro
Antaŭkondiĉoj
Premu la modelojn testitajn de TFLite Model Zoo (https://tfhub.dev/) al/datenoj/Modeloj/. Kuru la jenaj skriptoj:
- XNN-pako
$ adb-ŝelo “benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_xnnpack=true –num_threads=4 –max_secs=300 –profiling_output_csv_file=/datenoj/profilado/” - Delegito de GPU
$ adb-ŝelo “benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_gpu=true –num_runs=100 –warmup_runs=10 — max_secs=300 –profiling_output_csv_file=/datenoj/profilado/” - Ekstera Delegito
QNN Ekstera Delegito GPU:
Rulu inferencon kun glitkoma modelo:
$ adb shell-command “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/_libr:/librarry /adsp'”
QNN Ekstera Delegito HTP:
Rulu inferenco kun kvantmodelo:
$ adb shell-command “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:htp;library_path:/usr/lib/ libQnnHtp.so;libQnnHtp.so;skel/rfsbrary_lib/rfsbrary_ /adsp'”
Precizeca ilo
La Qualcomm TFLite SDK disponigas precizecan ilon por kalkuli la precizecon de modeloj kun diversaj rultempoj.
- Klasifiko kun GPU-delegito
La paŝoj por elŝuti la necesajn files por testi troveblas ĉe: "/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/ imagenet_image_classificatio/README.md"
La duuma por ruli ĉi tiun ilon jam estas parto de la SDK, do la programisto ne bezonas konstrui ĝin denove.
$ adb-ŝelo " image_classify_run_eval - modelo_file=/datumoj/Modeloj/ –ground_truth_images_path=/data/ — ground_truth_labels=/data/ –model_output_labels=/ data/ –delegate=gpu” - Objekta detekto kun XNN-pako
$ adb-ŝelo "inf_diff_run_eval –model_file=/datumoj/Modeloj/ –delegate=xnnpac
LEGALA INFORMO
Via aliro al kaj uzo de ĉi tiu dokumento, kune kun ajnaj specifoj, referenca tabulo files, desegnaĵoj, diagnozoj kaj aliaj informoj enhavitaj ĉi tie (kolektive ĉi "Dokumentado"), estas submetita al via (inkluzive de la korporacio aŭ alia jura ento, kiun vi reprezentas, kolektive "Vi" aŭ "Via") akcepto de la terminoj kaj kondiĉoj ("Kondiĉoj de Uzado") elmontrita malsupre. Se Vi ne konsentas pri ĉi tiuj Uzokondiĉoj, vi ne rajtas uzi ĉi tiun Dokumentadon kaj tuj detruos ajnan kopion de ĝi.
- Leĝa Avizo.
Ĉi tiu Dokumentaro estas disponebla al Vi nur por Via interna uzo kun tiuj produktoj kaj servofertoj de Qualcomm Technologies, Inc. ("Qualcomm Technologies") kaj ĝiaj filioj priskribitaj en ĉi tiu Dokumentaro, kaj ne estos uzata por aliaj celoj. Ĉi tiu Dokumentaro ne povas esti ŝanĝita, redaktita aŭ modifita iel ajn sen antaŭa skriba aprobo de Qualcomm Technologies. Neaŭtorizita uzo aŭ malkaŝo de ĉi tio
Dokumentaro aŭ la informoj ĉi tie enhavitaj estas strikte malpermesitaj, kaj Vi konsentas kompensi Qualcomm Technologies, ĝiajn filiojn kaj licencintojn pro ajnaj damaĝoj aŭ perdoj suferitaj de Qualcomm Technologies, ĝiaj filioj kaj licencintoj pro tiaj neaŭtorizitaj uzoj aŭ malkaŝoj de ĉi tiu Dokumentaro, entute aŭ. parto. Qualcomm Technologies, ĝiaj filioj kaj licencintoj konservas ĉiujn rajtojn kaj proprieton en kaj al ĉi tiu Dokumentaro. Neniu licenco al iu varmarko, patento, kopirajto, maskla verka protektorajto aŭ ajna alia intelekta proprieta rajto estas aŭ koncedita aŭ implicita de ĉi tiu Dokumentaro aŭ ajna informo ĉi tie malkaŝita, inkluzive de, sed ne limigita al, ajna permesilo fari, uzi, importi aŭ. vendi ajnan produkton, servon aŭ teknologian oferton enkorpigantan iun ajn el la informoj en ĉi tiu Dokumentaro.
ĈI TIU DOKUMENTARO ESTAS PROVIZITA "KIAL ESTAS" SEN IA GARANTIO, ĈU ESPRIMITA, IMPLITA, LEĜA AŬ ALIE. ĜIS LA MAKMUME PERMESITA DE LEĜO, QUALCOMM TECHNOLOGIES, ĜIAJ FILIOJ KAJ LICENCISTOJ SPECIFIQUE RILAS ĈIUJN GARANTIOJ PRI TITOLO, KOMERCISTO, NE-MALREGLADO, TAŬGECO POR APARTA CELO, KONTIGO DE KVALECO KOMERCO UZADO AŬ EKSTER DE KURSO DE TRAKTO AŬ KURSO DE EFENDO. Cetere, NEK QUALCOMM-TEKNOLOGIOJ, NEK IUJ EL ĜIAJ FILIOJ AŬ LICENCISTOJ, RESPONDOS AL VI AŬ IUJ IUJ TRIA PARTO PRI IUJ ELSPEZOJ, PERDOJ, UZO AŬ AGOJ KIEL AJN FAGRUTITAS AŬ AJNATITAJ DE VI EN FIDO DE VI.
Iuj produktkompletoj, iloj kaj materialoj referencitaj en ĉi tiu Dokumentaro eble postulas, ke Vi akceptu pliajn terminojn kaj kondiĉojn antaŭ ol aliri aŭ uzi tiujn erojn.
Teknikaj datumoj specifitaj en ĉi tiu Dokumentaro povas esti submetitaj al usonaj kaj aliaj aplikeblaj eksportkontrolaj leĝoj. Transdono kontraŭ Usono kaj ajna alia aplikebla leĝo estas strikte malpermesita.
Nenio en ĉi tiu Dokumentaro estas oferto por vendi iun ajn el la komponantoj aŭ aparatoj referencitaj ĉi tie.
Ĉi tiu Dokumentaro povas ŝanĝiĝi sen plia sciigo. En la okazo de konflikto inter ĉi tiuj Uzokondiĉoj kaj la WebUzokondiĉoj pri retejo www.qualcomm.com aŭ la Privateca Politiko de Qualcomm referencita www.qualcomm.com, ĉi tiuj Uzokondiĉoj regos. En la okazo de konflikto inter ĉi tiuj Uzokondiĉoj kaj ajna alia interkonsento (skribita aŭ klak-tra) efektivigita de Vi kaj Qualcomm Technologies aŭ Qualcomm Technologies filio kun respekto al Via aliro al kaj uzo de ĉi tiu Dokumentaro, la alia interkonsento kontrolos. .
Ĉi tiuj Uzokondiĉoj estos regataj kaj interpretataj kaj plenumitaj laŭ la leĝoj de la Ŝtato de Kalifornio, ekskludante la UN-Konvencion pri Internacia Vendo de Varoj, sen konsidero al konflikto de leĝaj principoj. Ajna disputo, aserto aŭ disputo ekestanta de aŭ rilata al ĉi tiuj Uzokondiĉoj, aŭ la malobservo aŭ valideco de ĉi tiuj, estos juĝita nur de tribunalo de kompetenta jurisdikcio en la distrikto de San-Diego, Ŝtato de Kalifornio, kaj Vi ĉi-tie konsentas pri la persona jurisdikcio de tiaj tribunaloj tiucele. - Varmarko kaj Produkta Atribuo Deklaroj.
Qualcomm estas varmarko aŭ registrita varmarko de Qualcomm Incorporated. Arm estas registrita varmarko de Arm Limited (aŭ ĝiaj filioj) en Usono kaj/aŭ aliloke. La vortmarko Bluetooth® estas registrita varmarko posedata de Bluetooth SIG, Inc. Aliaj produktaj kaj marknomoj referencitaj en ĉi tiu Dokumentaro povas esti varmarkoj aŭ registritaj varmarkoj de siaj respektivaj posedantoj.
Snapdragon kaj Qualcomm-markitaj produktoj referencitaj en ĉi tiu Dokumentaro estas produktoj de Qualcomm Technologies, Inc. kaj/aŭ ĝiaj filioj. Qualcomm patentitaj teknologioj estas licencitaj de Qualcomm Incorporated.
Dokumentoj/Rimedoj
![]() |
Qualcomm TensorFlow Lite SDK-Programaro [pdf] Uzantogvidilo TensorFlow Lite SDK-Programaro, Lite-SDK-Programaro, SDK-Programaro, Programaro |