Edge AI rakenduste jõudluse maksimeerimine – KDnuggets

Edge AI rakenduste jõudluse maksimeerimine – KDnuggets

Allikasõlm: 2919295

Kui tehisintellekt liigub pilvest Edge'i, näeme, et tehnoloogiat kasutatakse üha laienevatel kasutusjuhtudel – alates anomaaliate tuvastamisest kuni rakendusteni, sealhulgas nutikad ostlemised, valve, robootika ja tehase automatiseerimine. Seetõttu pole kõigile sobivat lahendust. Kuid kaameratoega seadmete kiire kasvu tõttu on AI-d kõige laialdasemalt kasutusele võetud reaalajas videoandmete analüüsimiseks, et automatiseerida videoseiret, et suurendada ohutust, tõhustada toimimist ja pakkuda paremat kliendikogemust, saavutades lõpuks oma tööstusharu konkurentsieelise. . Videoanalüüsi paremaks toetamiseks peate mõistma süsteemi jõudluse optimeerimise strateegiaid AI-kasutuses.

  • Õige suurusega arvutusmootorite valimine, et need vastaksid või ületavad nõutud jõudlustasemeid. AI-rakenduse puhul peavad need arvutusmootorid täitma kogu nägemiskonveieri funktsioone (st video eel- ja järeltöötlust, närvivõrgu järeldusi).

Vaja võib olla spetsiaalne tehisintellekti kiirendi, olgu see siis diskreetne või SoC-sse integreeritud (erinevalt AI järeldamise käitamisest protsessoris või GPU-s).

  • Läbilaskevõime ja latentsusaja erinevuse mõistmine; kusjuures läbilaskevõime on kiirus, mille jooksul andmeid saab süsteemis töödelda, ja latentsus mõõdab andmetöötluse viivitust süsteemis ja seda seostatakse sageli reaalajas reageerimisvõimega. Näiteks võib süsteem genereerida pildiandmeid kiirusega 100 kaadrit sekundis (läbilaskevõime), kuid pildi läbimiseks kulub 100 ms (latentsus).   
  • Arvestades võimalust AI jõudlust tulevikus hõlpsalt skaleerida, et see vastaks kasvavatele vajadustele, muutuvatele nõuetele ja arenevatele tehnoloogiatele (nt täiustatud tehisintellekti mudelid suurema funktsionaalsuse ja täpsuse tagamiseks). Saate jõudlust skaleerida, kasutades AI-kiirendeid moodulivormingus või täiendavate AI-kiirendite abil.

Tegelikud jõudlusnõuded sõltuvad rakendusest. Tavaliselt võib eeldada, et videoanalüütika jaoks peab süsteem töötlema kaameratest tulevaid andmevooge kiirusega 30–60 kaadrit sekundis ja eraldusvõimega 1080p või 4k. AI-toega kaamera töötleks ühte voogu; servaseade töötleks mitut voogu paralleelselt. Mõlemal juhul peab serva-AI-süsteem toetama eeltöötlusfunktsioone, et teisendada kaamera anduri andmed vormingusse, mis vastab tehisintellekti järelduste jaotise sisendnõuetele (joonis 1).

Eeltöötlusfunktsioonid võtavad algandmed vastu ja täidavad ülesandeid, nagu suuruse muutmine, normaliseerimine ja värviruumi teisendamine, enne kui sisestavad sisendi AI-kiirendiga töötavasse mudelisse. Eeltöötlus võib kasutada tõhusaid pilditöötlusteeke, nagu OpenCV, et vähendada eeltöötlusaega. Järeltöötlus hõlmab järelduse väljundi analüüsimist. See kasutab selliseid ülesandeid nagu mittemaksimaalne mahasurumine (NMS tõlgendab enamiku objektituvastusmudelite väljundit) ja kujutise kuvamine, et luua toimivaid teadmisi, nagu piirdekastid, klassisildid või usaldusskoorid.

 

Maksimeerige Edge AI rakenduste jõudlust
Joonis 1. AI mudeli järeldamiseks teostatakse eel- ja järeltöötlusfunktsioonid tavaliselt rakenduste protsessoris.
 

Tehisintellekti mudeli järeldamisel võib olla täiendav väljakutse töödelda kaadri kohta mitut närvivõrgu mudelit, olenevalt rakenduse võimalustest. Arvutinägemise rakendused hõlmavad tavaliselt mitut tehisintellekti ülesannet, mis nõuavad mitme mudeli konveieri. Lisaks on ühe mudeli väljund sageli järgmise mudeli sisend. Teisisõnu sõltuvad rakenduse mudelid sageli üksteisest ja neid tuleb täita järjestikku. Täpne käivitatavate mudelite komplekt ei pruugi olla staatiline ja võib dünaamiliselt muutuda isegi kaadri kaupa. 

Mitme mudeli dünaamiline käitamine nõuab välist tehisintellekti kiirendit koos spetsiaalse ja piisavalt suure mäluga mudelite salvestamiseks. Sageli ei suuda SoC-s olev integreeritud tehisintellekti kiirendi hallata mitme mudeli töökoormust ühismälu alamsüsteemi ja muude SoC-i ressursside seatud piirangute tõttu.

Näiteks liikumisprognoosil põhinev objekti jälgimine tugineb pidevatele tuvastustele, et määrata kindlaks vektor, mida kasutatakse jälgitava objekti tuvastamiseks tulevases asukohas. Selle lähenemisviisi tõhusus on piiratud, kuna sellel puudub tõeline uuesti tuvastamise võimalus. Liikumisprognoosiga võib objekti jälg kaduda, kuna tuvastamata jätmine, oklusioonid või objekt vaateväljast lahkub isegi hetkeks. Kui see on kadunud, pole enam võimalust objekti rada uuesti seostada. Uuesti tuvastamise lisamine lahendab selle piirangu, kuid nõuab visuaalse välimuse manustamist (st pildi sõrmejälge). Välimuse manustamiseks on vaja teist võrku, et genereerida tunnusvektorit, töödeldes esimese võrgu poolt tuvastatud objekti piirdekastis olevat pilti. Seda manustamist saab kasutada objekti uuesti tuvastamiseks, olenemata ajast või ruumist. Kuna iga vaateväljas tuvastatud objekti jaoks tuleb luua manustused, suurenevad töötlemise nõuded, kui stseen muutub tihedamaks. Uuesti tuvastamisega objektide jälgimine nõuab hoolikat kaalumist suure täpsuse / kõrge eraldusvõime / suure kaadrisagedusega tuvastamise ja manustamise skaleeritavuse jaoks piisava üldkulude reserveerimise vahel. Üks viis töötlemisnõude lahendamiseks on kasutada spetsiaalset tehisintellekti kiirendit. Nagu varem mainitud, võib SoC AI-mootor kannatada jagatud mäluressursside puudumise tõttu. Mudeli optimeerimist saab kasutada ka töötlemisnõude vähendamiseks, kuid see võib mõjutada jõudlust ja/või täpsust.

Nutikas kaameras või servaseadmes hangib integreeritud SoC (st hostprotsessor) videokaadrid ja teostab eeltöötlusetapid, mida me varem kirjeldasime. Neid funktsioone saab täita SoC-i CPU-tuumade või GPU-ga (kui see on saadaval), kuid neid saavad täita ka SoC-s olevad spetsiaalsed riistvarakiirendid (nt pildisignaaliprotsessor). Kui need eeltöötlusetapid on lõpule viidud, pääseb SoC-sse integreeritud tehisintellekti kiirendi otse sellele süsteemimälust kvantiseeritud sisendile juurde või diskreetse AI kiirendi puhul edastatakse sisend järelduste tegemiseks, tavaliselt üle USB või PCIe liides. 

Integreeritud SoC võib sisaldada mitmesuguseid arvutusseadmeid, sealhulgas protsessoreid, GPU-sid, AI kiirendit, nägemisprotsessoreid, videokoodereid/dekoodereid, pildisignaaliprotsessoreid (ISP) ja palju muud. Kõik need arvutusüksused jagavad sama mälusiini ja järelikult juurdepääsu samale mälule. Lisaks võivad järelduste tegemisel oma osa mängida ka CPU-l ja GPU-l ning need üksused on hõivatud muude ülesannete täitmisega juurutatud süsteemis. Seda peame silmas süsteemitasandi üldkulude all (joonis 2).

Paljud arendajad hindavad ekslikult SoC-i sisseehitatud AI-kiirendi jõudlust, võtmata arvesse süsteemitaseme üldkulude mõju kogu jõudlusele. Näiteks kaaluge YOLO võrdlusaluse käitamist SoC-sse integreeritud 50 TOPS AI kiirendil, mis võib saada võrdlusaluse tulemuseks 100 järeldust sekundis (IPS). Kuid juurutatud süsteemis, kus kõik muud arvutusüksused on aktiivsed, võivad need 50 TOPS-i väheneda umbes 12 TOPS-i ja üldine jõudlus annaks vaid 25 IPS-i, eeldades, et kasutustegur on 25%. Süsteemi üldkulud on alati tegur, kui platvorm töötleb pidevalt videovooge. Teise võimalusena võib diskreetse tehisintellekti kiirendiga (nt Kinara Ara-1, Hailo-8, Intel Myriad X) süsteemitaseme kasutamine olla suurem kui 90%, sest kui hosti SoC käivitab järeldusfunktsiooni ja edastab AI mudeli sisendi kiirendi töötab autonoomselt, kasutades mudeli kaaludele ja parameetritele juurdepääsuks spetsiaalset mälu.

 

Maksimeerige Edge AI rakenduste jõudlust
Joonis 2. Jagatud mälusiin juhib süsteemi tasemel jõudlust, mis on siin näidatud hinnanguliste väärtustega. Tegelikud väärtused sõltuvad teie rakenduse kasutusmudelist ja SoC arvutusüksuse konfiguratsioonist.

Kuni selle hetkeni oleme arutanud tehisintellekti jõudlust kaadrite sekundis ja TOPSina. Kuid madal latentsusaeg on veel üks oluline nõue süsteemi reaalajas reageerimise tagamiseks. Näiteks mängude puhul on madal latentsus kriitilise tähtsusega sujuva ja tundliku mängukogemuse jaoks, eriti liikumisjuhitavate mängude ja virtuaalreaalsuse (VR) süsteemide puhul. Autonoomsetes sõidusüsteemides on väike latentsus ülioluline objektide reaalajas tuvastamiseks, jalakäijate tuvastamiseks, sõidurea tuvastamiseks ja liiklusmärkide tuvastamiseks, et vältida ohutuse ohtu. Autonoomsed juhtimissüsteemid nõuavad tavaliselt otspunkti latentsust, mis on tuvastamisest kuni tegeliku toiminguni alla 150 ms. Samamoodi on tootmises oluline väike latentsusaeg defektide reaalajas tuvastamiseks, kõrvalekallete tuvastamiseks ja robotite juhised sõltuvad madala latentsusega videoanalüütikast, et tagada tõhus toimimine ja minimeerida tootmisseisakuid.

Üldiselt on videoanalüüsi rakenduses latentsusajal kolm komponenti (joonis 3):

  • Andmehõive latentsusaeg on aeg, mis kulub kaamera andurilt videokaadri jäädvustusest kuni kaadri kättesaadavuseni analüütilisele süsteemile töötlemiseks. Saate seda latentsust optimeerida, valides kiire anduri ja madala latentsusajaga protsessoriga kaamera, valides optimaalsed kaadrisagedused ja kasutades tõhusaid video tihendamise vorminguid.
  • Andmeedastuse latentsus on aeg, mille jooksul jäädvustatud ja tihendatud videoandmed liiguvad kaamerast ääreseadmetesse või kohalikesse serveritesse. See hõlmab võrgu töötlemise viivitusi, mis esinevad igas lõpp-punktis.
  • Andmetöötluse latentsus viitab ajale, mille jooksul servaseadmed täidavad videotöötlustoiminguid, nagu kaadri lahtipakkimine ja analüütilised algoritmid (nt liikumise ennustamisel põhinev objekti jälgimine, näotuvastus). Nagu varem märgitud, on töötlemise latentsus veelgi olulisem rakenduste jaoks, mis peavad iga videokaadri jaoks käivitama mitu AI mudelit.

 

Maksimeerige Edge AI rakenduste jõudlust
Joonis 3. Videoanalüütika konveier koosneb andmehõivest, andmeedastusest ja andmetöötlusest.
 

Andmetöötluse latentsust saab optimeerida tehisintellekti kiirendi abil, mille arhitektuur on loodud minimeerima andmete liikumist kiibis ning arvutamise ja mäluhierarhia erinevate tasemete vahel. Samuti peab latentsusaja ja süsteemitaseme tõhususe parandamiseks arhitektuur toetama nulli (või nullilähedast) mudelite vahelist lülitusaega, et toetada paremini varem käsitletud mitme mudeliga rakendusi. Teine tegur nii parema jõudluse kui ka latentsusaja jaoks on seotud algoritmilise paindlikkusega. Teisisõnu, mõned arhitektuurid on loodud optimaalseks käitumiseks ainult teatud tehisintellekti mudelitel, kuid kiiresti muutuva tehisintellekti keskkonnaga ilmuvad uued mudelid suurema jõudluse ja täpsuse tagamiseks iga päev. Seetõttu valige AI-protsessor, millel pole praktilisi piiranguid mudeli topoloogiale, operaatoritele ja suurusele.

Edaspidise AI-seadme jõudluse maksimeerimiseks tuleb arvestada paljude teguritega, sealhulgas jõudluse ja latentsuse nõuded ning süsteemi üldkulud. Edukas strateegia peaks kaaluma välist AI kiirendit, et ületada SoC AI-mootori mälu- ja jõudluspiirangud.
 
 
CH Chee Chee on kogenud tooteturunduse ja -juhtimise juht. Chee'l on laialdased kogemused toodete ja lahenduste reklaamimisel pooljuhtide tööstuses, keskendudes visioonipõhistele tehisintellektile, ühenduvus- ja videoliidestele mitmel turul, sealhulgas ettevõtetele ja tarbijatele. Ettevõtjana asutas Chee kaks videopooljuhtide idufirmat, mille ostis avalik-õiguslik pooljuhtide ettevõte. Chee juhtis tooteturunduse meeskondi ja talle meeldib töötada väikese meeskonnaga, kes keskendub suurepäraste tulemuste saavutamisele.
 

Ajatempel:

Veel alates KDnuggets