Maksimoi Edge AI -sovellusten suorituskyky - KDnuggets

Maksimoi suorituskyky Edge AI -sovelluksissa – KDnuggets

Lähdesolmu: 2919295

Tekoälyn siirtyessä pilvestä Edgeen huomaamme, että teknologiaa käytetään jatkuvasti laajenevissa käyttötapauksissa – poikkeamien havaitsemisesta sovelluksiin, kuten älykkäisiin ostoksiin, valvontaan, robotiikkaan ja tehdasautomaatioon. Näin ollen ei ole olemassa yhtä ja kaikille sopivaa ratkaisua. Mutta kamerakäyttöisten laitteiden nopean kasvun myötä tekoäly on yleisimmin käytetty reaaliaikaisen videodatan analysoinnissa videovalvonnan automatisoimiseksi turvallisuuden parantamiseksi, toiminnan tehokkuuden parantamiseksi ja paremman asiakaskokemuksen tarjoamiseksi, mikä lopulta saavuttaa kilpailuetua omilla toimialoillaan . Jotta voit tukea videoanalyysiä paremmin, sinun on ymmärrettävä strategiat järjestelmän suorituskyvyn optimoimiseksi reuna-AI-käyttöönotuksissa.

  • Oikean kokoisten laskentakoneiden valitseminen, jotta ne täyttävät tai ylittävät vaaditut suorituskykytasot. Tekoälysovelluksessa näiden laskentakoneiden on suoritettava koko visioputkilinjan toiminnot (eli videon esi- ja jälkikäsittely, hermoverkkojen päättely).

Erillinen AI-kiihdytin saatetaan tarvita, olipa se sitten erillinen tai integroitu SoC:hen (toisin kuin AI-päättelyn suorittaminen suorittimella tai grafiikkasuorittimella).

  • Suorituskyvyn ja latenssin välisen eron ymmärtäminen; jossa suoritusteho on nopeus, jolla dataa voidaan käsitellä järjestelmässä, ja latenssi mittaa tietojenkäsittelyn viivettä järjestelmän läpi ja se liittyy usein reaaliaikaiseen reagointikykyyn. Esimerkiksi järjestelmä voi luoda kuvadataa 100 ruutua sekunnissa (läpäisykyky), mutta kestää 100 ms (latenssi), jotta kuva kulkee järjestelmän läpi.   
  • Ottaen huomioon kyky skaalata tekoälyn suorituskykyä tulevaisuudessa helposti kasvaviin tarpeisiin, muuttuviin vaatimuksiin ja kehittyviin teknologioihin (esim. edistyneemmät tekoälymallit toiminnallisuuden ja tarkkuuden lisäämiseksi). Voit suorittaa suorituskyvyn skaalaus käyttämällä AI-kiihdyttimiä moduulimuodossa tai ylimääräisillä AI-kiihdytinsiruilla.

Todelliset suorituskykyvaatimukset riippuvat sovelluksesta. Tyypillisesti voidaan odottaa, että videoanalytiikkaa varten järjestelmän täytyy käsitellä kameroista tulevia tietovirtoja nopeudella 30-60 kuvaa sekunnissa ja resoluutiolla 1080p tai 4k. AI-yhteensopiva kamera käsittelee yhden streamin; reunalaite käsittelee useita virtoja rinnakkain. Kummassakin tapauksessa reuna-AI-järjestelmän on tuettava esikäsittelytoimintoja, jotta kameran anturitiedot muunnetaan muotoon, joka vastaa tekoälyn päättelyosion syöttövaatimuksia (kuva 1).

Esikäsittelytoiminnot ottavat vastaan ​​raakadatan ja suorittavat tehtäviä, kuten koon muuttamisen, normalisoinnin ja väriavaruuden muuntamisen, ennen kuin syöttävät syötteen tekoälykiihdyttimellä toimivaan malliin. Esikäsittelyssä voidaan käyttää tehokkaita kuvankäsittelykirjastoja, kuten OpenCV:tä, esikäsittelyaikojen lyhentämiseksi. Jälkikäsittely sisältää päättelyn tulosten analysoinnin. Se käyttää tehtäviä, kuten ei-maksimaalista vaimennusta (NMS tulkitsee useimpien objektien tunnistusmallien tulosteet) ja kuvan näyttöä luodakseen käyttökelpoisia oivalluksia, kuten rajausruutuja, luokkatunnisteita tai luottamuspisteitä.

 

Maksimoi suorituskyky Edge AI -sovelluksissa
Kuva 1. Tekoälymallin päättelyssä esi- ja jälkikäsittelytoiminnot suoritetaan tyypillisesti sovellusprosessorilla.
 

Tekoälymallin päättelyssä voi olla lisähaasteena käsitellä useita hermoverkkomalleja kehystä kohti sovelluksen ominaisuuksista riippuen. Tietokonenäkösovellukset sisältävät yleensä useita tekoälytehtäviä, jotka edellyttävät useita malleja. Lisäksi yhden mallin tulos on usein seuraavan mallin syöte. Toisin sanoen sovelluksen mallit ovat usein riippuvaisia ​​toisistaan ​​ja ne on suoritettava peräkkäin. Tarkka suoritettavien mallien joukko ei välttämättä ole staattinen ja voi vaihdella dynaamisesti, jopa kehyskohtaisesti. 

Useiden mallien dynaamisen ajamisen haaste vaatii ulkoisen tekoälykiihdytin, jossa on omistettu ja riittävän suuri muisti mallien tallentamiseen. Usein SoC:n sisällä oleva integroitu AI-kiihdytin ei pysty hallitsemaan usean mallin työmäärää jaetun muistin alijärjestelmän ja muiden SoC:n resurssien asettamien rajoitusten vuoksi.

Esimerkiksi liikkeen ennusteeseen perustuva objektin seuranta perustuu jatkuviin ilmaisuihin vektorin määrittämiseksi, jota käytetään jäljitettävän kohteen tunnistamiseen tulevassa paikassa. Tämän lähestymistavan tehokkuus on rajallinen, koska siitä puuttuu todellinen uudelleentunnistuskyky. Liikkeen ennakointia käytettäessä kohteen jäljitys voi kadota, jos havaitseminen epäonnistuu, okkluusio tai kohde poistuu näkökentästä jopa hetkellisesti. Kun esine on kadonnut, sitä ei voi yhdistää uudelleen. Uudelleentunnistuksen lisääminen ratkaisee tämän rajoituksen, mutta vaatii visuaalisen ilmeen upottamisen (eli kuvan sormenjäljen). Ulkonäkö upotukset vaativat toisen verkon luomaan piirrevektorin käsittelemällä ensimmäisen verkon havaitseman kohteen rajauslaatikon sisällä olevaa kuvaa. Tätä upotusta voidaan käyttää kohteen uudelleen tunnistamiseen ajasta tai paikasta riippumatta. Koska upotukset on luotava jokaiselle näkökentässä havaitulle objektille, käsittelyvaatimukset kasvavat, kun kohtaus muuttuu kiireisemmäksi. Objektien seuranta uudelleentunnistuksella edellyttää huolellista harkintaa korkean tarkkuuden / korkean resoluution / suuren kuvanopeuden havaitsemisen ja riittävän lisäkulujen varaamisen välillä upotusten skaalautuvuutta varten. Yksi tapa ratkaista prosessointivaatimus on käyttää erillistä AI-kiihdytintä. Kuten aiemmin mainittiin, SoC:n AI-moottori voi kärsiä jaettujen muistiresurssien puutteesta. Mallin optimointia voidaan käyttää myös prosessointitarpeen alentamiseen, mutta se voi vaikuttaa suorituskykyyn ja/tai tarkkuuteen.

Älykamerassa tai reunalaitteessa integroitu SoC (eli isäntäprosessori) hankkii videokehykset ja suorittaa aiemmin kuvailemamme esikäsittelyvaiheet. Nämä toiminnot voidaan suorittaa SoC:n CPU-ytimillä tai GPU:lla (jos sellainen on saatavilla), mutta ne voidaan suorittaa myös SoC:n erityisillä laitteistokiihdyttimillä (esim. kuvasignaaliprosessori). Kun nämä esikäsittelyvaiheet on suoritettu, SoC:hen integroitu AI-kiihdytin voi sitten päästä suoraan tähän kvantisoituun tuloon järjestelmämuistista, tai jos kyseessä on erillinen AI-kiihdytin, syöte toimitetaan sitten päätelmiä varten, tyypillisesti USB- tai PCIe-liitäntä. 

Integroitu SoC voi sisältää useita laskentayksiköitä, mukaan lukien prosessorit, GPU:t, AI-kiihdytin, näköprosessorit, videokooderit/dekooderit, kuvasignaaliprosessorit (ISP) ja paljon muuta. Näillä laskentayksiköillä kaikilla on sama muistiväylä ja näin ollen pääsy samaan muistiin. Lisäksi suorittimella ja grafiikkasuorittimella voi olla myös rooli päättelyssä, ja nämä yksiköt ovat kiireisiä muiden tehtävien suorittamisessa käyttöönotetussa järjestelmässä. Tätä tarkoitamme järjestelmätason yleiskustannuksilla (kuva 2).

Monet kehittäjät arvioivat virheellisesti SoC:n sisäänrakennetun tekoälykiihdyttimen suorituskyvyn ottamatta huomioon järjestelmätason yleiskustannusten vaikutusta kokonaissuorituskykyyn. Harkitse esimerkiksi YOLO-testauksen suorittamista SoC:hen integroidussa 50 TOPS AI -kiihdytinssä, joka saattaa saada vertailutuloksen 100 päätelmää sekunnissa (IPS). Mutta käytössä olevassa järjestelmässä, jossa kaikki muut laskentayksiköt ovat aktiivisia, nämä 50 TOPS-arvoa voisivat pienentyä noin 12 TOPS:iin ja kokonaissuorituskyky tuottaisi vain 25 IPS:tä, jos oletetaan, että käyttökerroin on runsas 25 %. Järjestelmän lisäkustannukset ovat aina tekijä, jos alusta käsittelee jatkuvasti videovirtoja. Vaihtoehtoisesti erillisellä tekoälykiihdyttimellä (esim. Kinara Ara-1, Hailo-8, Intel Myriad X) järjestelmätason käyttöaste voi olla yli 90 %, koska kun isäntä SoC aloittaa päättelytoiminnon ja siirtää tekoälymallin syötteen dataa, kiihdytin toimii itsenäisesti hyödyntäen omaa muistiaan mallin painojen ja parametrien käyttämiseen.

 

Maksimoi suorituskyky Edge AI -sovelluksissa
Kuva 2. Jaettu muistiväylä ohjaa järjestelmätason suorituskykyä, joka näkyy tässä arvioitujen arvojen kanssa. Todelliset arvot vaihtelevat sovelluksesi käyttömallin ja SoC:n laskentayksikön kokoonpanon mukaan.

Tähän asti olemme keskustelleet tekoälyn suorituskyvystä ruutuina sekunnissa ja TOPSina. Mutta alhainen latenssi on toinen tärkeä vaatimus järjestelmän reaaliaikaisen reagointikyvyn takaamiseksi. Esimerkiksi pelaamisessa alhainen latenssi on kriittinen saumattoman ja reagoivan pelikokemuksen kannalta, erityisesti liikeohjatuissa peleissä ja virtuaalitodellisuusjärjestelmissä. Autonomisissa ajojärjestelmissä alhainen latenssi on elintärkeää reaaliaikaisessa kohteen havaitsemisessa, jalankulkijoiden tunnistuksessa, kaistantunnistuksessa ja liikennemerkkien tunnistuksessa turvallisuuden vaarantumisen välttämiseksi. Autonomiset ajojärjestelmät vaativat yleensä päästä päähän -latenssin, joka on alle 150 ms havaitsemisesta varsinaiseen toimintaan. Samoin valmistuksessa alhainen latenssi on välttämätöntä reaaliaikaisessa vian havaitsemisessa, poikkeamien tunnistamisessa ja robottiohjauksessa, joka riippuu matalan latenssin videoanalytiikasta tehokkaan toiminnan varmistamiseksi ja tuotannon seisokkien minimoimiseksi.

Yleensä videoanalytiikkasovelluksessa on kolme latenssikomponenttia (kuva 3):

  • Tiedonkeruuviive on aika, joka kuluu kameran anturista videokehyksen kaappaamisesta kehyksen käytettävyyteen analytiikkajärjestelmän käsittelyä varten. Voit optimoida tämän viiveen valitsemalla kameran, jossa on nopea anturi ja matalan viiveen prosessori, valitsemalla optimaaliset kuvanopeudet ja käyttämällä tehokkaita videon pakkausmuotoja.
  • Tiedonsiirtoviive on aika, jonka kaapattu ja pakattu videodata kulkee kamerasta reunalaitteisiin tai paikallisiin palvelimiin. Tämä sisältää verkon käsittelyviiveet, joita esiintyy kussakin päätepisteessä.
  • Tiedonkäsittelyn viive tarkoittaa aikaa, jonka reunalaitteet suorittavat videonkäsittelytehtävien, kuten kehysten purkamisen ja analytiikan algoritmien (esim. liikkeen ennustamiseen perustuva objektin seuranta, kasvojentunnistus) suorittamiseen. Kuten aiemmin huomautettiin, käsittelyviive on vielä tärkeämpi sovelluksille, joiden on suoritettava useita AI-malleja jokaista videokehystä kohden.

 

Maksimoi suorituskyky Edge AI -sovelluksissa
Kuva 3. Videoanalytiikkaputkisto koostuu tiedonkeruusta, tiedonsiirrosta ja tietojenkäsittelystä.
 

Tietojenkäsittelyviive voidaan optimoida käyttämällä AI-kiihdytintä, jonka arkkitehtuuri on suunniteltu minimoimaan tiedon liikkuminen sirun yli sekä laskennan ja muistihierarkian eri tasojen välillä. Myös latenssin ja järjestelmätason tehokkuuden parantamiseksi arkkitehtuurin on tuettava nollaa (tai lähes nollaa) vaihtoaikaa mallien välillä, jotta se tukee paremmin aiemmin keskustelemiamme monimallisovelluksia. Toinen sekä parantuneen suorituskyvyn että latenssin tekijä liittyy algoritmiseen joustavuuteen. Toisin sanoen jotkin arkkitehtuurit on suunniteltu toimimaan optimaalisesti vain tietyissä tekoälymalleissa, mutta nopeasti muuttuvan tekoälyympäristön myötä uusia malleja, jotka parantavat suorituskykyä ja tarkkuutta, ilmestyy joka toinen päivä. Valitse siksi reuna-AI-prosessori ilman käytännön rajoituksia mallin topologiaan, operaattoreihin ja kokoon.

Edistyneen tekoälylaitteen suorituskyvyn maksimoinnissa on otettava huomioon monia tekijöitä, mukaan lukien suorituskyky- ja latenssivaatimukset sekä järjestelmän ylimääräiset kustannukset. Onnistuneessa strategiassa tulisi harkita ulkoista tekoälykiihdytintä SoC:n tekoälymoottorin muistin ja suorituskyvyn rajoitusten voittamiseksi.
 
 
CH Chee Chee on taitava tuotemarkkinoinnin ja -hallinnon johtaja. Cheellä on laaja kokemus tuotteiden ja ratkaisujen markkinoinnista puolijohdeteollisuudessa keskittyen visioon perustuvaan tekoälyyn, liitettävyyteen ja videorajapintoihin useille markkinoille, mukaan lukien yrityksille ja kuluttajille. Yrittäjänä Chee oli mukana perustamassa kahta videopuolijohdealan startup-yritystä, jotka julkinen puolijohdeyritys osti. Chee johti tuotemarkkinointitiimejä ja nauttii työskentelystä pienen tiimin kanssa, joka keskittyy loistavien tulosten saavuttamiseen.
 

Aikaleima:

Lisää aiheesta KDnuggets