Guida d'utilizatore di u software Qualcomm TensorFlow Lite SDK
Storia di rivisione
Revisione | Data | Descrizzione |
AA | settembre 2023 | Liberazione iniziale |
AB | Ottobre 2023 |
|
Introduzione à i strumenti Qualcomm TFLite SDK
L'attrezzi di u kit di sviluppu di software Qualcomm TensorFlow Lite (Qualcomm TFLite SDK) furnisce u framework TensorFlow Lite per l'inferenza di intelligenza artificiale (AI) in u dispositivu, chì facilita i sviluppatori di applicazioni à sviluppà o eseguisce applicazioni AI adatte.
Stu documentu furnisce struzzioni step-by-step per cumpilà un SDK Qualcomm TFLite standalone è stabilisce l'ambiente di sviluppu. Questu permette u flussu di travagliu di sviluppatore, chì include:
- crià l'ambiente di custruzzione induve u sviluppatore pò cumpilà u SDK Qualcomm TFLite
- Sviluppendu applicazioni standalone Qualcomm TFLite SDK
Per u sustegnu, vede https://www.qualcomm.com/supportu. A figura seguente furnisce un riassuntu di u flussu di travagliu Qualcomm TFLite SDK: "
Figura 1-1 Flussu di travagliu Qualcomm TFLite SDK
L'uttellu richiede un SDK di piattaforma è una cunfigurazione file (formatu JSON) per generà l'artefatti Qualcomm TFLite SDK.
Per custruisce una applicazione end-to-end utilizendu sottosistemi multimediali, AI è visione di computer (CV), vede Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51).
A tavula mostra a mappa di a versione Qualcomm TFLite SDK cù a liberazione di CodeLinaro tag:
Table 1-1 L'infurmazione di liberazione
Qualcomm TFLite SDK versione | Liberazione di CodeLinaro tag |
V1.0 | Qualcomm TFLITE.SDK.1.0.r1-00200-TFLITE.0 |
Tabella 1-2 Versioni Qualcomm TFLite SDK supportate
Qualcomm Versione TFLite SDK | Pruduttu software supportatu | Versione TFLite supportata |
V1.0 | QCS8550.LE.1.0 |
|
|
||
|
||
|
||
|
||
|
Referenze
Table 1-3 Documenti cunnessi
Titulu | numeru |
Qualcomm | |
00067.1 Nota di liberazione per QCS8550.LE.1.0 | RNO-230830225415 |
Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide | 80-50450-51 |
Riferimentu Qualcomm Intelligent Multimedia SDK (QIM SDK). | 80-50450-50 |
Risorse | |
https://source.android.com/docs/setup/start/initializing | – |
Table 1-4 Acronimi è difinizzioni
Acronimu o termu | Definizione |
AI | Intelligenza artificiale |
BIOS | Sistema di basi di input / output |
CV | Visione informatica |
IPK | U so pacchettu file |
QIM SDK | Kit di sviluppu di software multimedia intelligente Qualcomm |
SDK | Kit di sviluppu di software |
TFLite | TensorFlow Lite |
XNN | Xth vicinu più vicinu |
Configurate l'ambiente di creazione per i strumenti Qualcomm TFLite SDK
I strumenti Qualcomm TFLite SDK sò liberati in forma di fonte; dunque, stabilisce l'ambiente di custruzzione per cumpilà hè una stallazione obligatoria, ma una volta.
Prerequisites
- Assicuratevi chì avete sudoaccess à a macchina host Linux.
- Assicuratevi chì a versione di l'ospite Linux hè Ubuntu 18.04 o Ubuntu 20.04.
- Aumentà u massimu di vigili di l'utilizatori è u massimu di istanze d'utilizatori nantu à u sistema host.
- Aghjunghjite e seguenti linee di cumanda à /etc/sysctl.confand reboot the host: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288
Installa i pacchetti host necessarii
I pacchetti d'ospiti sò stallati nantu à a macchina host Linux.
Eseguite i cumandamenti per installà i pacchetti host: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Per Ubuntu 18.04 è superiore:
$ 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 fontcon
Per più infurmazione, vede https://source.android.com/docs/setup/start/initializing.
Configurate l'ambiente docker
Un docker hè una piattaforma utilizata per custruisce, sviluppà, pruvà è furnisce software. Per cumpilà u SDK, u docker deve esse cunfiguratu nantu à a macchina host Linux.
Assicuratevi chì a virtualizazione di CPU hè attivata nantu à a macchina host Linux. Se ùn hè micca attivatu, fate ciò chì segue per attivà da i paràmetri di cunfigurazione di u sistema di input / output (BIOS) di basa:
- Abilita a virtualizazione da u BIOS:
a. Preme F1 o F2 quandu u sistema hè avviatu per passà in u BIOS. A finestra di u BIOS hè visualizata.
b. Cambia à a tabulazione Avanzate.
c. In a sezione Configurazione CPU, stabilisce Tecnulugia di Virtualizazione à Abilitatu.
a. Press F12 per salvà è esce, è dopu ripigliate u sistema.
Se sti passi ùn funzionanu micca, seguite l'istruzzioni specifiche da u fornitore di u sistema per attivà a virtualizazione - Eliminate qualsiasi vechji istanze di u docker:
$ sudo apt remove docker-desktop
$ rm -r $HOME/.docker/desktop
$ sudo rm /usr/local/bin/com.docker.cli
$ sudo apt purge docker-desktop - Configurate u repositoriu remoto di docker:
$ 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) stable" | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null - Installa u mutore docker:
$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli - Aghjunghjite l'utilizatore à u gruppu docker:
$ sudo groupadd docker $ sudo usermod -aG docker $USER - Reboot u sistema.
Generate una piattaforma SDK
U SDK di a piattaforma hè un requisitu obligatoriu per cumpilà i strumenti Qualcomm TFLite SDK. Fornisce tutte e dipendenze di a piattaforma richieste da u SDK Qualcomm TFLite.
Fate i seguenti per generà u SDK di a piattaforma:
- Crea una build per u pruduttu software preferitu.
L'istruzzioni per custruisce a QCS8550.LE.1.0release sò furnite in e note di liberazione. Per accede à e note di liberazione, vede References.
Se l'imaghjini sò stati custruiti prima, eseguite u passu 2, è poi creanu una custruzione pulita. - Eseguite u cumandimu seguitu per custruisce l'imaghjini di u spaziu di l'utilizatori è u SDK di a piattaforma:
Per QCS8550.LE.1.0, aghjunghje a funzione di a macchina qti-tflite-delegate in MACHINE_FEATURES in u kalama.conf file è fonte l'ambiente di custruzzione secondu l'istruzzioni da e note di liberazione.
Dopu avè generatu l'imaghjini di u spaziu di l'utilizatori da a custruzione, eseguite u cumandimu seguitu per generà a piattaforma SDK.
$ bitbake -fc populate_sdk qti-robotics-image
Custruisce strumenti Qualcomm TFLite SDK - flussu di travagliu di sviluppatore
U flussu di travagliu di strumenti Qualcomm TFLite SDK richiede chì u sviluppatore furnisce a cunfigurazione file cù entrate valide di input. I scripts di cunchiglia d'aiutu da u prughjettu tflite-tools (presente in l'arbulu di fonti Qualcomm TFLite SDK) furniscenu funzioni di utilità d'aiutu per stabilisce l'ambiente di cunchiglia, chì pò esse usatu per u flussu di travagliu Qualcomm TFLite SDK.
U sviluppatore custruisce i prughjetti Qualcomm TFLite SDK in u containeru è genera l'artefatti utilizendu l'utilità furnite da tflite-tools.
Dopu chì un cuntinuu Qualcomm TFLite SDK hè custruitu, u sviluppatore pò attaccà à u cuntinuu è aduprà l'utilità di l'aiutu in l'ambiente di cunchiglia di cuntainer per u sviluppu continuu.
- Ci hè una pruvisione per installà l'artefatti Qualcomm TFLite SDK à un dispositivu Qualcomm cunnessu à l'ospite Linux via USB / adb.
- Ci hè ancu una pruvisione per copià l'artefatti Qualcomm TFLite SDK da u cuntinuu à una macchina host differente induve u dispusitivu Qualcomm hè cunnessu.
A figura seguente elenca l'inseme di utilità dispunibuli dopu a stallazione di l'ambiente di custruzzione di u containeru utilizendu i script d'aiutu per custruisce u SDK Qualcomm TFLite.
A figura mostra a sequenza di esecuzione di l'utilità:
Figura 4-3 Sequenza di utilità in host
Sincronizza è custruisce Qualcomm TFLite SDK
U SDK Qualcomm TFLite hè cumpilatu quandu l'imaghjini docker hè creatu. Per sincronizà è custruisce u SDK Qualcomm TFLite, fate u seguente:
- Crea un repertoriu nantu à l'ospite file sistema per sincronizà u spaziu di travagliu Qualcomm TFLite SDK. Per
exampLe: $mkdir $cd - Scaricate u codice fonte Qualcomm TFLite SDK da 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 release && repo sync -qc –no-tags -j - Crea un repertoriu nantu à l'ospite file sistema chì pò esse muntatu in docker. Per esample: mkdir-p / Stu repertoriu pò esse creatu in ogni locu nantu à a macchina host Linux, è ùn dipende micca da induve u prughjettu Qualcomm TFLite SDK hè sincronizatu. Dopu chì u flussu di travagliu hè cumpletu in u cuntinuu, l'artefatti Qualcomm TFLite SDK ponu esse truvati in u cartulare creatu in questu passu.
- Edite a cunfigurazione JSON file presente in /tflite-tools/ targets/le-tflite-tools-builder.json cù e seguenti entrate:
"Image": "tflite-tools-builder", "Device_OS": "le", "Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “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”: “” }
Per più infurmazione nantu à e voci citate in a cunfigurazione json file, vede u Docker.md readme file à /tflite-tools/.
NOTA Per QCS8550, u delegatu Qualcomm® Hexagon™ DSP ùn hè micca supportatu. - Fonte u script per stabilisce l'ambiente:
$ cd /tflite-tools $ source ./scripts/host/docker_env_setup.sh - Custruite l'imaghjini di docker Qualcomm TFLite SDK: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json Se a configurazione di custruzzione falla, vede Risolve i prublemi di a configurazione di docker. Dopu à u cumpletu successu, u missaghju seguente hè visualizatu: "Status: Custruisce l'immagine cumpleta bè !!" Eseguisce stu passu crea ancu u SDK Qualcomm TFLite.
- Eseguite u cuntainer Docker Qualcomm TFLite SDK. Questu principia u cuntinuu cù u tags furnitu in a cunfigurazione JSON file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
- Attach to the container principiatu da u passu precedente.
$ docker attache
U SDK Qualcomm TFLite hè cumpilatu, è l'artefatti sò pronti per esse implementati o più ponu esse
utilizatu per generà u plug-in QIM SDK TFLite.
Cunnette u dispositivu à l'ospitu è implementà artefatti]
Dopu a compilazione, ci sò dui meccanismi per cunnette u dispusitivu à un òspite è implementà u
Artefatti Qualcomm TFLite SDK.
- Dispositivu cunnessu à un host Linux locale:
Un sviluppatore cunnetta u dispusitivu à una stazione di travagliu è stalla l'artefatti Qualcomm TFLite SDK da u containeru direttamente nantu à u dispusitivu (QCS8550). - Dispositivu cunnessu à un host remoto:
Un sviluppatore cunnetta u dispositivu à una stazione di travagliu remota, è ponu utilizà i cumandamenti di l'installatore di u pacchettu di pacchettu nantu à e plataforme Windows è Linux per installà l'artefatti Qualcomm TFLite SDK à u dispusitivu (QCS8550)
Figura 4-4 Cunnessione di a scheda di u dispositivu à u sviluppatore è a stazione di travagliu remota
Cunnette u dispusitivu à a stazione di travagliu
U dispusitivu hè cunnessu à a stazione di travagliu è u cuntinuu di sviluppu pò accede à u dispusitivu per USB / adb.
A figura mostra u staghè in a sequenza di u flussu di travagliu Qualcomm TFLite SDK:
- Eseguite i seguenti cumandamenti per installà l'artefatti à u dispusitivu:
$ tflite-tools-device-prepare
$ tflite-tools-device-deploy - Per disinstallà l'artefatti, eseguite u cumandimu seguente:
$ tflite-tools-device-packages-remove
Cunnette u dispusitivu à a macchina remota
U dispusitivu hè culligatu à una macchina remota, è u cuntinuu Qualcomm TFLite SDK ùn pò accede à u dispusitivu sopra USB / ad b.
A figura mostra u staghè in a sequenza di u flussu di travagliu Qualcomm TFLite SDK:
Eseguite i seguenti cumandamenti in u containeru tflite-tools per copià l'artefatti in una macchina remota
secondu u gestore di pacchetti nantu à u dispusitivu:
$ tflite-tools-remote-sync-ipk-rel-pkg
NOTA L'infurmazione di a macchina remota hè furnita in a cunfigurazione JSON file.
Installa artefatti per a piattaforma Windows
L'artefatti Qualcomm TFLite SDK ponu esse installati nantu à u dispusitivu basatu annantu à u sistema operatore di a macchina remota.
Per a piattaforma Windows, fate u seguente:
In PowerShell, utilizate u script seguente: PS C:
> adb root PS C:> adb disable-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb root 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 u pacchettu hè un ipk (per QCS8550.LE.1.0), utilizate i seguenti cumandamenti: PS C:> adb shell " opkg -force-depends -force-reinstall -force-overwrite install /tmp/"
Installa artefatti per a piattaforma Linux
Aduprate i seguenti cumandamenti:
$ adb root $ adb disable-verity $ adb reboot $ adb wait-for-device $ adb root $ adb remount $ adb shell mount -o remount,rw / $ adb shell "mkdir -p /tmp" $ adb push /tmp If u pacchettu hè un ipk (per QCS8550.LE.1.0): $ adb shell "opkg -force-depends -force-reinstall -force-overwrite install /tmp/"
Pulisce l'immagine docker
Dopu avè finitu u flussu di travagliu di u sviluppatore, l'ambiente docker deve esse puliti per liberà l'almacenamiento in u discu. A pulizia di u docker elimina i cuntenituri è l'imaghjini inutilizati, liberendu cusì u spaziu di discu.
Aduprate i seguenti cumandamenti per pulizziari l'imagine docker:
- Eseguite u cumandimu seguitu nantu à a stazione di travagliu Linux:
$ cd /tflite-tools - Ferma u cuntinuu:
$ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json - Eliminate u cuntinuu:
$ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json - Eliminate l'imaghjini docker più vechje:
$ tflite-tools-host-images-cleanup
Risolve i prublemi di cunfigurazione di docker
Se u cumandamentu tflite-tools-host-build-image torna un Nospace lasciatu nantu à u messagiu di u dispositivu, allora move u repertoriu docker à / local / mnt. Fate i seguenti per risolve i prublemi di a stallazione:
- Fate una copia di salvezza di u docker esistente files:
$ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date + %s).tar.gz - Ferma u docker:
$ service docker stop - Verificate chì nisun prucessu docker hè in esecuzione:
$ ps faux | grep docker - Verificate a struttura di u cartulare docker:
$ sudo ls /var/lib/docker/ - Sposta u cartulare docker à una nova partizione:
$ mv /var/lib/docker /local/mnt/docker - Fate un ligame simbolicu à u cartulare docker in a nova partizione:
$ ln -s /local/mnt/docker /var/lib/docker - Assicuratevi chì a struttura di u cartulare docker resta invariata:
$ sudo ls /var/lib/docker/ - Start docker:
$ service docker start - Riavvia tutti i cuntenituri dopu avè spustatu u cartulare docker.
Generate TFLite SDK cù a stazione di travagliu Linux
U flussu di travagliu TFLite SDK pò esse attivatu senza cuntenituri utilizendu a stazione di travagliu Linux. Questa prucedura hè una alternativa à l'usu di cuntenituri.
Per sincronizà è custruisce u SDK Qualcomm TFLite, fate u seguente:
- Crea un repertoriu nantu à l'ospite file sistema per sincronizà u spaziu di travagliu Qualcomm TFLite SDK. Per esampLe:
$mkdir
$cd - Scaricate u codice fonte Qualcomm TFLite SDK da 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 release && repo sync -qc –no-tags -j8 && repo sync -qc -no-tags -j8 - 3. Edite a cunfigurazione JSON file presente in /tflite-tools/ targets/le-tflite-tools-builder.json cù e seguenti entrate
"Image": "tflite-tools-builder", "Device_OS": "le", "Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “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”: “”
Per più infurmazione nantu à e voci citate in a cunfigurazione json file, vede u Docker.md readme file à /tflite-tools/.
NOTA Per QCS8550, u delegatu Hexagon DSP ùn hè micca supportatu - Fonte u script per stabilisce l'ambiente:
$ cd /tflite-tools
$ source ./scripts/host/host_env_setup.sh - Custruisce u SDK Qualcomm TFLite.
$ tflite-tools-setup targets/le-tflite-tools-builder.json - Eseguite i seguenti cumandamenti di utilità in a stessa shell Linux per cullà l'artefatti TFLite SDK da
TFLite_rsync_destination.
$ tflite-tools-host-get-rel-package targets/le-tflite-tools-builder.json
$ tflite-tools-host-get-dev-package targets/le-tflite-tools-builder.json - Installa artefatti basatu annantu à u sistema operatore
- Per a piattaforma Windows, nantu à PowerShell, utilizate u script seguente
PS C:> adb root PS C:> adb disable-verity PS C:> adb reboot PS C:> adb wait-for-device PS C:> adb root 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 u pacchettu hè un ipk (per QCS8550.LE.1.0), utilizate i seguenti cumandamenti:
PS C:> adb shell "opkg -force-depends -force-reinstall -forceoverwrite install /tmp/
Per a piattaforma Linux, utilizate u script seguente:
$ adb root $ adb disable-verity $ adb reboot $ adb wait-for-device $ adb root $ adb remount $ adb shell mount -o remount,rw / $ adb shell "mkdir -p /tmp" $ adb push /tmp Se u pacchettu hè un ipk (per QCS8550.LE.1.0):
$ adb shell "opkg -force-depends -force-reinstall -force-overwrite install /tmp/"
- Per a piattaforma Windows, nantu à PowerShell, utilizate u script seguente
Genera artefatti Qualcomm TFLite SDK per a creazione di QIM SDK
Per utilizà l'artefatti generati per attivà u plug-in Qualcomm TFLite SDK GStreamer in QIM SDK, fate u seguente:
- Cumplete a prucedura in Sync è custruisce Qualcomm TFLite SDK, è poi eseguite u cumandimu seguente: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
Un catrame file hè generatu. Contene u SDK Qualcomm TFLite à u percorsu furnitu à "TFLite_rsync_destination" - Per attivà u plug-in Qualcomm TFLite SDK GStreamer, utilizate u tar file cum'è un argumentu in a cunfigurazione JSON file per a creazione di QIM SDK.
Per informazioni nantu à cumpilà QIM SDK, vede Qualcomm Intelligent Multimedia SDK (QIM SDK) Quick Start Guide (80-50450-51).
Custruisce Qualcomm TFLite SDK in modu incrementale
Se custruite u Qualcomm TFLite SDK per a prima volta, vede Custruisce strumenti Qualcomm TFLite SDK - flussu di travagliu di sviluppatore. U listessu ambiente di custruzzione pò esse riutilizatu per u sviluppu incrementale.
L'utilità d'aiutu (in u cuntinuu) citati in a figura sò dispunibuli per i sviluppatori per cumpilà l'applicazioni modificate è i plug-in.
Figura 5-1 Workflow in un containeru
Dopu chì i cambiamenti di codice sò finiti in u cartulare di codice, fate u seguente:
- Cumpilà u codice mudificatu:
$ tflite-tools-incremental-build-install - Codice compilatu di u pacchettu:
$ tflite-tools-ipk-rel-pkg o $ tflite-tools-deb-rel-pkg - Sincronizza i pacchetti di liberazione cù l'ospite file sistema:
$ tflite-tools-remote-sync-ipk-rel-pkg
Or
$ tflite-tools-remote-sync-deb-rel-pkg - Preparate un pacchettu di sviluppu:
$ tflite-tools-ipk-dev-pkg
L'artefatti compilati si trovanu in u cartulare TFLite_rsync_destination citatu in u JSON. file, chì pò esse copiatu in ogni repertoriu.
U travagliu cù u Delegatu TFLite esternu di QNN
Un Delegatu Esternu TFLite permette di eseguisce i vostri mudelli (parte o sanu) nantu à un altru esecutore utilizendu biblioteche furnite da un terzu di fiducia cum'è QNN da Qualcomm. Stu mecanismu pò sfruttà una varietà di acceleratori in u dispositivu cum'è a GPU o Hexagon Tensor Processor (HTP) per inferenza. Questu furnisce i sviluppatori un metudu flessibile è disaccoppiatu da u TFLite predeterminatu per accelerà l'inferenza.
Prerequisites:
- Assicuratevi di utilizà una stazione di travagliu Ubuntu per estrarre a pila QNN AI.
- Assicuratevi chì aduprate una versione QNN 2.14 per esse in cunghjunzione cù Qualcomm TFLite SDK
U SDK Qualcomm TFLite hè attivatu per eseguisce inferenze nantu à parechji back-end QNN attraversu Delegatu esternu TFLite per QNN. I mudelli TFLite cù una rapprisintazioni flatbuffer cumuni ponu esse eseguiti in GPU è HTP.
Dopu chì i pacchetti Qualcomm TFLite SDK sò stallati nantu à u dispusitivu, fate u seguente per installà e librerie QNN in u dispusitivu.
- Scaricate Qualcomm Package Manager 3 per Ubuntu.
a. Cliccate https://qpm.qualcomm.com/, è cliccate Strumenti.
b. In u pane di manca, in u campu di Strumenti di ricerca, scrivite QPM. Da a lista System OS, selezziunate Linux.
I risultati di ricerca mostranu una lista di Qualcomm Package Managers.
c. Selezziunate Qualcomm Package Manager 3 è scaricate u pacchettu Linux Debian. - Installa Qualcomm Package Manager 3 per Linux. Aduprate u cumandimu seguitu:
$ dpkg -i –force-overwrite /path/to/
QualcommPackageManager3.3.0.83.1.Linux-x86.deb - Scaricate u Qualcomm®
AI Engine Direct SDK nantu à a stazione di travagliu Ubuntu.
a. Cliccate https://qpm.qualcomm.com/ è cliccate Strumenti.
b. In u pane di manca, in u campu di Strumenti di ricerca, scrivite AI stack. Da a lista System OS, selezziunate Linux.
A A lista a discesa chì cuntene diversi mutori di stack AI hè visualizata.
c. Cliccate Qualcomm® AI Engine Direct SDK è scaricate u pacchettu Linux v2.14.0. - Installa Qualcomm® AI Engine Direct SDK nantu à a stazione di travagliu Ubuntu.
a. Attivà a licenza:
qpm-cli -license-activate qualcomm_ai_engine_direct
b Installa AI Engine Direct SDK:
$ qpm-cli –extract /path/to/qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik - Push biblioteche à u dispusitivu da a stazione di travagliu Ubuntu cù 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/nSkelt/V libQ73/nSkelt. cusì /usr/lib/rfsa/adsp
Pruvate Qualcomm TFLite SDK
U SDK Qualcomm TFLite furnisce certi example applicazioni, chì ponu esse aduprate per validà, benchmark, è uttene l'accuratezza di i mudelli chì un sviluppatore vole valutà.
Dopu chì i pacchetti Qualcomm TFLite SDK sò stallati nantu à u dispusitivu, u runtime hè dispunibule nantu à u dispusitivu per eseguisce questi ex.ample applicazioni.
Prerequisite
Crea i seguenti cartulari nantu à u dispusitivu:
$ adb shell "mkdir /data/Models"
$ adb shell "mkdir /data/Lables"
$ adb shell "mkdir /data/profiling"
L'immagine di l'etichetta
Una maghjina di l'etichetta hè una utilità furnita da u SDK Qualcomm TFLite chì mostra cumu pudete carricà un mudellu TensorFlow Lite pretrained è cunvertitu è l'utilizanu per ricunnosce l'uggetti in l'imaghjini. Prerequisites:
Scarica sampu mudellu è l'imagine:
Pudete utilizà qualsiasi mudellu cumpatibile, ma u seguente mudellu MobileNet v1 offre una bona dimustrazione di un mudellu furmatu per ricunnosce 1000 oggetti diffirenti.
- Pigliate un mudellu
$ 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/ - Pigliate etichette
$ 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/
Dopu avè cunnessu à u container docker Qualcomm TFLite SDK, l'imaghjini pò esse truvata à:
"/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp"
a. Spingi questu file à/dati/etichette/
b. Eseguite u cumandimu:
$ adb shell "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
Qualcomm TFLite SDK furnisce l'uttellu di benchmarking per calculà u rendiment di diversi tempi di esecuzione.
Questi strumenti di benchmark attualmente misuranu è calculanu statistiche per e seguenti metriche di rendiment impurtanti:
- Tempu di inizializazione
- U tempu di inferenza di u statu di riscaldamentu
- U tempu di inferenza di u statu stazionariu
- Usu di memoria durante u tempu di inizializazione
- L'usu generale di a memoria
Prerequisites
Spingi i mudelli per esse pruvati da TFLite Model Zoo (https://tfhub.dev/) à/data/Models/. Corri u seguenti scripts:
- XNN Pack
$ adb shell "benchmark_model –graph=/data/Models/ — enable_op_profiling=true –use_xnnpack=true –num_threads=4 –max_secs=300 –profiling_output_csv_file=/data/profiling/” - Delegatu GPU
$ adb shell “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=/data/profiling/” - Delegatu Esternu
QNN Delegatu Esternu GPU:
Eseguite l'inferenza cù u mudellu à virgola flottante:
$ 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/rfussrry/_libQnnGpu.so; /adsp'"
QNN Delegatu Esternu HTP:
Eseguite inferenza cù u mudellu quant:
$ 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;lib/dirrlisbrary_ /adsp'"
Strumentu di precisione
U SDK Qualcomm TFLite furnisce un strumentu di precisione per calculà l'accuratezza di mudelli cù diversi run-times.
- Classificazione cù u delegatu GPU
I passi per scaricà u necessariu files per pruvà si trova à: "/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/ imagenet_image_classificatio/README.md"
U binariu per eseguisce stu strumentu hè digià parte di u SDK, perchè u sviluppatore ùn hà micca bisognu di custruisce di novu.
$ adb shell "image_classify_run_eval - model_file=/data/Models/ –ground_truth_images_path=/data/ — ground_truth_labels=/data/ –model_output_labels=/ data/ –delegate=gpu” - Rilevamentu di l'ughjettu cù u pacchettu XNN
$ adb shell "inf_diff_run_eval -model_file=/data/Models/ –delegate=xnnpac
INFORMAZIONI LEGALI
U vostru accessu è usu di stu documentu, cù qualsiasi specificazioni, bordu di riferimentu files, disegni, diagnostichi è altre informazioni cuntenute quì (collettivamente questu "Documentazione"), hè sottumessu à u vostru (cumpresa a corporazione o altra entità giuridica chì rapprisentanu, cullettivamente "Tu" o "U vostru") accettazione di i termini è e cundizioni ("Condizioni di usu") stabilitu quì sottu. Se ùn avete micca d'accordu à sti Termini d'Usu, ùn pudete micca aduprà sta Documentazione è distrughjerà immediatamente ogni copia.
- Avvisu Legale.
Sta Documentazione hè dispunibule per voi solu per u Vostru usu internu cù quelli prudutti è offerte di serviziu di Qualcomm Technologies, Inc. ("Qualcomm Technologies") è i so affiliati descritti in sta Documentazione, è ùn deve esse aduprata per altri scopi. Sta Documentazione ùn pò esse alterata, editata o mudificata in ogni modu senza l'appruvazioni scritta di Qualcomm Technologies. Usu micca autorizatu o divulgazione di questu
A documentazione o l'infurmazioni cuntenute quì hè strettamente pruibita, è accettate di indemnizà Qualcomm Technologies, i so affiliati è licenziatori per qualsiasi danni o perdite subiti da Qualcomm Technologies, i so affiliati è licenziatori per tali usi o divulgazioni non autorizati di sta Documentazione, in tuttu o. parte. Qualcomm Technologies, i so affiliati è i licenziatori conservanu tutti i diritti è a pruprietà in questa Documentazione. Nisuna licenza à alcuna marca, patente, copyright, u dirittu di prutezzione di u travagliu di maschera o qualsiasi altru dirittu di pruprietà intellettuale hè cuncessa o implicata da sta Documentazione o qualsiasi informazione divulgata quì, cumprese, ma senza limitazione, qualsiasi licenza per fà, utilizà, impurtà o vende qualsiasi pruduttu, serviziu o offerta di tecnulugia chì incarna l'infurmazioni in questa Documentazione.
STA DOCUMENTAZIONE SERA FORNITA "COME E'" SENZA GARANTIA DI ALCUNA TIPI, SIA ESPRESSA, IMPLICITA, STATUTARIA O ALTRU. À LA MASSIMA MESSA PERMISSATA DA LEGGE, QUALCOMM TECHNOLOGIES, I SO AFFILIATI È I LICENZIANTI SPECIFICAMENTE DECLINAN TUTTE GARANTIE DI TITOLU, COMMERCIABILITÀ, NON VIOLAZIONE, IDONEITÀ PER UN SCOPO PARTICULARI, SODDISFATTU, QUALITÀ DI GARANTITÀ, A SATISFATTIZZA USU COMMERCIALE OR FORA D'UN CURSU DI TRATTÀ O CURSU DI PRESTA. D'OLTRE, NÈ QUALCOMM TECHNOLOGIES, NÈ NÈ SUE AFFILIATE O LICENSORS, SERA RESPONSABILE DI VOI O DI TERZI PER QUALSIASI SPESE, PERDITE, USU, O ACZIONI IN QUANTO TU IMPRENDITI O FATTI DA VOI IN RELICUMENTA.
Certi kits di prudutti, arnesi è materiali riferiti in sta Documentazione ponu esse bisognu di accettà termini è cundizioni supplementari prima di accede o di utilizà quelli elementi.
I dati tecnichi specificati in sta Documentazione ponu esse sottumessi à i Stati Uniti è altre lege di cuntrollu di l'esportazione applicabili. A trasmissione contru à i Stati Uniti è qualsiasi altra legge applicabile hè strettamente pruibita.
Nunda in questa Documentazione ùn hè una offerta per vende qualsiasi di i cumpunenti o di i dispositi riferiti quì.
Questa Documentazione hè sughjetta à cambià senza più avvisu. In casu di cunflittu trà sti Termini d'usu è u WebTermini di usu di u situ nantu à www.qualcomm.com o a Politica di privacy di Qualcomm riferita www.qualcomm.com, sti Termini d'Usu cuntrulleranu. In casu di cunflittu trà questi Termini d'Usu è qualsiasi altru accordu (scrittu o clicatu) eseguitu da Voi è Qualcomm Technologies o un affiliatu Qualcomm Technologies in quantu à u Vostru accessu è l'usu di sta Documentazione, l'altru accordu cuntrullà. .
Questi Termini d'Usu seranu guvernati è interpretati è infurzati in cunfurmità cù e lege di u Statu di California, escludendu a Cunvenzione di l'ONU nantu à a Vendita Internaziunale di Merchandise, senza riguardu à i principii di cunflittu di liggi. Qualchese disputa, rivendicazione o cuntruversia derivante da o in relazione cù questi Termini d'Usu, o a violazione o a validità di queste, serà ghjudicata solu da un tribunale di ghjuridizione competente in u conte di San Diego, Statu di California, è voi accunsentite a ghjuridizione persunale di tali tribunale per questu scopu. - Dichjarazioni d'attribuzione di marca è produttu.
Qualcomm hè una marca o una marca registrata di Qualcomm Incorporated. Arm hè una marca registrata di Arm Limited (o i so filiali) in i Stati Uniti è / o in altrò. A marca Bluetooth® hè una marca registrata di Bluetooth SIG, Inc. Altri prudutti è nomi di marca riferiti in questa Documentazione ponu esse marchi o marchi registrati di i so rispettivi pruprietarii.
I prudutti di Snapdragon è Qualcomm riferiti in questa Documentazione sò prudutti di Qualcomm Technologies, Inc. è / o di e so filiali. I tecnulugii patentati Qualcomm sò licenziati da Qualcomm Incorporated.
Documenti / Risorse
![]() |
Software Qualcomm TensorFlow Lite SDK [pdfGuida di l'utente Software TensorFlow Lite SDK, Software Lite SDK, Software SDK, Software |