Korisnički vodič za softver Qualcomm TensorFlow Lite SDK
Istorija revizija
Revizija | Datum | Opis |
AA | septembar 2023 | Prvo izdanje |
AB | oktobar 2023 |
|
Uvod u Qualcomm TFLite SDK alate
Alati za razvoj softvera Qualcomm TensorFlow Lite (Qualcomm TFLite SDK) pružaju TensorFlow Lite okvir za inferenciju umjetne inteligencije (AI) na uređaju, što olakšava programerima aplikacija da razviju ili pokreću odgovarajuće AI aplikacije.
Ovaj dokument pruža uputstva korak po korak za sastavljanje samostalnog Qualcomm TFLite SDK-a i postavljanje razvojnog okruženja. Ovo omogućava razvojni tok rada, koji uključuje:
- postavljanje okruženja za pravljenje u kojem programer može kompajlirati Qualcomm TFLite SDK
- razvoj samostalnih Qualcomm TFLite SDK aplikacija
Za podršku, pogledajte https://www.qualcomm.com/podrška. Sljedeća slika daje sažetak toka rada Qualcomm TFLite SDK: ”
Slika 1-1 tok rada Qualcomm TFLite SDK
Alat zahtijeva platformski SDK i konfiguraciju file (JSON format) za generiranje Qualcomm TFLite SDK artefakata.
Da biste napravili aplikaciju od kraja do kraja koristeći podsisteme multimedije, AI i kompjuterskog vida (CV), pogledajte Vodič za brzi početak Qualcomm Intelligent Multimedia SDK (QIM SDK) (80-50450-51).
Tabela prikazuje mapiranje Qualcomm TFLite SDK verzije s CodeLinaro izdanjem tag:
Tabela 1-1 Informacije o izdanju
Qualcomm TFLite SDK verzija | CodeLinaro izdanje tag |
V1.0 | Qualcomm TFLITE.SDK.1.0.r1-00200-TFLITE.0 |
Tabela 1-2 Podržane verzije Qualcomm TFLite SDK-a
Qualcomm TFLite SDK verzija | Podržani softverski proizvod | Podržana verzija TFLite |
V1.0 | QCS8550.LE.1.0 |
|
|
||
|
||
|
||
|
||
|
Reference
Tabela 1-3 Povezani dokumenti
Naslov | Broj |
Qualcomm | |
00067.1 Napomena o izdanju za QCS8550.LE.1.0 | RNO-230830225415 |
Qualcomm Intelligent Multimedia SDK (QIM SDK) Vodič za brzi početak | 80-50450-51 |
Referenca za Qualcomm Intelligent Multimedia SDK (QIM SDK). | 80-50450-50 |
Resursi | |
https://source.android.com/docs/setup/start/initializing | – |
Tabela 1-4 Akronimi i definicije
Akronim ili termin | Definicija |
AI | Umjetna inteligencija |
BIOS | Osnovni ulazno/izlazni sistem |
CV | Kompjuterski vid |
IPK | Njegov paket file |
QIM SDK | Qualcomm inteligentni multimedijalni softverski komplet za razvoj |
SDK | Komplet za razvoj softvera |
TFLite | TensorFlow Lite |
XNN | Xth najbliži komšija |
Postavite okruženje za izradu Qualcomm TFLite SDK alata
Qualcomm TFLite SDK alati su objavljeni u izvornom obliku; stoga je uspostavljanje okruženja za kompajliranje obavezno, ali jednokratno podešavanje.
Preduvjeti
- Uvjerite se da imate sudo pristup Linux host stroju.
- Uvjerite se da je Linux host verzija Ubuntu 18.04 ili Ubuntu 20.04.
- Povećajte maksimalan broj pregleda korisnika i maksimalan broj korisničkih instanci na host sistemu.
- Dodajte sljedeće komandne linije u/etc/sysctl.conf i ponovno pokrenite host: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288
Instalirajte potrebne host pakete
Host paketi su instalirani na Linux host mašini.
Pokrenite komande da instalirate host pakete: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Za Ubuntu 18.04 i novije verzije:
$ 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 ugnzi xsltproc
Za više informacija pogledajte https://source.android.com/docs/setup/start/initializing.
Postavite docker okruženje
Docker je platforma koja se koristi za izgradnju, razvoj, testiranje i isporuku softvera. Za kompajliranje SDK-a, docker mora biti konfiguriran na Linux host stroju.
Uvjerite se da je virtualizacija CPU-a omogućena na Linux host stroju. Ako nije omogućeno, učinite sljedeće da ga omogućite iz osnovnih postavki konfiguracije ulazno/izlaznog sistema (BIOS):
- Omogućite virtuelizaciju iz BIOS-a:
a. Pritisnite F1 ili F2 kada se sistem pokreće da uđete u BIOS. Prikazuje se BIOS prozor.
b. Prebacite se na karticu Napredno.
c. U odjeljku CPU Configuration, postavite Virtualization Technology na Enabled.
a. Pritisnite F12 da sačuvate i izađete, a zatim ponovo pokrenite sistem.
Ako ovi koraci ne rade, slijedite posebne upute od dobavljača sistema da omogućite virtuelizaciju - Uklonite sve stare instance docker-a:
$ sudo apt ukloniti docker-desktop
$ rm -r $HOME/.docker/desktop
$ sudo rm /usr/local/bin/com.docker.cli
$ sudo apt purge docker-desktop - Postavite docker udaljeno spremište:
$ 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) stabilan” | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null - Instalirajte docker engine:
$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli - Dodajte korisnika u docker grupu:
$ sudo groupadd docker $ sudo usermod -aG docker $USER - Ponovo pokrenite sistem.
Generirajte platformski SDK
SDK platforme je obavezan uslov za kompajliranje Qualcomm TFLite SDK alata. Pruža sve potrebne ovisnosti o platformi koje zahtijeva Qualcomm TFLite SDK.
Uradite sljedeće da generišete platformski SDK:
- Napravite build za željeni softverski proizvod.
Instrukcije za izradu QCS8550.LE.1.0izdanja su date u bilješkama o izdanju. Za pristup bilješkama o izdanju pogledajte Reference.
Ako su slike prethodno napravljene, izvršite korak 2, a zatim kreirajte čistu verziju. - Pokrenite sljedeću naredbu da napravite slike korisničkog prostora i SDK platforme:
Za QCS8550.LE.1.0, dodajte funkciju mašine qti-tflite-delegate u MACHINE_FEATURES u kalama.conf file i izvor okoline za izgradnju prema uputama iz napomena o izdanju.
Nakon generiranja slika korisničkog prostora iz build-a, pokrenite sljedeću naredbu da generišete platformski SDK.
$ bitbake -fc populate_sdk qti-robotics-image
Izgradite Qualcomm TFLite SDK alate – tok rada programera
Radni tok alata Qualcomm TFLite SDK zahtijeva od programera da obezbijedi konfiguraciju file sa važećim unosima. Skripte pomoćne ljuske iz projekta tflite-tools (prisutne u izvornom stablu Qualcomm TFLite SDK) pružaju pomoćne funkcije za postavljanje okruženja ljuske, koje se može koristiti za tok rada Qualcomm TFLite SDK.
Programer gradi Qualcomm TFLite SDK projekte unutar kontejnera i generiše artefakte koristeći uslužne programe koje obezbjeđuje tflite-tools.
Nakon što je napravljen Qualcomm TFLite SDK kontejner, programer se može priključiti na kontejner i koristiti pomoćne uslužne programe u okruženju ljuske kontejnera za kontinuirani razvoj.
- Postoji odredba za instaliranje artefakata Qualcomm TFLite SDK na Qualcomm uređaj povezan na Linux host putem USB/adb.
- Takođe postoji odredba za kopiranje Qualcomm TFLite SDK artefakata iz kontejnera na drugu host mašinu na koju je Qualcomm uređaj povezan.
Sljedeća slika navodi skup uslužnih programa dostupnih nakon postavljanja okruženja za izgradnju kontejnera pomoću pomoćnih skripti za izgradnju Qualcomm TFLite SDK-a.
Na slici je prikazan redoslijed izvršavanja uslužnih programa:
Slika 4-3 Redoslijed uslužnih programa na hostu
Sinhronizirajte i napravite Qualcomm TFLite SDK
Qualcomm TFLite SDK se kompajlira kada se kreira docker slika. Da biste sinhronizovali i napravili Qualcomm TFLite SDK, uradite sledeće:
- Kreirajte direktorij na hostu file sistem za sinhronizaciju radnog prostora Qualcomm TFLite SDK. Za
example: $mkdir $cd - Preuzmite izvorni kod Qualcomm TFLite SDK sa 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 - Kreirajte direktorij na hostu file sistem koji se može montirati u docker. Za nprample: mkdir-p / Ovaj direktorij se može kreirati bilo gdje na Linux host stroju i ne ovisi o tome gdje se sinkronizira Qualcomm TFLite SDK projekt. Nakon što se tok posla završi unutar kontejnera, artefakti Qualcomm TFLite SDK mogu se pronaći u direktoriju kreiranom u ovom koraku.
- Uredite JSON konfiguraciju file prisutan u /tflite-tools/ targets/le-tflite-tools-builder.json sa sljedećim unosima:
“Image”: “tflite-tools-builder”, “Device_OS”: “le”, “Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegati”: { “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”: “” }
Za više informacija o unosima navedenim u json konfiguraciji file, pogledajte Docker.md readme file na /tflite-tools/.
NAPOMENA Za QCS8550, Qualcomm® Hexagon™ DSP delegat nije podržan. - Izvor skripte za postavljanje okruženja:
$ cd /tflite-tools $ source ./scripts/host/docker_env_setup.sh - Napravite docker sliku za Qualcomm TFLite SDK: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json Ako postavka izgradnje ne uspije, pogledajte Rješavanje problema s postavljanjem dockera. Nakon uspješnog završetka, prikazuje se sljedeća poruka: “Status: Izrada slike je uspješno završena!!” Izvođenje ovog koraka gradi i Qualcomm TFLite SDK.
- Pokrenite Qualcomm TFLite SDK docker kontejner. Ovo pokreće kontejner sa tags dato u JSON konfiguraciji file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
- Pričvrstite na kontejner počevši od prethodnog koraka.
$ docker attach
Qualcomm TFLite SDK je kompajliran, a artefakti su spremni za implementaciju ili se mogu dalje
koristi se za generiranje QIM SDK TFLite dodatka.
Povežite uređaj s hostom i implementirajte artefakte]
Nakon kompilacije, postoje dva mehanizma za povezivanje uređaja s hostom i implementaciju
Qualcomm TFLite SDK artefakti.
- Uređaj povezan na lokalni Linux host:
Programer povezuje uređaj sa radnom stanicom i instalira Qualcomm TFLite SDK artefakte iz kontejnera direktno na uređaj (QCS8550). - Uređaj povezan na udaljeni host:
Programer povezuje uređaj sa udaljenom radnom stanicom i može koristiti komande instalacionog programa upravitelja paketa na Windows i Linux platformama da instalira Qualcomm TFLite SDK artefakte na uređaj (QCS8550)
Slika 4-4 Povezivanje ploče uređaja sa programerom i udaljenom radnom stanicom
Povežite uređaj sa radnom stanicom
Uređaj je povezan sa radnom stanicom i razvojni kontejner može pristupiti uređaju preko USB/adb-a.
Slika prikazuje stages u slijedu procesa rada Qualcomm TFLite SDK:
- Pokrenite sljedeće naredbe da instalirate artefakte na uređaj:
$ tflite-tools-device-prepare
$ tflite-tools-device-deploy - Da deinstalirate artefakte, pokrenite sljedeću naredbu:
$ tflite-tools-device-packages-remove
Povežite uređaj sa udaljenom mašinom
Uređaj je povezan na udaljenu mašinu, a Qualcomm TFLite SDK kontejner ne može pristupiti uređaju preko USB-a/ad b.
Slika prikazuje stages u slijedu procesa rada Qualcomm TFLite SDK:
Pokrenite sljedeće naredbe u kontejneru tflite-tools da kopirate artefakte na udaljeni stroj
u zavisnosti od menadžera paketa na uređaju:
$ tflite-tools-remote-sync-ipk-rel-pkg
NAPOMENA Informacije o udaljenoj mašini date su u JSON konfiguraciji file.
Instalirajte artefakte za Windows platformu
Qualcomm TFLite SDK artefakti mogu se instalirati na uređaj na osnovu operativnog sistema udaljene mašine.
Za Windows platformu uradite sljedeće:
Na PowerShell-u koristite sljedeću skriptu: PS C:
> adb root PS C:> adb disable-verity PS C:> adb ponovno pokretanje PS C:> adb čekaj za uređaj PS C:> adb root PS C:> adb remount PS C:> adb shell mount -o ponovno montiraj, rw / PS C:> adb shell “mkdir -p /tmp” PS C:> adb push /tmp Ako je paket ipk (za QCS8550.LE.1.0), koristite sljedeće naredbe: PS C:> adb shell “ opkg –prisilno-zavisi –prisilno-ponovno instaliranje –prisilno-prepisati instalaciju /tmp/”
Instalirajte artefakte za Linux platformu
Koristite sljedeće naredbe:
$ adb root $ adb disable-verity $ adb ponovno pokretanje $ adb čekanje-uređaj $ adb root $ adb ponovno montiranje $ adb shell mount -o remount,rw / $ adb shell “mkdir -p /tmp” $ adb push /tmp Ako paket je ipk (za QCS8550.LE.1.0): $ adb shell “opkg –force-zavisi –force-reinstall –force-overwrite install /tmp/”
Očistite docker sliku
Nakon završetka toka rada programera, docker okruženje treba očistiti kako bi se oslobodila pohrana na disku. Čišćenjem docker-a uklanjaju se neiskorišteni kontejneri i slike, čime se oslobađa prostor na disku.
Koristite sljedeće naredbe za čišćenje docker slike:
- Pokrenite sljedeću naredbu na Linux radnoj stanici:
$ cd /tflite-tools - Zaustavite kontejner:
$ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json - Uklonite posudu:
$ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json - Uklonite starije docker slike:
$ tflite-tools-host-images-cleanup
Rješavanje problema s postavljanjem dockera
Ako naredba tflite-tools-host-build-image vrati poruku Nospace left on device, tada premjestite docker direktorij u/local/mnt. Učinite sljedeće da biste riješili problem sa podešavanjem:
- Napravite sigurnosnu kopiju postojećeg docker-a files:
$ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(datum + %s).tar.gz - Zaustavite docker:
$ service docker stop - Provjerite da nije pokrenut nijedan docker proces:
$ ps faux | grep docker - Provjerite strukturu docker direktorija:
$ sudo ls /var/lib/docker/ - Premjestite docker direktorij na novu particiju:
$ mv /var/lib/docker /local/mnt/docker - Napravite simboličku vezu na docker direktorij u novoj particiji:
$ ln -s /local/mnt/docker /var/lib/docker - Osigurajte da struktura docker direktorija ostane nepromijenjena:
$ sudo ls /var/lib/docker/ - Pokreni docker:
$ service docker start - Ponovo pokrenite sve kontejnere nakon premještanja docker direktorija.
Generirajte TFLite SDK sa Linux radnom stanicom
Radni tok TFLite SDK može se omogućiti bez kontejnera pomoću Linux radne stanice. Ovaj postupak je alternativa korištenju kontejnera.
Da biste sinhronizovali i napravili Qualcomm TFLite SDK, uradite sledeće:
- Kreirajte direktorij na hostu file sistem za sinhronizaciju radnog prostora Qualcomm TFLite SDK. Za nprample:
$mkdir
$cd - Preuzmite izvorni kod Qualcomm TFLite SDK sa 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 sinhronizacija -qc –ne-tags -j8 - 3. Uredite JSON konfiguraciju file prisutan u /tflite-tools/ targets/le-tflite-tools-builder.json sa sljedećim unosima
“Image”: “tflite-tools-builder”, “Device_OS”: “le”, “Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegati”: { “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”: “”
Za više informacija o unosima navedenim u json konfiguraciji file, pogledajte Docker.md readme file at /tflite-tools/.
NAPOMENA Za QCS8550, Hexagon DSP delegat nije podržan - Izvor skripte za postavljanje okruženja:
$ cd /tflite-tools
$ source ./scripts/host/host_env_setup.sh - Napravite Qualcomm TFLite SDK.
$ tflite-tools-setup targets/le-tflite-tools-builder.json - Pokrenite sljedeće uslužne komande u istoj Linux ljusci da prikupite TFLite SDK artefakte iz
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 - Instalirajte artefakte na osnovu operativnog sistema
- Za Windows platformu, na PowerShell-u, koristite sljedeću skriptu
PS C:> adb root PS C:> adb disable-verity PS C:> adb ponovno pokretanje PS C:> adb čekaj-uređaj 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
Ako je paket ipk (za QCS8550.LE.1.0), koristite sljedeće naredbe:
PS C:> adb shell “opkg –force-zavisi –force-reinstall –forceoverwrite install /tmp/
Za Linux platformu koristite sljedeću skriptu:
$ adb root $ adb disable-verity $ adb ponovno pokretanje $ adb čekanje-uređaj $ adb root $ adb ponovno montiranje $ adb shell mount -o remount,rw / $ adb shell “mkdir -p /tmp” $ adb push /tmp Ako je paket ipk (za QCS8550.LE.1.0):
$ adb shell “opkg –force-zavisi –force-reinstall –force-overwrite install /tmp/”
- Za Windows platformu, na PowerShell-u, koristite sljedeću skriptu
Generirajte Qualcomm TFLite SDK artefakte za QIM SDK izgradnju
Da biste koristili generirane artefakte za omogućavanje dodatka Qualcomm TFLite SDK GStreamer u QIM SDK, uradite sljedeće:
- Dovršite proceduru u Sync i napravite Qualcomm TFLite SDK, a zatim pokrenite sljedeću naredbu: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
A tar file se generiše. Sadrži Qualcomm TFLite SDK na putu navedenom na “TFLite_rsync_destination” - Da biste omogućili Qualcomm TFLite SDK GStreamer dodatak, koristite tar file kao argument u JSON konfiguraciji file za QIM SDK build.
Za informacije o kompajliranju QIM SDK, pogledajte Qualcomm Intelligent Multimedia SDK (QIM SDK) Vodič za brzi početak (80-50450-51).
Kreirajte Qualcomm TFLite SDK postepeno
Ako pravite Qualcomm TFLite SDK po prvi put, pogledajte Izrada alata za Qualcomm TFLite SDK – tok rada programera. Isto okruženje za izgradnju može se ponovo koristiti za inkrementalni razvoj.
Pomoćni uslužni programi (unutar kontejnera) spomenuti na slici dostupni su programerima za kompajliranje modificiranih aplikacija i dodataka.
Slika 5-1 Tok rada u kontejneru
Nakon što se promjene koda dovrše u direktoriju kodova, učinite sljedeće:
- Sastavite izmijenjeni kod:
$ tflite-tools-incremental-build-install - Kod sastavljen od paketa:
$ tflite-tools-ipk-rel-pkg ili $ tflite-tools-deb-rel-pkg - Sinhronizirajte pakete izdanja s hostom file sistem:
$ tflite-tools-remote-sync-ipk-rel-pkg
Or
$ tflite-tools-remote-sync-deb-rel-pkg - Pripremite dev paket:
$ tflite-tools-ipk-dev-pkg
Prevedeni artefakti se nalaze na u TFLite_rsync_destination folderu spomenutom u JSON-u file, koji se može kopirati u bilo koji direktorij.
Radite sa QNN eksternim TFLite delegatom
TFLite External Delegate vam omogućava da pokrenete svoje modele (djelimično ili u cjelini) na drugom izvršiocu koristeći biblioteke koje pruža pouzdana treća strana kao što je QNN od Qualcomm-a. Ovaj mehanizam može koristiti različite akceleratore na uređaju kao što su GPU ili Hexagon Tensor Processor (HTP) za zaključivanje. Ovo pruža programerima fleksibilan i odvojen metod od zadanog TFLite-a za ubrzavanje zaključivanja.
Preduvjeti:
- Osigurajte da koristite Ubuntu radnu stanicu za izdvajanje QNN AI steka.
- Uvjerite se da koristite QNN verziju 2.14 kako biste bili u kombinaciji s Qualcomm TFLite SDK
Qualcomm TFLite SDK je omogućen za izvođenje zaključaka na nekoliko QNN back-endova preko TFLite vanjskog delegata za QNN. TFLite modeli sa zajedničkim flatbuffer prikazom mogu se izvoditi na GPU i HTP-u.
Nakon što su Qualcomm TFLite SDK paketi instalirani na uređaj, uradite sljedeće da biste instalirali QNN biblioteke na uređaj.
- Preuzmite Qualcomm Package Manager 3 za Ubuntu.
a. Kliknite https://qpm.qualcomm.com/ i kliknite na Alati.
b. U lijevom oknu, u polju Search Tools, otkucajte QPM. Sa liste Sistemski OS izaberite Linux.
Rezultati pretrage prikazuju listu Qualcommovih menadžera paketa.
c. Odaberite Qualcomm Package Manager 3 i preuzmite Linux debian paket. - Instalirajte Qualcomm Package Manager 3 za Linux. Koristite sljedeću naredbu:
$ dpkg -i –prisilno prepisati /put/do/
QualcommPackageManager3.3.0.83.1.Linux-x86.deb - Preuzmite Qualcomm®
AI Engine Direct SDK na Ubuntu radnoj stanici.
a. Kliknite https://qpm.qualcomm.com/ i kliknite na Alati.
b. U lijevom oknu, u polju Search Tools, otkucajte AI stack. Sa liste Sistemski OS izaberite Linux.
A prikazana je padajuća lista koja sadrži različite AI stack mašine.
c. Kliknite na Qualcomm® AI Engine Direct SDK i preuzmite Linux v2.14.0 paket. - Instalirajte Qualcomm® AI Engine Direct SDK na Ubuntu radnoj stanici.
a. Aktivirajte licencu:
qpm-cli –licenca-aktivacija qualcomm_ai_engine_direct
b Instalirajte AI Engine Direct SDK:
$ qpm-cli – ekstrakt /put/do/ qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik - Prebacite biblioteke na uređaj sa Ubuntu radne stanice pomoću 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 libQnnHtpV68Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v69/unsigned/ libQnnHtpV69Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-v73/lib/hexagon-v73/unsigned pa /usr/lib/rfsa/adsp
Testirajte Qualcomm TFLite SDK
Qualcomm TFLite SDK pruža određene nprample aplikacije, koje se mogu koristiti za validaciju, benchmark i dobijanje tačnosti modela koje programer želi da proceni.
Nakon što su Qualcomm TFLite SDK paketi instalirani na uređaj, vrijeme izvođenja je dostupno na uređaju za pokretanje ovih example applications.
Preduvjet
Kreirajte sljedeće direktorije na uređaju:
$ adb shell “mkdir /data/Models”
$ adb shell “mkdir /data/Lables”
$ adb shell “mkdir /data/profiling”
Slika etikete
Slika naljepnice je uslužni program koji pruža Qualcomm TFLite SDK koji pokazuje kako možete učitati unaprijed obučeni i konvertirani TensorFlow Lite model i koristiti ga za prepoznavanje objekata na slikama. Preduvjeti:
Preuzmite sampmodel i slika:
Možete koristiti bilo koji kompatibilan model, ali sljedeći MobileNet v1 model nudi dobru demonstraciju modela obučenog za prepoznavanje 1000 različitih objekata.
- Uzmi model
$ 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/ - Nabavite etikete
$ 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/
Nakon što se povežete na Qualcomm TFLite SDK docker kontejner, slika se može pronaći na:
“/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/testdata/grace_hopper.bmp”
a. Gurni ovo file do/podaci/oznake/
b. Pokrenite naredbu:
$ 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 pruža alat za benchmarking za izračunavanje performansi različitih vremena rada.
Ovi benchmark alati trenutno mjere i izračunavaju statistiku za sljedeće važne metrike učinka:
- Vrijeme inicijalizacije
- Vrijeme zaključivanja stanja zagrijavanja
- Vrijeme zaključivanja stabilnog stanja
- Upotreba memorije tokom vremena inicijalizacije
- Ukupna potrošnja memorije
Preduvjeti
Pogurajte modele za testiranje iz TFLite Model Zoo (https://tfhub.dev/) to/data/Models/. Pokreni sljedeće skripte:
- 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=/podaci/profiliranje/” - GPU Delegat
$ 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=/podaci/profiliranje/” - Eksterni delegat
QNN vanjski delegat GPU:
Izvođenje zaključivanja s modelom s pomičnim zarezom:
$ 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; /adsp'”
QNN vanjski delegat HTP:
Izvedite zaključak s kvantnim modelom:
$ adb shell-command “benchmark_model –graph=/data/Models/ .tflite –external_delegate_path=libQnnTFLiteDelegate.so — external_delegate_options='backend_type:htp;library_path:/usr/lib/ libQnnHtrary/libQnnHtr:usrary/libQnnHtp. /adsp'”
Alat za preciznost
Qualcomm TFLite SDK pruža alat za preciznost za izračunavanje tačnosti modela sa različitim vremenima rada.
- Klasifikacija sa GPU delegatom
Koraci za preuzimanje potrebnih fileS za testiranje možete pronaći na: “/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/ imagenet_image_classificatio/README.md”
Binarni fajl za pokretanje ovog alata je već deo SDK-a, tako da programer ne mora ponovo da ga pravi.
$ 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” - Detekcija objekata sa XNN paketom
$ adb shell “inf_diff_run_eval –model_file=/data/Models/ –delegate=xnnpac
PRAVNE INFORMACIJE
Vaš pristup i korištenje ovog dokumenta, zajedno sa svim specifikacijama, referentnom pločom files, crteže, dijagnostiku i druge informacije sadržane ovdje (zajedno ovo “Dokumentacija”), podliježe vašem (uključujući korporaciju ili drugo pravno lice koje predstavljate, kolektivno “Vi” ili “Vaš”) prihvatanje odredbi i uslova ("Pravila korištenja") navedeno u nastavku. Ako se ne slažete sa ovim Uslovima korišćenja, ne možete koristiti ovu dokumentaciju i odmah ćete uništiti svaku njenu kopiju.
- Pravna obavijest.
Ova dokumentacija vam se stavlja na raspolaganje isključivo za vašu internu upotrebu sa onim proizvodima i ponudama usluga kompanije Qualcomm Technologies, Inc. (“Qualcomm Technologies”) i njenih filijala opisanih u ovoj dokumentaciji, i neće se koristiti u bilo koje druge svrhe. Ova dokumentacija se ne smije mijenjati, uređivati ili modificirati na bilo koji način bez prethodnog pismenog odobrenja Qualcomm Technologies. Neovlašteno korištenje ili otkrivanje ovoga
Dokumentacija ili informacije sadržane u ovom dokumentu su strogo zabranjene, a Vi ste saglasni da ćete obeštetiti Qualcomm Technologies, njegove filijale i davaoce licenci za bilo kakvu štetu ili gubitke koje pretrpe Qualcomm Technologies, njegove filijale i davaoci licenci za bilo kakvu takvu neovlašćenu upotrebu ili otkrivanje ovog dokumenta u celosti ili dio. Qualcomm Technologies, njene filijale i davaoci licenci zadržavaju sva prava i vlasništvo nad ovom dokumentacijom. Nikakva licenca za bilo koji zaštitni znak, patent, autorsko pravo, pravo na zaštitu rada na maskama ili bilo koje drugo pravo intelektualne svojine nije dodijeljeno niti implicirano ovom dokumentacijom ili bilo kojom informacijom koja je ovdje otkrivena, uključujući, ali ne ograničavajući se na, bilo koju licencu za izradu, korištenje, uvoz ili prodavati bilo koji proizvod, uslugu ili tehnološku ponudu koja sadrži bilo koju informaciju u ovoj Dokumentaciji.
OVA DOKUMENTACIJA SE DAJE „KAKVA JESTE“ BEZ BILO KOJE VRSTE GARANCIJE, BILO IZRIČITIH, PODRAZUMEVANIH, ZAKONSKIH ILI DRUGIH. U MAKSIMALNOJ MERI DOPUŠTENOM ZAKONOM, QUALCOMM TEHNOLOGIJE, NJEGOVI PODRUŽNICI I LICENCE SE POSEBNO ODRICUJU SVIH GARANCIJA PRAVA, SPOSOBNOSTI ZA PRODAJU, NEKRŠENJA, ODGOVARAJUĆE ODLAZNOSTI ZA DELATKO SREDSTVA TAČNOST I SVE GARANCIJE KOJE PROIZLAZE IZ TRGOVAČKE KORIŠĆENJA ILI VAN TOKA DELOVANJA ILI TOKA PERFORMANSE. ŠTAVIŠE, NI QUALCOMM TEHNOLOGIJE, NI BILO KOJI OD NJEGOVIH PODRUČNIKA ILI DAVALACA LICENCE, NEĆE BITI ODGOVORNI PREMA VAMA ILI BILO KOJOJ TREĆOJ STRANI ZA BILO KAKVE TROŠKOVE, GUBITKE, UPOTREBU ILI RADNJE KOJI SE NE PREDUZETE .
Određeni kompleti proizvoda, alati i materijali koji se pominju u ovoj dokumentaciji mogu zahtijevati da prihvatite dodatne odredbe i uslove prije pristupanja ili korištenja tim stavkama.
Tehnički podaci navedeni u ovoj dokumentaciji mogu biti podložni američkim i drugim primjenjivim zakonima o kontroli izvoza. Prijenos suprotno zakonu SAD-a i bilo kojem drugom primjenjivom zakonu je strogo zabranjen.
Ništa u ovoj dokumentaciji nije ponuda za prodaju bilo koje komponente ili uređaja koji su ovdje navedeni.
Ova dokumentacija je podložna promjenama bez daljnjeg obavještenja. U slučaju sukoba između ovih Uvjeta korištenja i WebUvjeti korištenja stranice na www.qualcomm.com ili Qualcommova politika privatnosti na koju se poziva www.qualcomm.com, ovi Uslovi korištenja će kontrolirati. U slučaju sukoba između ovih Uvjeta korištenja i bilo kojeg drugog ugovora (napisanog ili klikanog) koji ste sklopili Vi i Qualcomm Technologies ili pridružena kompanija Qualcomm Technologies u vezi s Vašim pristupom i korištenjem ove Dokumentacije, drugi ugovor će kontrolisati .
Ovi Uslovi korišćenja će se regulisati, tumačiti i sprovoditi u skladu sa zakonima države Kalifornije, isključujući Konvenciju UN-a o međunarodnoj prodaji robe, bez obzira na principe sukoba zakona. Svaki spor, zahtjev ili kontroverzu koji proizađu iz ili se odnose na ove Uvjete korištenja, ili kršenje ili valjanost ovih uvjeta, rješavaće samo nadležni sud u okrugu San Diego, država Kalifornija, a Vi ovime pristajete na ličnu nadležnost takvih sudova u tu svrhu. - Izjave o žigovima i pripisivanju proizvoda.
Qualcomm je zaštitni znak ili registrovani zaštitni znak kompanije Qualcomm Incorporated. Arm je registrovani zaštitni znak Arm Limited (ili njegovih podružnica) u SAD-u i/ili drugdje. Bluetooth® slovni znak je registrovani zaštitni znak u vlasništvu Bluetooth SIG, Inc. Ostali nazivi proizvoda i brendova koji se pominju u ovoj dokumentaciji mogu biti zaštitni znaci ili registrovani zaštitni znaci njihovih vlasnika.
Snapdragon i Qualcomm brendirani proizvodi koji se pominju u ovoj dokumentaciji proizvodi su Qualcomm Technologies, Inc. i/ili njegovih podružnica. Qualcomm patentirane tehnologije su licencirane od strane kompanije Qualcomm Incorporated.
Dokumenti / Resursi
![]() |
Qualcomm TensorFlow Lite SDK softver [pdf] Korisnički priručnik TensorFlow Lite SDK softver, Lite SDK softver, SDK softver, softver |