Kā sader kopā RK3588 NPU programmatūras steks

Rockchip programmatūras steks RKNN atdala modeļa sagatavošanu no izpildes ierīcē. RKNN-Toolkit2 nodrošina konversijas un novērtēšanas rīkus. RKNN-Toolkit-Lite2 nodrošina Python saskarni atbalstītajās mērķa platformās, savukārt RKNN Runtime nodrošina C/C++ saskarnes. Kodola draiveris savieno izpildlaiku ar NPU. Pārbaudiet šo komponentu saderību ar jūsu modulim piegādāto plates atbalsta pakotni.

Noderīgs izvietošanas ieraksts identificē plati un SoM versiju, Linux attēlu, draiveri, izpildlaiku, konvertēšanas rīka versiju, sākotnējo modeli un pārveidoto modeli. Saglabājiet veidošanas skriptu un pirmapstrādes iestatījumus blakus modeļa artefaktam. Faila nosaukums, piemēram, detector.rknn viens pats nevar izskaidrot, kāpēc viena izvietošana uzvedas savādāk nekā cita.

SagatavotAtsauces modelis, ievades un sagaidāmās izejas
KonvertētMērķa konfigurācijas un precizitātes pārbaudes
IzvietotDarbības laiks, lietojumprogramma un ilgstoša pārbaude

1. darbība: izveidojiet atsauci pirms konvertēšanas

Palaidiet sākotnējo modeli reprezentatīvā validācijas komplektā. Saglabājiet neapstrādātos rezultātus un lietojumprogrammas metriku, kas ir svarīga: klasifikācijas precizitāte, noteikšanas kvalitāte vai cits uzdevumam raksturīgs pasākums. Detektoram saglabājiet etiķešu secību, uzticamības sliekšņus un pēcapstrādes iestatījumus. Tas kļūst par pārveidotā modeļa salīdzināšanas punktu.

Pierakstiet visu ievades līgumu. Iekļaujiet izmērus, partijas lielumu, RGB vai BGR secību, izkārtojumu, skaitlisko diapazonu, normalizēšanu, izmēru maiņu un polsterējumu. Pareizs modelis var radīt vājus rezultātus, ja lietojumprogramma attēlu ievieto atšķirīgi no apmācības vai divreiz atņem nobīdi. Tikpat rūpīgi dokumentējiet pēcapstrādi ārpus tīkla.

Izmantojiet Rockchip RKNN Modeļu zoodārzs kā sākumpunktu, ja tajā ir iekļauts atbilstošs modelis un mērķis. Tā pārveidošanas un secinājumu piemēri ir noderīgāki, nekā pieņemt, ka jebkurš eksportētais tīkls darbosies nemainīgs. Atlasiet zināmu repozitorija versiju un izpildiet šī konkrētā piemēra norādījumus.

Darbība 2: konvertējiet modeli un pārbaudiet operatora atbalstu

  1. Saskaņojiet mērķi. Atlasiet mērķi RK3588 un rīku ķēdi, kas ir saderīga ar paredzēto dēļa attēlu.
  2. Pārbaudiet grafiku. Apstipriniet formas, pirmapstrādi, izejas un atbalstu faktiskajām darbībām eksportētajā modelī.
  3. Izveidojiet atsauces reklāmguvumu. Izmantojiet šīs diagrammas un programmatūras versijas atbalstītās precizitātes opcijas.
  4. Izlasiet visu būvniecības žurnālu. Pirms kameras iegūšanas vai lietotāja interfeisa pievienošanas atrisiniet kļūmes un izpētiet brīdinājumus.
  5. Salīdziniet izejas. Palaidiet tās pašas ievades, izmantojot sākotnējos un pārveidotos modeļus, ar tādu pašu pēcapstrādi.

Neatbalstītai darbībai var būt nepieciešama cita eksportēšana, diagrammas pārrakstīšana vai skaidra CPU apstrādes stadija. Nedomājiet, ka izpildlaiks pārredzami izpildīs katru neatbalstīto slāni. Ja daļa no darba slodzes tiek pārvietota uz centrālo procesoru, veiktspējas mērījumā iekļaujiet pārsūtīšanu un sinhronizāciju.

3. darbība: novērtējiet INT8 atbilstoši jūsu precizitātes prasībām

Kvantizēšana maina skaitlisko attēlojumu. Ja atlasītajā konversijas plūsmā tiek izmantoti kalibrēšanas dati, izvēlieties ievadi, kas atbilst izvietošanai: apgaismojums, objekta izmērs, fons un darbības apstākļi. Saglabājiet atsevišķu validācijas komplektu, lai novērtētu rezultātu. Ja reklāmguvums tiek veiksmīgi pabeigts, joprojām ir jāpārbauda precizitāte.

Salīdziniet lietojumprogrammas izvadi, ne tikai atšķirību starp diviem tensoriem. Piemēram, nelielas skaitliskās izmaiņas var pārvietot noteikšanu pāri ticamības slieksnim. Pārbaudiet sarežģītus gadījumus, klases ar dažiem piemēriem un nosacījumus, kad sākotnējais modelis jau bija mazsvarīgs. Ja precizitāte ir zemāka par pieņemšanas robežu, pirms aparatūras maiņas vēlreiz pārbaudiet kalibrēšanas pārklājumu un priekšapstrādi.

The ONNX Izpildlaika kvantifikācijas dokumentācija ir noderīgs pamats skaitliskiem kompromisiem un precizitātes izmeklēšanai. RKNN reklāmguvumu opcijas un atbalstītā precizitāte joprojām ir jāpārbauda Rockchip paša izvēlētā laidiena dokumentācijā.

Darbība 4: mēriet vairāk nekā izseciniet laiku

Izmēriet izmantoto darba slodzi pēc iesildīšanās un vēlreiz ilgstošas darbības laikā. Reģistrē temperatūru, jaudas režīmu, vienlaicīgi notiekošos procesus un kameras vai dzesēšanas izkārtojumu. Noderīgs rezultāts ir reproducējams veiktspējas aploksne, tostarp precizitāte un aizkave, apstākļos, kādos izstrādājums darbosies.

MērīšanaKo tas atbildKo ierakstīt
Modeļa izpildes ilgumsCik ilgi ilgst šis izpildlaika zvans?Ievades forma, precizitāte, laika robežas un izpildlaika versija
Latentums no gala līdz galamCik vecs ir novērojums, kad tiek piegādāts rezultāts?Uztveršanas laiks, pirmapstrāde, rindas, secinājumi un izvades laiks
Noturīga caurlaidspējaCik pabeigtu rezultātu tiek piegādāts laika gaitā?Darbības ilgums, izpildītie pieprasījumi un atmestās vai izlaistas ievades
Pielietojuma precizitāteVai izvietotais modelis atbilst uzdevuma prasībām?Validācijas kopa, uzdevuma metrika un lēmumu sliekšņi
Termiskā uzvedībaVai rezultāts ir stabils pēc sistēmas uzsilšanas?Apkārtējās vides apstākļi, dzesēšana, temperatūra un pulksteņi, ja tādi ir pieejami

Kā ilustratīvs budžets — lietojumprogrammai, kas saņem jaunu kadru ik pēc 40 ms, ir jāseko līdzi 25 kadriem sekundē, ja tā apstrādā katru kadru. 12 ms secinājuma mērījums atstātu atlikušo budžeta daļu iegādei, sagatavošanai un piegādei tikai atbilstoši ieplānotā veidā. Tas nepierāda 12 ms aizkavi no kameras līdz rezultātam. Šie skaitļi ir plānošanas piemērs, nevis izmērīta ForgeEdge veiktspēja.

Programmatūras ilguma noteikšanai izmantojiet monotonu pulksteni. Ziņojiet par vidējo un gala latentumu, nevis par vienu labāko novērojumu, un saglabājiet neapstrādātos mērījumus. Vairākām kamerām ņemiet vērā visu aktīvo straumju darba slodzi, tostarp dekodēšanu, attēla konvertēšanu, atmiņas kustību un ierakstīšanu. Rinda, kas pieaug visā testa laikā, norāda, ka vidējā jauda ir mazāka par ienākošo darba slodzi.

Biežākie izvietošanas simptomi

SimptomsPirmā izmeklēšana
Pareizs modelis, nepareizas etiķetes vai kastesKrāsu secība, normalizēšana, izmēru maiņa/polsterējums, izvades izkārtojums un pēcapstrāde
Pārveidoto modeli nevar inicializētMērķa atlase, izpildlaika/draivera saderība un modeļa artefakta integritāte
Labs īss etalons, slikta noturīga veiktspējaTemperatūra, jaudas režīms, atmiņas spiediens un konkurējošais darbs
Pieņemams secinājumu veikšanas laiks, redzami aizkavēti rezultātiUztveriet buferizāciju, rindu vecumu, kopijas un izvades plānošanu
INT8 izvade zaudē noderīgas noteikšanas iespējasKalibrēšanas pārklājums, priekšapstrādes līdzvērtība un uzdevuma līmeņa validācija

Pārvērtiet prototipu par atkārtojamu produktu

Iesaiņojiet modeli, izpildlaiku un lietojumprogrammas konfigurāciju kā kontrolētu laidienu. Definējiet palaišanas pārbaudes, kļūdu ziņošanu, atkopšanu un atcelšanas ceļu. Pirms kameras pievienošanas veiciet nelielu atsauces ievades pārbaudi, kas var noteikt nepareizu izvietošanu. Atdaliet šo programmatūras pārbaudi no fiziskā sensora pārbaudes, kas arī izmanto kabeļus, draiverus un ekspozīcijas iestatījumus.

Ja platei nepieciešami dažādi savienotāji, strāvas kondicionēšanas vai sensoru saskarnes, pārskatiet SoM pret SBC lēmumu un nesējplates projektēšanas process. Šie lēmumi nosaka, kā veiksmīga modeļa demonstrācija kļūst par uzturējamu sistēmu.

RK3588 NPU izvietošanas jautājumi

Vai katrs ONNX modelis var darboties ar RK3588 NPU?

Saderība ir atkarīga no faktiskā grafika, formām, operācijām un izvēlētās rīku ķēdes. Izveidojiet atbalstu, pārveidojot un ierīcē apstiprinot modeli, kuru plānojat nosūtīt.

Vai reklamētais akseleratora vērtējums paredz lietojumprogrammas FPS?

Nē. Tīkls, precizitāte, atmiņas darbība, priekšapstrāde un izpildlaiks nosaka lietojumprogrammas izmērīto caurlaidspēju. Salīdzinot platformas, izmantojiet mērķa darba slodzi un tās pilno datu ceļu.

Vai vispirms vajadzētu optimizēt neironu tīklu?

Vispirms profils. Ja dominē iegūšana, attēla konvertēšana vai rindas veidošana, modeļa izpildes laika samazināšana var maz ietekmēt lietojumprogrammas rezultātu vecumu.

Salīdzinoši veiciet visu datorredzes uzdevumu

Objektu noteikšanas lietojumprogrammai mēriet kameras uzņemšanu, izmēru maiņu un normalizēšanu, NPU secinājumus, izvades dekodēšanu un lēmuma piegādi. Norādiet modeļa versiju, ievades izšķirtspēju, precizitāti, ticamības slieksni un novērtējuma datu kopu ar laika noteikšanas rezultātu. Pretējā gadījumā divi šķietami līdzīgi edge AI etaloni var aprakstīt dažādus uzdevumus.

Pārbaudiet eksportēto grafiku un nepieciešamos operatorus, izmantojot atlasīto RKNN rīku ķēdi, pirms veicat modeļa arhitektūru. Pārbaudiet precizitāti pēc kvantēšanas un uzvedību ilgstošas ​​izpildes laikā, ne tikai to, vai konvertēšana ir veiksmīga. Objektu noteikšanai, segmentācijai un klasifikācijai ir dažādas produkcijas apstrādes izmaksas; apstiprināt projektam izvēlēto faktisko darba slodzi.

Salīdziniet FPGA, NPU un MPU dizaina lomas

Tehniskās atsauces

Nodrošiniet savu edge AI darba slodzi.

Kopīgojiet modeli, ievades izšķirtspēju, kameras saskarnes, nepieciešamo rezultātu ātrumu un jaudas aploksni. Mēs varam novērtēt integrācijas darbu, izmantojot RK3588 malas platformu.