Mwongozo wa Mtumiaji wa Programu ya Qualcomm TensorFlow Lite SDK
Nembo ya Kampuni

Historia ya marekebisho

Marekebisho Tarehe Maelezo
AA Septemba 2023 Kutolewa kwa awali
AB Oktoba 2023

Utangulizi wa zana za Qualcomm TFLite SDK

Zana za ukuzaji programu za Qualcomm TensorFlow Lite (Qualcomm TFLite SDK) hutoa mfumo wa TensorFlow Lite kwa uelekezaji wa akili bandia (AI) kwenye kifaa, ambao hurahisisha wasanidi programu kuunda au kuendesha programu zinazofaa za AI.
Hati hii inatoa maagizo ya hatua kwa hatua ya kuunda SDK inayojitegemea ya Qualcomm TFLite na kuweka mazingira ya usanidi. Hii huwezesha mtiririko wa kazi wa msanidi programu, unaojumuisha:

  • kuanzisha mazingira ya ujenzi ambapo msanidi programu anaweza kuunda Qualcomm TFLite SDK
  • kutengeneza programu zilizojitegemea za Qualcomm TFLite SDK

Kwa usaidizi, tazama https://www.qualcomm.com/msaada. Kielelezo kifuatacho kinatoa muhtasari wa mtiririko wa kazi wa Qualcomm TFLite SDK:
Mchoro 1-1 Mtiririko wa kazi wa Qualcomm TFLite SDK
Zana inahitaji SDK ya jukwaa na usanidi file (umbizo la JSON) ili kutengeneza vizalia vya programu vya Qualcomm TFLite SDK.

Ili kuunda programu tumizi kutoka mwisho hadi mwisho kwa kutumia mifumo midogo ya media multimedia, AI, na maono ya kompyuta (CV), angalia Mwongozo wa Kuanza Haraka wa Qualcomm Intelligent Multimedia SDK (QIM SDK) (80-50450-51).
Jedwali linaonyesha upangaji wa toleo la Qualcomm TFLite SDK na toleo la CodeLinaro tag:
Jedwali 1-1 habari ya kutolewa
Muunganisho

Toleo la Qualcomm TFLite SDK Kutolewa kwa CodeLinaro tag
V1.0 Qualcomm TFLITE.SDK.1.0.r1-00200-TFLITE.0

Jedwali 1-2 matoleo ya SDK ya Qualcomm TFLite Yanayotumika

Qualcomm Toleo la SDK la TFLite Bidhaa ya programu inayotumika Toleo la TFLite linalotumika
V1.0 QCS8550.LE.1.0
  • 2.6.0
  • 2.8.0
  • 2.10.1
  • 2.11.1
  • 2.12.1
  • 2.13.0

Marejeleo
Jedwali 1-3 Nyaraka zinazohusiana

Kichwa Nambari
Qualcomm
00067.1 Dokezo la Kutolewa kwa QCS8550.LE.1.0 RNO-230830225415
Mwongozo wa Kuanza Haraka wa Qualcomm Intelligent Multimedia SDK (QIM SDK). 80-50450-51
Marejeleo ya Multimedia Multimedia ya Qualcomm (QIM SDK). 80-50450-50
Rasilimali
https://source.android.com/docs/setup/start/initializing

Jedwali 1-4 Vifupisho na ufafanuzi

Kifupi au neno Ufafanuzi
AI Akili ya bandia
BIOS Mfumo wa msingi wa pembejeo / pato
CV Maono ya kompyuta
IPK Kifurushi cha Itsy file
SDK ya QIM Seti ya ukuzaji wa programu za medianuwai ya Qualcomm Intelligent
SDK Seti ya ukuzaji wa programu
TFLite TensorFlow Lite
XNN Xth jirani wa karibu

Weka mazingira ya ujenzi kwa zana za Qualcomm TFLite SDK

Zana za SDK za Qualcomm TFLite hutolewa katika fomu ya chanzo; kwa hivyo, kuanzisha mazingira ya ujenzi ili kuikusanya ni lazima lakini usanidi wa wakati mmoja.

Masharti

  • Hakikisha kuwa una ufikiaji sudo kwa mashine mwenyeji ya Linux.
  • Hakikisha kuwa toleo la mwenyeji wa Linux ni Ubuntu 18.04 au Ubuntu 20.04.
  • Ongeza saa za juu zaidi za watumiaji na hali ya juu zaidi ya watumiaji kwenye mfumo wa seva pangishi.
  • Ongeza mistari ifuatayo ya amri kwa/etc/sysctl.confand washa tena seva pangishi: fs.inotify.max_user_instances=8192 fs.inotify.max_user_watches=542288

Sakinisha vifurushi vya seva pangishi vinavyohitajika

Vifurushi vya mwenyeji husakinishwa kwenye mashine ya mwenyeji wa Linux.
Tekeleza maagizo ili kusakinisha vifurushi vya mwenyeji: $ sudo apt install -y jq $ sudo apt install -y texinfo chrpath libxml-simple-perl openjdk-8-jdkheadless
Kwa Ubuntu 18.04 na zaidi:
$ sudo apt-get install git-core gnupg flex bison kujenga zip c muhimuurl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5- dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2 fontprouti
Kwa habari zaidi, angalia https://source.android.com/docs/setup/start/initializing.

Weka mazingira ya docker

Doka ni jukwaa linalotumiwa kujenga, kuendeleza, kujaribu na kutoa programu. Ili kukusanya SDK, kipanganzi lazima kiwekewe mipangilio kwenye mashine ya kupangisha Linux.
Hakikisha kuwa uboreshaji wa CPU umewashwa kwenye mashine ya kupangisha Linux. Ikiwa haijawashwa, fanya yafuatayo ili kuiwezesha kutoka kwa mipangilio ya usanidi ya mfumo wa msingi wa ingizo/towe (BIOS):

  1. Washa uboreshaji kutoka kwa BIOS:
    a. Bonyeza F1 au F2 wakati mfumo unawasha ili uingie kwenye BIOS. Dirisha la BIOS linaonyeshwa.
    b. Badili hadi kichupo cha Kina.
    c. Katika sehemu ya Usanidi wa CPU, weka Teknolojia ya Uboreshaji Iwashwe.
    a. Bonyeza F12 ili kuhifadhi na kuondoka, na kisha uanze upya mfumo.
    Ikiwa hatua hizi hazifanyi kazi, fuata maagizo mahususi kutoka kwa mtoa huduma wa mfumo ili kuwezesha uboreshaji
  2. Ondoa hali yoyote ya zamani ya docker:
    $ sudo apt kuondoa docker-desktop
    $ rm -r $HOME/.docker/desktop
    $ sudo rm /usr/local/bin/com.docker.cli
    $ sudo apt purge docker-desktop
  3.  Sanidi hazina ya mbali ya kizimbani:
    $ sudo apt-get update $ sudo apt-get install ca-certificates curl gnupg lsb-kutolewa $ 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) iliyosainiwa-na=/etc/apt/ keyrings/ docker.gpg] https:// download.docker.com/linux/ubuntu $ (lsb_release -cs) imara” | sudo tee /etc/apt/sources.list.d/ docker.list > /dev/null
  4.  Sakinisha injini ya docker:
    $ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli
  5.  Ongeza mtumiaji kwenye kikundi cha docker:
    $ sudo groupadd docker $ sudo usermod -aG docker $USER
  6.  Anzisha upya mfumo.

Tengeneza SDK ya jukwaa

SDK ya jukwaa ni hitaji la lazima ili kukusanya zana za Qualcomm TFLite SDK. Inatoa tegemeo zote za jukwaa zinazohitajika na SDK ya Qualcomm TFLite.
Fanya yafuatayo ili kutengeneza SDK ya jukwaa:

  1. Unda muundo wa bidhaa ya programu inayopendekezwa.
    Maagizo ya kuunda toleo la QCS8550.LE.1.0 yametolewa katika maelezo ya toleo. Ili kufikia madokezo ya toleo, angalia Marejeleo.
    Ikiwa picha zilijengwa hapo awali, tekeleza hatua ya 2, na kisha unda muundo safi.
  2. Tekeleza amri ifuatayo ili kuunda picha za nafasi ya mtumiaji na SDK ya jukwaa:
    Kwa QCS8550.LE.1.0, ongeza kipengele cha mashine qti-tflite-delegate katika MACHINE_FEATURES katika kalama.conf file na chanzo cha mazingira ya ujenzi kulingana na maagizo kutoka kwa maelezo ya toleo.
    Baada ya kutoa picha za nafasi ya mtumiaji kutoka kwa build, endesha amri ifuatayo ili kuzalisha SDK ya jukwaa.
    $ bitbake -fc populate_sdk qti-robotiki-picha

Unda zana za SDK za Qualcomm TFLite - mtiririko wa kazi wa msanidi

Mtiririko wa kazi wa zana za Qualcomm TFLite SDK unahitaji msanidi programu kutoa usanidi file na maingizo halali. Hati za ganda la usaidizi kutoka kwa mradi wa zana za tflite (zilizopo kwenye mti chanzo wa Qualcomm TFLite SDK) hutoa vitendaji vya usaidizi ili kusanidi mazingira ya ganda, ambayo yanaweza kutumika kwa utendakazi wa Qualcomm TFLite SDK.
Msanidi huunda miradi ya Qualcomm TFLite SDK ndani ya kontena na hutengeneza vizalia vya programu kwa kutumia huduma zinazotolewa na zana za tflite.
Baada ya kontena la SDK la Qualcomm TFLite kujengwa, msanidi programu anaweza kuambatisha kwenye kontena na kutumia huduma za usaidizi katika mazingira ya makontena kwa usanidi unaoendelea.

  • Kuna kipengele cha kusakinisha vizalia vya programu vya Qualcomm TFLite SDK kwenye kifaa cha Qualcomm kilichounganishwa kwa seva pangishi ya Linux kupitia USB/adb.
  • Pia kuna kipengele cha kunakili vizalia vya programu vya Qualcomm TFLite SDK kutoka kwenye kontena hadi kwa mashine tofauti ya seva pangishi ambapo kifaa cha Qualcomm kimeunganishwa.
    Muunganisho

Kielelezo kifuatacho kinaorodhesha seti ya huduma zinazopatikana baada ya kusanidi mazingira ya uundaji wa kontena kwa kutumia hati za usaidizi za kuunda Qualcomm TFLite SDK.
Muunganisho

Takwimu inaonyesha mlolongo wa utekelezaji wa huduma:
Mchoro 4-3 Mlolongo wa huduma kwenye mwenyeji
Muunganisho

Sawazisha na uunde Qualcomm TFLite SDK
SDK ya Qualcomm TFLite inakusanywa wakati picha ya kituo imeundwa. Ili kusawazisha na kuunda SDK ya Qualcomm TFLite, fanya yafuatayo:

  1. Unda saraka kwenye mwenyeji file mfumo wa kusawazisha nafasi ya kazi ya Qualcomm TFLite SDK. Kwa
    example: $mkdir $cd
  2. Leta msimbo wa chanzo wa Qualcomm TFLite SDK kutoka 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 kutolewa && kusawazisha repo -qc -no-tags -j
  3. Unda saraka kwenye mwenyeji file mfumo ambao unaweza kuwekwa kwenye docker. Kwa mfanoample: mkdir-p / Saraka hii inaweza kuundwa popote kwenye mashine ya kupangisha Linux, na haitegemei ni wapi mradi wa Qualcomm TFLite SDK umelandanishwa. Baada ya utiririshaji wa kazi kukamilika ndani ya kontena, vizalia vya programu vya Qualcomm TFLite SDK vinaweza kupatikana kwenye saraka iliyoundwa katika hatua hii.
  4. Hariri usanidi wa JSON file sasa katika /tflite-tools/ targets/le-tflite-tools-builder.json na maingizo yafuatayo:
    “Image”: “tflite-tools-builder”, “Device_OS”: “le”, “Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “ZIMA”, “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”: “” }
    Kwa habari zaidi juu ya maingizo yaliyotajwa kwenye usanidi wa json file, angalia Docker.md readme file kwa /tflite-tools/.
    KUMBUKA Kwa QCS8550, mjumbe wa Qualcomm® Hexagon™ DSP hawezi kutumika.
  5. Chanzo maandishi ya kusanidi mazingira:
    $ cd /tflite-tools $ source ./scripts/host/docker_env_setup.sh
  6.  Unda picha ya kituo cha SDK cha Qualcomm TFLite: $ tflite-tools-host-build-image ./targets/le-tflite-tools-builder.json usanidi wa muundo ukishindwa, angalia Tatua usanidi wa kisima. Baada ya kukamilika kwa mafanikio, ujumbe ufuatao unaonyeshwa: "Hali: Uundaji wa picha umekamilika kwa mafanikio!!" Kuendesha hatua hii hutengeneza SDK ya Qualcomm TFLite pia.
  7.  Endesha kontena la kizimbani la Qualcomm TFLite SDK. Hii huanza chombo na tags iliyotolewa katika usanidi wa JSON file. $tflite-tools-host-run-container ./targets/le-tflite-tools-builder.json
  8. Ambatanisha kwenye chombo kilichoanza kutoka hatua ya awali.
    $ docker ambatisha

SDK ya Qualcomm TFLite imeundwa, na vizalia vya programu viko tayari kutumwa au zaidi vinaweza kuwekwa.
kutumika kutengeneza programu-jalizi ya QIM SDK TFLite.

Unganisha kifaa ili kupangisha na utumie vizalia vya programu]

Baada ya mkusanyiko, kuna njia mbili za kuunganisha kifaa kwa mwenyeji na kupeleka
Vizalia vya programu vya Qualcomm TFLite SDK.

  • Kifaa kilichounganishwa kwa seva pangishi ya Linux ya ndani:
    Msanidi huunganisha kifaa kwenye kituo cha kazi na kusakinisha vizalia vya programu vya Qualcomm TFLite SDK kutoka kwenye chombo moja kwa moja kwenye kifaa (QCS8550).
  • Kifaa kimeunganishwa kwa seva pangishi ya mbali:
    Msanidi huunganisha kifaa kwenye kituo cha kazi cha mbali, na anaweza kutumia amri za kisakinishi cha kidhibiti pakiti kwenye mifumo ya Windows na Linux kusakinisha vizalia vya programu vya Qualcomm TFLite SDK kwenye kifaa (QCS8550)

Kielelezo 4-4 Muunganisho wa bodi ya kifaa kwa msanidi programu na kituo cha kazi cha mbali
Muunganisho

Unganisha kifaa kwenye kituo cha kazi

Kifaa kimeunganishwa kwenye kituo cha kazi na chombo cha usanidi kinaweza kufikia kifaa kupitia USB/adb.
Kielelezo kinaonyesha stagiko katika mlolongo wa mtiririko wa kazi wa Qualcomm TFLite SDK:
Muunganisho

  1. Tekeleza amri zifuatazo ili kusakinisha mabaki kwenye kifaa:
    $ tflite-zana-kifaa-tayarisha
    $ tflite-tools-device-deploy
  2. Ili kufuta mabaki, endesha amri ifuatayo:
    $ tflite-zana-kifaa-furushi-ondoa

Unganisha kifaa kwenye mashine ya mbali

Kifaa kimeunganishwa kwa mashine ya mbali, na kontena ya Qualcomm TFLite SDK haiwezi kufikia kifaa kupitia USB/ad b.
Kielelezo kinaonyesha stagiko katika mlolongo wa mtiririko wa kazi wa Qualcomm TFLite SDK:
Muunganisho

Tekeleza amri zifuatazo katika chombo cha tflite-tools ili kunakili vizalia vya programu kwenye mashine ya mbali
kulingana na meneja wa kifurushi kwenye kifaa:
$ tflite-tools-remote-sync-ipk-rel-pkg
KUMBUKA Maelezo ya mashine ya mbali yametolewa katika usanidi wa JSON file.
Sakinisha vizalia vya programu kwa jukwaa la Windows
Vizalia vya programu vya Qualcomm TFLite SDK vinaweza kusakinishwa kwenye kifaa kulingana na mfumo wa uendeshaji wa mashine ya mbali.

Kwa jukwaa la Windows, fanya yafuatayo:
Kwenye PowerShell, tumia hati ifuatayo: 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:> ganda la adb “mkdir -p /tmp” PS C:> adb push /tmp Ikiwa kifurushi ni ipk (kwa QCS8550.LE.1.0), tumia amri zifuatazo: PS C:> adb shell “ opkg -force-depends -force-reinstall -force-overwrite install /tmp/”

Sakinisha vizalia vya programu kwa ajili ya jukwaa la Linux
Tumia amri zifuatazo:
$ adb mzizi $ adb zima-verity $ adb anzisha upya $ adb subiri-kifaa $ adb mzizi $ adb weka tena $ adb shell weka -o remount,rw / $ adb shell "mkdir -p /tmp" $ adb push /tmp Ikiwa kifurushi ni ipk (kwa QCS8550.LE.1.0): $ adb shell "opkg -force-depends -force-reinstall -force-overwrite install /tmp/"

Safisha picha ya docker
Baada ya kukamilisha utiririshaji wa msanidi programu, mazingira ya kizimbani yanapaswa kusafishwa ili kutoa uhifadhi kwenye diski. Kusafisha docker huondoa vyombo na picha ambazo hazijatumiwa, na hivyo kufungua nafasi ya disk.
Tumia amri zifuatazo kusafisha picha ya kizimbani:

  1. Tumia amri ifuatayo kwenye kituo cha kazi cha Linux:
    $ cd /tflite-zana
  2. Acha chombo:
    $ tflite-tools-host-stop-container ./targets/ le-tflite-tools-builder.json
  3. Ondoa chombo:
    $ tflite-tools-host-rm-container ./targets/ le-tflite-tools-builder.json
  4. Ondoa picha za zamani za docker:
    $ tflite-zana-mwenyeji-picha-usafishaji

Tatua usanidi wa docker

Ikiwa amri ya tflite-tools-host-build-image italeta Nospace iliyosalia kwenye ujumbe wa kifaa, kisha uhamishe saraka ya kituo hadi/local/mnt. Fanya yafuatayo ili kutatua usanidi:

  1. Hifadhi nakala rudufu iliyopo files:
    $ tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(tarehe + %s).tar.gz
  2. Acha kizimbani:
    $ service docker stop
  3. Thibitisha kuwa hakuna mchakato wa kizimbani unaoendelea:
    $ ps faux | grep docker
  4. Angalia muundo wa saraka ya docker:
    $ sudo ls /var/lib/docker/
  5. Sogeza saraka ya docker kwa kizigeu kipya:
    $ mv /var/lib/docker /local/mnt/docker
  6. Tengeneza ulinganifu kwa saraka ya docker kwenye kizigeu kipya:
    $ ln -s /local/mnt/docker /var/lib/docker
  7. Hakikisha kuwa muundo wa saraka ya docker unabaki bila kubadilika:
    $ sudo ls /var/lib/docker/
  8. Anzisha docker:
    $ huduma ya docker kuanza
  9. Anzisha tena vyombo vyote baada ya kusonga saraka ya docker.

Tengeneza TFLite SDK ukitumia kituo cha kazi cha Linux

Mtiririko wa kazi wa TFLite SDK unaweza kuwashwa bila kontena kwa kutumia kituo cha kazi cha Linux. Utaratibu huu ni mbadala wa kutumia vyombo.
Ili kusawazisha na kuunda SDK ya Qualcomm TFLite, fanya yafuatayo:

  1. Unda saraka kwenye mwenyeji file mfumo wa kusawazisha nafasi ya kazi ya Qualcomm TFLite SDK. Kwa mfanoample:
    $mkdir
    $cd
  2. Leta msimbo wa chanzo wa Qualcomm TFLite SDK kutoka 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 kutolewa && kusawazisha repo -qc -no-tags -j8 && kusawazisha repo -qc -no-tags -j8
  3. 3. Hariri usanidi wa JSON file sasa katika /tflite-tools/ targets/le-tflite-tools-builder.json na maingizo yafuatayo
    “Image”: “tflite-tools-builder”, “Device_OS”: “le”, “Additional_tag”: “”, “TFLite_Version”: “2.11.1”, “Delegates”: { “Hexagon_delegate”: “ZIMA”, “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”: “”
    Kwa habari zaidi juu ya maingizo yaliyotajwa kwenye usanidi wa json file, angalia Docker.md readme file katika /tflite-zana/.
    KUMBUKA Kwa QCS8550, mjumbe wa Hexagon DSP hawezi kutumika
  4. Chanzo maandishi ya kusanidi mazingira:
    $ cd /tflite-zana
    $ source ./scripts/host/host_env_setup.sh
  5. Unda SDK ya Qualcomm TFLite.
    $ tflite-tools-setup targets/le-tflite-tools-builder.json
  6.  Tekeleza amri zifuatazo za matumizi katika ganda sawa la Linux ili kukusanya vizalia vya TFLite SDK kutoka 
    TFLite_rsync_lestination.
    $ tflite-tools-host-get-rel-package targets/le-tflite-tools-builder.json
    $ tflite-tools-host-get-dev-package targets/le-tflite-tools-builder.json
  7. Sakinisha mabaki kulingana na mfumo wa uendeshaji
    • Kwa jukwaa la Windows, kwenye PowerShell, tumia hati ifuatayo
      PS C:> adb root PS C:> adb disable-verity PS C:> adb reboot PS C:> adb wait-for-kifaa 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
      Ikiwa kifurushi ni ipk (kwa QCS8550.LE.1.0), tumia amri zifuatazo:
      PS C:> ganda la adb "opkg -force-depends -force-reinstall -forceoverwrite install /tmp/
      Kwa jukwaa la Linux, tumia hati ifuatayo:
      $ adb mzizi $ adb zima-verity $ adb fungua upya $ adb subiri-kifaa $ adb mzizi $ adb weka tena $ adb shell weka -o remount,rw / $ adb shell "mkdir -p /tmp" $ adb push /tmp Ikiwa kifurushi ni ipk (kwa QCS8550.LE.1.0):
      $ adb shell "opkg -force-depends -force-reinstall -force-overwrite install /tmp/"

Tengeneza vizalia vya programu vya Qualcomm TFLite SDK kwa muundo wa QIM SDK

Ili kutumia vizalia vya programu vilivyozalishwa ili kuwezesha programu-jalizi ya Qualcomm TFLite SDK GStreamer katika QIM SDK, fanya yafuatayo:

  1. Kamilisha utaratibu katika Usawazishaji na uunde Qualcomm TFLite SDK, kisha utekeleze amri ifuatayo: $ tflite-tools-host-get-dev-tar-package ./targets/le-tflite-toolsbuilder.json
    lami file inazalishwa. Ina Qualcomm TFLite SDK katika njia iliyotolewa katika "TFLite_rsync_destination"
  2. Ili kuwezesha programu-jalizi ya Qualcomm TFLite SDK GStreamer, tumia tar file kama hoja katika usanidi wa JSON file kwa muundo wa QIM SDK.
    Kwa maelezo kuhusu kuunda SDK ya QIM, angalia Mwongozo wa Kuanza Haraka wa Qualcomm Intelligent Multimedia SDK (QIM SDK) (80-50450-51).

Unda SDK ya Qualcomm TFLite kwa kuongeza

Ikiwa unaunda SDK ya Qualcomm TFLite kwa mara ya kwanza, angalia zana za Kujenga Qualcomm TFLite SDK - mtiririko wa kazi wa msanidi. Mazingira sawa ya ujenzi yanaweza kutumika tena kwa maendeleo ya ziada.
Huduma za wasaidizi (ndani ya chombo) zilizotajwa kwenye takwimu zinapatikana kwa watengenezaji kukusanya programu zilizobadilishwa na programu-jalizi.
Mchoro 5-1 Mtiririko wa kazi kwenye chombo

Muunganisho

Baada ya mabadiliko ya nambari kukamilika kwenye saraka ya nambari, fanya yafuatayo:

  1. Unganisha nambari iliyorekebishwa:
    $ tflite-tools-incremental-build-install
  2. Msimbo uliokusanywa wa kifurushi:
    $ tflite-tools-ipk-rel-pkg au $ tflite-tools-deb-rel-pkg
  3. Sawazisha vifurushi vya toleo na seva pangishi file mfumo:
    $ tflite-tools-remote-sync-ipk-rel-pkg
    Or
    $ tflite-tools-remote-sync-deb-rel-pkg
  4. Andaa kifurushi cha dev:
    $ tflite-zana-ipk-dev-pkg
    Vizalia vya programu vilivyokusanywa vinapatikana katika folda ya TFLite_rsync_lengwa iliyotajwa kwenye JSON. file, ambayo inaweza kunakiliwa kwa saraka yoyote.

Fanya kazi na Mjumbe wa TFLite wa nje wa QNN

Mjumbe wa Nje wa TFLite hukuruhusu kuendesha miundo yako (sehemu au nzima) kwa mtekelezaji mwingine kwa kutumia maktaba zinazotolewa na mtu mwingine anayeaminika kama QNN na Qualcomm. Utaratibu huu unaweza kutumia aina mbalimbali za vichapuzi vilivyo kwenye kifaa kama vile GPU au Kichakataji cha Hexagon Tensor (HTP) kwa makisio. Hii huwapa wasanidi programu njia inayoweza kunyumbulika na iliyotenganishwa kutoka kwa TFLite chaguo-msingi ili kuharakisha ufahamu.

Masharti:

  • Hakikisha kuwa unatumia kituo cha kazi cha Ubuntu kutoa stack ya QNN AI.
  • Hakikisha kuwa unatumia toleo la QNN 2.14 ili liwe pamoja na Qualcomm TFLite SDK

SDK ya Qualcomm TFLite imewezeshwa kutekeleza makisio kwenye ncha kadhaa za nyuma za QNN kupitia Mjumbe wa nje wa TFLite wa QNN. Miundo ya TFLite iliyo na uwakilishi wa kawaida wa bafa inaweza kuendeshwa kwenye GPU na HTP.
Baada ya vifurushi vya Qualcomm TFLite SDK kusakinishwa kwenye kifaa, fanya yafuatayo ili kusakinisha maktaba za QNN kwenye kifaa.

  1. Pakua Kidhibiti cha Kifurushi cha Qualcomm 3 kwa Ubuntu.
    a. Bofya https://qpm.qualcomm.com/, na ubofye Zana.
    b. Katika kidirisha cha kushoto, kwenye uga wa Zana za Utafutaji, chapa QPM. Kutoka kwenye orodha ya Mfumo wa Uendeshaji, chagua Linux.
    Matokeo ya utafutaji yanaonyesha orodha ya Wasimamizi wa Vifurushi wa Qualcomm.
    c. Chagua Kidhibiti cha Kifurushi cha Qualcomm 3 na upakue kifurushi cha debian cha Linux.
  2. Sakinisha Kidhibiti cha Kifurushi cha Qualcomm 3 kwa Linux. Tumia amri ifuatayo:
    $ dpkg -i -lazimisha-kuandika upya /njia/kwa/
    QualcommPackageManager3.3.0.83.1.Linux-x86.deb
  3. Pakua Qualcomm®
    SDK ya Injini ya moja kwa moja kwenye kituo cha kazi cha Ubuntu.
    a. Bofya https://qpm.qualcomm.com/ na ubofye Zana.
    b. Katika kidirisha cha kushoto, kwenye uga wa Zana za Utafutaji, chapa stack ya AI. Kutoka kwenye orodha ya Mfumo wa Uendeshaji, chagua Linux.
    A orodha kunjuzi iliyo na injini mbalimbali za stack za AI huonyeshwa.
    c. Bofya Qualcomm® AI Engine Direct SDK na upakue kifurushi cha Linux v2.14.0.
  4. Sakinisha Qualcomm® AI Engine Direct SDK kwenye kituo cha kazi cha Ubuntu.
    a. Washa leseni:
    qpm-cli -license-activate qualcomm_ai_engine_direct
    b Sakinisha SDK ya moja kwa moja ya Injini ya AI:
    $ qpm-cli -dondoo /path/to/ qualcomm_ai_engine_direct.2.14.0.230828.Linux-AnyCPU.qik
  5. Sukuma maktaba kwa kifaa kutoka kwa kituo cha kazi cha Ubuntu na 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/ haijasainiwa/ 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/unsigned/ libQnnHtpV73Skel.so /usr/lib/rfsa/adsp $ adb push ./lib/hexagon-vXNUMX/unsigned/ libQnnHtpVXNUMXSkel. kwa hivyo /usr/lib/rfsa/adsp

Jaribu Qualcomm TFLite SDK

Qualcomm TFLite SDK hutoa mfano fulaniample programu, ambazo zinaweza kutumika kuhalalisha, kuweka alama, na kupata usahihi wa miundo ambayo msanidi programu anataka kutathmini.
Baada ya vifurushi vya Qualcomm TFLite SDK kusakinishwa kwenye kifaa, muda wa kutekeleza unapatikana kwenye kifaa ili kuendesha programu hizi za zamani.ample maombi.
Sharti
Unda saraka zifuatazo kwenye kifaa:
$ adb shell "mkdir /data/Models"
$ adb shell "mkdir /data/Lables"
$ adb shell "mkdir /data/profiling"

Weka lebo kwenye picha

Picha ya lebo ni matumizi yanayotolewa na Qualcomm TFLite SDK inayoonyesha jinsi unavyoweza kupakia muundo wa TensorFlow Lite uliofunzwa na kubadilishwa na kuutumia kutambua vitu kwenye picha. Masharti:
Pakua sampmfano na picha:
Unaweza kutumia muundo wowote unaolingana, lakini mtindo ufuatao wa MobileNet v1 unatoa onyesho nzuri la kielelezo kilichofunzwa kutambua vitu 1000 tofauti.

  • Pata mfano
    $ 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/
  • Pata lebo
    $ 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/
    Baada ya kuunganisha kwenye kontena la kizimbani la Qualcomm TFLite SDK, picha inaweza kupatikana katika:
    "/mnt/tflite/src/tensorflow/tensorflow/lite/examples/label_image/ testdata/grace_hopper.bmp”
    a. Sukuma hii file kwa/data/Lebo/
    b. Endesha amri:
    $ 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 hutoa zana ya kulinganisha ili kukokotoa utendakazi wa nyakati mbalimbali za uendeshaji.
Zana hizi za ulinganishaji kwa sasa hupima na kukokotoa takwimu za vipimo muhimu vya utendakazi vifuatavyo:

  • Muda wa uanzishaji
  • Wakati wa inference ya hali ya joto-up
  • Wakati wa uelekezaji wa hali thabiti
  • Matumizi ya kumbukumbu wakati wa uanzishaji
  • Utumiaji wa kumbukumbu kwa ujumla

Masharti

Sukuma miundo ili kujaribiwa kutoka TFLite Model Zoo (https://tfhub.dev/) kwa/data/Miundo/. Endesha hati zifuatazo:  

  • Kifurushi cha XNN
    $ 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/”
  • Mjumbe wa 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/”
  • Mjumbe wa Nje
    GPU ya Mjumbe wa Nje wa QNN:
    Endesha uelekezaji na modeli ya sehemu inayoelea:
    $ 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/uskerdirr_brary: /adsp'”
    HTP ya Mjumbe wa Nje wa QNN:
    Endesha makisio na modeli ya 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/ libQnnHtlr_brarysker; /adsp'”

Chombo cha usahihi

Qualcomm TFLite SDK hutoa zana ya usahihi ya kukokotoa usahihi wa miundo yenye nyakati mbalimbali za uendeshaji.

  • Uainishaji na mjumbe wa GPU
    Hatua za kupakua zinazohitajika files ya kujaribu inaweza kupatikana katika: "/mnt/tflite/src/tensorflow/tensorflow/lite/tools/evaluation/tasks/ imagenet_image_classificatio/README.md"
    Njia ya jozi ya kuendesha zana hii tayari ni sehemu ya SDK, kwa hivyo msanidi haitaji kuijenga tena.
    $ adb shell "image_classify_run_eval - model_file=/data/Miundo/ -ground_truth_images_path=/data/ — ground_truth_labels=/data/ -model_output_labels=/ data/ -delegate=gpu”
  • Utambuzi wa kitu kwa kifurushi cha XNN
    $ adb shell "inf_diff_run_eval -model_file=/data/Miundo/ -delegate=xnnpac

HABARI ZA KISHERIA

Ufikiaji wako na matumizi ya hati hii, pamoja na vipimo vyovyote, ubao wa marejeleo files, michoro, utambuzi na habari zingine zilizomo humu (kwa pamoja hii "Nyaraka") inategemea (pamoja na shirika au huluki nyingine ya kisheria unayowakilisha, kwa pamoja "Wewe" au "Wako") kukubalika kwa sheria na masharti ("Masharti ya matumizi") iliyowekwa hapa chini. Ikiwa hukubaliani na Masharti haya ya Matumizi, huwezi kutumia Hati hii na utaharibu nakala yake mara moja.

  1. Notisi ya Kisheria.
    Hati hii inatolewa Kwako kwa matumizi Yako ya ndani pekee na bidhaa na matoleo ya huduma ya Qualcomm Technologies, Inc. (“Qualcomm Technologies”) na washirika wake waliofafanuliwa katika Hati hii, na hayatatumika kwa madhumuni mengine yoyote. Hati hii haiwezi kubadilishwa, kuhaririwa, au kurekebishwa kwa njia yoyote bila idhini ya maandishi ya awali ya Qualcomm Technologies. Matumizi yasiyoidhinishwa au ufichuaji wa hii
    Hati au maelezo yaliyomo hapa yamepigwa marufuku kabisa, na Unakubali kufidia Qualcomm Technologies, washirika wake na watoa leseni kwa uharibifu au hasara yoyote inayopatikana na Qualcomm Technologies, washirika wake na watoa leseni kwa matumizi yoyote ambayo hayajaidhinishwa au ufichuzi, katika Hati hii yote. sehemu. Qualcomm Technologies, washirika wake na watoa leseni wanahifadhi haki na umiliki wote ndani na kwenye Hati hii. Hakuna leseni ya chapa yoyote ya biashara, hataza, hakimiliki, haki ya ulinzi wa kazi ya barakoa au haki nyingine yoyote ya kiakili inatolewa au kuonyeshwa na Hati hii au habari yoyote iliyofichuliwa humu, ikijumuisha, lakini sio tu, leseni yoyote ya kutengeneza, kutumia, kuagiza au kuagiza. kuuza bidhaa yoyote, huduma au teknolojia inayojumuisha maelezo yoyote katika Hati hii.
    HATI HII INATOLEWA “KAMA ILIVYO” BILA UDHAMINI WA AINA YOYOTE ILE, IKIWA IMEELEZWA, INAYODOKEZWA, KISHERIA AU VINGINEVYO. KWA KIWANGO CHA JUU INAYORUHUSIWA NA SHERIA, TEKNOLOJIA YA QUALCOMM, WASHIRIKA WAKE NA WAPESA LESENI HUSUSANI WANANANUA HASARA UHAKIKA WOTE WA HATIMAYE, UUZAJI, KUTOKUKUKA UKIMBIKO, KUFAA KWA UTENGENEZAJI, RIWAYA HUSIKA DHAMANA ZOTE ZINAZOTOKANA NA MATUMIZI YA BIASHARA AU NJE YA KOZI YA KUSHUGHULIKIA AU KOZI YA UTENDAJI. AIDHA, WALA TEKNOLOJIA YA QUALCOMM, WALA WASHIRIKA WAKE AU WAPEWA LESENI, HAWATAWAJIBISHWA WEWE AU WATU WOWOTE WA TATU KWA GHARAMA ZOZOTE, HASARA, MATUMIZI, AU HATUA VYOVYOTE VILIVYOTOKEA AU UTOAJI HUU.
    Baadhi ya vifaa vya bidhaa, zana na nyenzo zilizorejelewa katika Hati hii zinaweza kukuhitaji ukubali sheria na masharti ya ziada kabla ya kufikia au kutumia bidhaa hizo.
    Data ya kiufundi iliyobainishwa katika Hati hii inaweza kuwa chini ya Marekani na sheria zingine zinazotumika za udhibiti wa usafirishaji. Usambazaji kinyume na Marekani na sheria nyingine yoyote husika ni marufuku kabisa.
    Hakuna chochote katika Hati hii ni ofa ya kuuza vipengele au kifaa chochote kilichorejelewa humu.
    Hati hii inaweza kubadilika bila arifa zaidi. Katika tukio la mgongano kati ya Masharti haya ya Matumizi na WebMasharti ya Matumizi ya tovuti kwenye www.qualcomm.com au Sera ya Faragha ya Qualcomm iliyorejelewa www.qualcomm.com, Masharti haya ya Matumizi yatadhibiti. Katika tukio la mgongano kati ya Sheria na Masharti haya na makubaliano mengine yoyote (yaliyoandikwa au kubofya) yanayotekelezwa na Wewe na Qualcomm Technologies au mshirika wa Qualcomm Technologies kwa heshima na ufikiaji wako na matumizi ya Hati hii, makubaliano mengine yatadhibiti. .
    Masharti haya ya Matumizi yatasimamiwa na kufasiriwa na kutekelezwa kwa mujibu wa sheria za Jimbo la California, bila kujumuisha Mkataba wa Umoja wa Mataifa wa Uuzaji wa Kimataifa wa Bidhaa, bila kuzingatia kanuni za sheria zinazokinzana. Mzozo wowote, dai au utata unaotokana na au unaohusiana na Sheria na Masharti haya, au ukiukaji au uhalali wake, utaamuliwa tu na mahakama yenye mamlaka katika kaunti ya San Diego, Jimbo la California, na kwa hivyo unakubali mamlaka ya kibinafsi ya mahakama hizo kwa ajili hiyo.
  2. Taarifa za Alama ya Biashara na Bidhaa.
    Qualcomm ni chapa ya biashara au chapa ya biashara iliyosajiliwa ya Qualcomm Incorporated. Arm ni chapa ya biashara iliyosajiliwa ya Arm Limited (au kampuni zake tanzu) nchini Marekani na/au kwingineko. Alama ya neno ya Bluetooth® ni chapa ya biashara iliyosajiliwa inayomilikiwa na Bluetooth SIG, Inc. Majina mengine ya bidhaa na chapa yaliyorejelewa katika Hati hii yanaweza kuwa chapa za biashara au chapa za biashara zilizosajiliwa za wamiliki husika.
    Bidhaa zenye chapa ya Snapdragon na Qualcomm zilizorejelewa katika Hati hii ni bidhaa za Qualcomm Technologies, Inc. na/au kampuni zake tanzu. Teknolojia za hakimiliki za Qualcomm zimeidhinishwa na Qualcomm Incorporated.

Nembo ya Kampuni

Nyaraka / Rasilimali

Programu ya Qualcomm TensorFlow Lite SDK [pdf] Mwongozo wa Mtumiaji
Programu ya SDK ya TensorFlow Lite, Programu ya SDK ya Lite, Programu ya SDK, Programu

Marejeleo

Acha maoni

Barua pepe yako haitachapishwa. Sehemu zinazohitajika zimetiwa alama *