Maximalizálja a teljesítményt az Edge AI alkalmazásokban – KDnuggets

Maximalizálja a teljesítményt az Edge AI alkalmazásokban – KDnuggets

Forrás csomópont: 2919295

Ahogy a mesterséges intelligencia a felhőből az Edge-be vándorol, azt látjuk, hogy a technológiát a felhasználási esetek egyre szélesebb körében használják – az anomáliák észlelésétől az alkalmazásokig, beleértve az intelligens vásárlást, felügyeletet, robotikát és gyári automatizálást. Ezért nincs mindenkire érvényes megoldás. A kamerás eszközök gyors növekedésével azonban az AI-t a legszélesebb körben alkalmazzák a valós idejű videoadatok elemzésére, hogy automatizálják a videofigyelést a biztonság növelése, a működési hatékonyság javítása és a jobb vásárlói élmény biztosítása érdekében, ami végső soron versenyelőnyt szerez az iparágukban. . A videóelemzés jobb támogatásához ismernie kell a rendszer teljesítményének optimalizálási stratégiáit szélsőséges AI-telepítéseknél.

  • A megfelelő méretű számítási motorok kiválasztása a szükséges teljesítményszintek eléréséhez vagy meghaladásához. Egy mesterséges intelligencia alkalmazás esetén ezeknek a számítási motoroknak el kell látniuk a teljes látási folyamat funkcióit (azaz videó elő- és utófeldolgozást, neurális hálózati következtetést).

Szükség lehet egy dedikált AI-gyorsítóra, legyen az diszkrét vagy egy SoC-be integrált (szemben az AI-következtetés CPU-n vagy GPU-n történő futtatásával).

  • Az átviteli sebesség és a késleltetés közötti különbség megértése; ahol az átviteli sebesség az a sebesség, amellyel az adatok feldolgozhatók a rendszerben, a késleltetés pedig az adatfeldolgozási késleltetést méri a rendszeren keresztül, és gyakran a valós idejű válaszkészséghez kapcsolódik. Például egy rendszer képes képadatokat generálni 100 képkocka/másodperc sebességgel (áteresztőképesség), de 100 ms (késleltetés) szükséges ahhoz, hogy egy kép átmenjen a rendszeren.   
  • Figyelembe véve azt a képességet, hogy a jövőben könnyen méretezhető a mesterséges intelligencia teljesítménye a növekvő igényeknek, a változó követelményeknek és a fejlődő technológiáknak megfelelően (pl. fejlettebb mesterséges intelligencia modellek a nagyobb funkcionalitás és pontosság érdekében). A teljesítmény skálázását AI-gyorsítókkal hajthatja végre modul formátumban vagy további AI-gyorsító chipekkel.

A tényleges teljesítménykövetelmények alkalmazásfüggőek. Jellemzően arra számíthatunk, hogy a videóelemzésnél a rendszernek a kamerákból érkező adatfolyamokat másodpercenként 30-60 képkocka sebességgel és 1080p vagy 4k felbontással kell feldolgoznia. Egy AI-kompatibilis kamera egyetlen adatfolyamot dolgozna fel; egy szélső készülék több adatfolyamot dolgozna fel párhuzamosan. A szélső mesterséges intelligencia rendszernek mindkét esetben támogatnia kell az előfeldolgozási funkciókat, hogy a kamera szenzoradatait olyan formátumba tudja alakítani, amely megfelel az AI következtetési szakasz bemeneti követelményeinek (1. ábra).

Az előfeldolgozó funkciók befogadják a nyers adatokat, és olyan feladatokat hajtanak végre, mint az átméretezés, a normalizálás és a színtér-átalakítás, mielőtt a bemenetet betáplálják az AI-gyorsítón futó modellbe. Az előfeldolgozás hatékony képfeldolgozási könyvtárakat, például az OpenCV-t használhat az előfeldolgozási idő csökkentésére. Az utófeldolgozás magában foglalja a következtetés kimenetének elemzését. Olyan feladatokat használ, mint a nem maximális elnyomás (az NMS értelmezi a legtöbb objektumészlelési modell kimenetét) és a képmegjelenítés, hogy hasznos információkat generáljon, például határolókereteket, osztálycímkéket vagy megbízhatósági pontszámokat.

 

Maximalizálja a teljesítményt az Edge AI alkalmazásokban
1. ábra. Az AI modellkövetkeztetéshez az elő- és utófeldolgozási funkciókat jellemzően egy alkalmazásprocesszor hajtja végre.
 

Az AI-modell-következtetés további kihívást jelenthet több neurális hálózati modell feldolgozása keretenként, az alkalmazás képességeitől függően. A számítógépes látási alkalmazások általában több mesterséges intelligencia-feladatot foglalnak magukban, amelyek több modellből álló folyamatot igényelnek. Ezenkívül az egyik modell kimenete gyakran a következő modell bemenete. Más szavakkal, az alkalmazások modelljei gyakran függnek egymástól, és szekvenciálisan kell végrehajtani őket. Előfordulhat, hogy a végrehajtandó modellek pontos készlete nem statikus, és dinamikusan változhat, akár képkockánként is. 

A több modell dinamikus futtatásának kihívása egy külső AI-gyorsítót igényel dedikált és kellően nagy memóriával a modellek tárolására. Az SoC-n belüli integrált AI-gyorsító gyakran nem képes kezelni a többmodell munkaterhelését a megosztott memória alrendszer és az SoC egyéb erőforrásai által támasztott korlátok miatt.

Például a mozgás-előrejelzésen alapuló objektumkövetés folyamatos észleléseken alapul, hogy meghatározzon egy vektort, amelyet a követett objektum egy jövőbeni pozícióban történő azonosítására használnak. Ennek a megközelítésnek a hatékonysága korlátozott, mert hiányzik belőle a valódi újraazonosítási képesség. A mozgás-előrejelzéssel az objektum nyomvonala elveszhet a kimaradt észlelések, elzáródások vagy a látómező elhagyása miatt, akár pillanatnyilag is. Ha elveszett, nincs mód az objektum nyomvonalának újra társítására. Az újraazonosítás hozzáadása megoldja ezt a korlátozást, de vizuális megjelenésű beágyazást igényel (azaz egy kép ujjlenyomatát). A megjelenési beágyazásokhoz egy második hálózatra van szükség egy jellemzővektor létrehozásához az első hálózat által észlelt objektum határolókeretén belüli kép feldolgozásával. Ez a beágyazás használható az objektum újraazonosítására, időtől és tértől függetlenül. Mivel a beágyazást minden egyes, a látómezőben észlelt objektumhoz létre kell hozni, a feldolgozási igények nőnek, ahogy a jelenet forgalmasabbá válik. Az újbóli azonosítással történő objektumkövetés gondos mérlegelést igényel a nagy pontosságú / nagy felbontású / nagy képkockasebesség észlelése és a beágyazás méretezhetőségéhez szükséges többletmunka fenntartása között. A feldolgozási követelmény megoldásának egyik módja egy dedikált AI-gyorsító. Amint azt korábban említettük, az SoC AI motorja szenvedhet a megosztott memória erőforrások hiányától. A modelloptimalizálás a feldolgozási igény csökkentésére is használható, de hatással lehet a teljesítményre és/vagy a pontosságra.

Intelligens kamerákban vagy éles készülékekben az integrált SoC (vagyis a gazdaprocesszor) beszerzi a videokockákat, és végrehajtja a korábban leírt előfeldolgozási lépéseket. Ezeket a funkciókat az SoC CPU magjaival vagy GPU-val (ha van ilyen) végre lehet hajtani, de az SoC dedikált hardveres gyorsítóival is (pl. képjel-processzorral). Miután ezek az előfeldolgozási lépések befejeződtek, az SoC-be integrált AI-gyorsító közvetlenül hozzáférhet ehhez a kvantált bemenethez a rendszermemóriából, vagy diszkrét AI-gyorsító esetén a bemenetet a rendszer következtetés céljából továbbítja, jellemzően a USB vagy PCIe interfész. 

Az integrált SoC számos számítási egységet tartalmazhat, beleértve a CPU-kat, GPU-kat, AI-gyorsítót, képfeldolgozó processzorokat, videokódolókat/dekódolókat, képjel-processzort (ISP) és még sok mást. Ezek a számítási egységek ugyanazon a memóriabuszon osztoznak, és ennek következtében ugyanahhoz a memóriához férnek hozzá. Ezenkívül előfordulhat, hogy a CPU-nak és a GPU-nak is szerepet kell játszania a következtetésben, és ezek az egységek a telepített rendszer egyéb feladataival lesznek elfoglalva. Ezt értjük rendszerszintű rezsi alatt (2. ábra).

Sok fejlesztő tévesen értékeli a beépített AI-gyorsító teljesítményét az SoC-ban anélkül, hogy figyelembe venné a rendszerszintű többletterhelés hatását a teljes teljesítményre. Példaként fontolja meg egy YOLO benchmark futtatását egy SoC-be integrált 50 TOPS AI-gyorsítón, amely 100 következtetés/másodperc (IPS) benchmark eredményt kaphat. De egy olyan telepített rendszerben, amelyben az összes többi számítási egység aktív, ez az 50 TOPS körülbelül 12 TOPS-ra csökkenhet, és az általános teljesítmény csak 25 IPS-t adna, nagyvonalú 25%-os kihasználtsági tényezőt feltételezve. A rendszer többletterhelése mindig fontos tényező, ha a platform folyamatosan videofolyamokat dolgoz fel. Alternatív megoldásként diszkrét AI-gyorsítóval (pl. Kinara Ara-1, Hailo-8, Intel Myriad X) a rendszerszintű kihasználtság 90%-nál is nagyobb lehet, mivel amint a gazdagép SoC elindítja a következtetési funkciót és továbbítja az AI modell bemenetét. adatok, a gyorsító önállóan fut, dedikált memóriáját használva a modell súlyainak és paramétereinek eléréséhez.

 

Maximalizálja a teljesítményt az Edge AI alkalmazásokban
2. ábra. A megosztott memóriabusz szabályozza a rendszerszintű teljesítményt, itt a becsült értékekkel látható. A valós értékek az alkalmazás használati modelljétől és az SoC számítási egység konfigurációjától függően változnak.

Eddig a pontig az AI-teljesítményt a képkocka/másodperc és a TOPS tekintetében tárgyaltuk. Az alacsony késleltetés azonban egy másik fontos követelmény a rendszer valós idejű válaszkészségének biztosításához. Például a játékokban az alacsony késleltetés kritikus fontosságú a zökkenőmentes és érzékeny játékélményhez, különösen a mozgásvezérelt játékokban és a virtuális valóság (VR) rendszerekben. Az autonóm vezetési rendszerekben az alacsony késleltetés létfontosságú a valós idejű objektumészlelés, a gyalogosfelismerés, a sávfelismerés és a közlekedési táblafelismerés szempontjából a biztonság veszélyeztetésének elkerülése érdekében. Az autonóm vezetési rendszereknek általában kevesebb, mint 150 ms-os végpontok közötti késleltetésre van szükségük az észleléstől a tényleges műveletig. Hasonlóképpen, a gyártásban az alacsony késleltetés elengedhetetlen a valós idejű hibaészleléshez, az anomáliák felismeréséhez és a robotizált irányítás az alacsony késleltetésű videóelemzéstől függ a hatékony működés biztosítása és a gyártási leállások minimalizálása érdekében.

Általában a késleltetésnek három összetevője van egy videóelemző alkalmazásban (3. ábra):

  • Az adatrögzítési késleltetés az az idő, amely a kameraérzékelőtől a videokockák rögzítésétől a képkocka rendelkezésre állásáig az analitikai rendszerig feldolgozás céljából eltelt idő. Ezt a késleltetést optimalizálhatja, ha gyors érzékelővel és alacsony késleltetésű processzorral rendelkező kamerát választ, optimális képkockasebességet választ, és hatékony videótömörítési formátumokat használ.
  • Az adatátviteli késleltetés az az idő, ameddig a rögzített és tömörített videoadatok eljutnak a kamerától a szélső eszközökhöz vagy a helyi szerverekhez. Ez magában foglalja az egyes végpontokon előforduló hálózati feldolgozási késéseket.
  • Az adatfeldolgozási késleltetés arra az időre vonatkozik, ameddig a szélső eszközök olyan videófeldolgozási feladatokat hajtanak végre, mint például a képkocka-kitömörítés és az elemzési algoritmusok (pl. mozgás-előrejelzésen alapuló objektumkövetés, arcfelismerés). Amint arra korábban rámutattunk, a feldolgozási késleltetés még fontosabb azoknál az alkalmazásoknál, amelyeknek több AI-modellt kell futtatniuk minden videókockához.

 

Maximalizálja a teljesítményt az Edge AI alkalmazásokban
3. ábra. A videóelemző folyamat adatrögzítésből, adatátvitelből és adatfeldolgozásból áll.
 

Az adatfeldolgozási késleltetés optimalizálható egy mesterséges intelligenciagyorsítóval, amelynek architektúrája minimálisra csökkenti az adatmozgást a chipen, valamint a számítások és a memóriahierarchia különböző szintjei között. Ezenkívül a késleltetés és a rendszerszintű hatékonyság javítása érdekében az architektúrának támogatnia kell a nulla (vagy közel nulla) kapcsolási időt a modellek között, hogy jobban támogassa a korábban tárgyalt többmodelles alkalmazásokat. A jobb teljesítmény és késleltetés másik tényezője az algoritmikus rugalmasság. Más szóval, egyes architektúrákat úgy terveztek, hogy csak bizonyos mesterségesintelligencia-modelleken optimálisan viselkedjenek, de a gyorsan változó mesterségesintelligencia-környezetben minden második nap jelennek meg a nagyobb teljesítményt és nagyobb pontosságot biztosító új modellek. Ezért válasszon olyan szélső AI processzort, amely nem korlátozza a modell topológiáját, operátorait és méretét.

Számos tényezőt kell figyelembe venni egy szélső AI-készülék teljesítményének maximalizálása érdekében, beleértve a teljesítmény- és késleltetési követelményeket, valamint a rendszer többletköltségét. A sikeres stratégiához külső AI-gyorsítót kell figyelembe venni, hogy leküzdje az SoC mesterséges intelligencia-motorjának memória- és teljesítménykorlátait.
 
 
CH Chee A Chee egy kiváló termékmarketing- és menedzsmentvezető. A Chee széleskörű tapasztalattal rendelkezik a félvezetőipar termékeinek és megoldásainak népszerűsítésében, elsősorban a látásalapú mesterséges intelligenciára, a csatlakoztathatóságra és a videó interfészekre összpontosítva több piacon, beleértve a vállalati és fogyasztói piacokat is. Vállalkozóként Chee társalapítója volt két video-félvezetőgyártó vállalkozásnak, amelyeket egy nyilvános félvezetőgyártó cég vásárolt fel. Chee termékmarketing-csapatokat vezetett, és szívesen dolgozik egy kis csapattal, amely a nagyszerű eredmények elérésére összpontosít.
 

Időbélyeg:

Még több KDnuggets