Hogyan hajtott végre óriási fejlesztéseket a Qualcomm a mesterséges intelligencia terén a Snapdragon 865-ön

A Qualcomm hatalmas ugrásokat hajtott végre a mesterséges intelligencia teljesítményében az új Snapdragon 865 SoC segítségével. Elemezzük a Qualcomm által a gépi tanulás felgyorsítása érdekében végrehajtott változtatásokat.

Úgy tűnik, egy nap sem telik el anélkül, hogy ne látnánk „mesterséges intelligenciát” a hírekben, és ez az elmúlt hét sem volt kivétel nem kis részben a Snapdragon Tech Summitnek köszönhetően. A Qualcomm minden évben bemutatja azt a rengeteg fejlesztést, amelyet a Hexagon DSP és a Qualcomm AI Engine terén hozott, egy kifejezés, amelyet a teljes heterogén számítási platformjukra – CPU, GPU és DSP – használnak, amikor az AI-ról beszélnek munkaterhelések. Néhány éve furcsának tűnt, hogy a Qualcomm ragaszkodott ahhoz, hogy a beszélgetést elmozdítsa a hagyományos beszédtémáktól, mint például a CPU teljesítményének évről évre történő fejlesztése. 2019-ben és a Snapdragon 865-tel azonban azt látjuk, hogy a heterogén számítástechnika valóban a mobil számítástechnikai törekvésük élén áll, mivel az AI és úgy tűnik, hogy a hardveresen gyorsított munkaterhelések sokféle használati esetbe és alkalmazásba belopóznak, a közösségi médiától a mindennapiig szolgáltatások.

A Snapdragon 865 a Qualcomm 5. generációs mesterséges intelligencia motorját hozza magával, és ezzel lédús javulást jelent a teljesítményben és az energiahatékonyságban – de ez várható is. A specifikációk, a teljesítményadatok, a divatos mérnöki kifejezések és a fárasztó marketingszók tengerében könnyű szem elől téveszteni, mit is jelentenek ezek a fejlesztések. Mit írnak le? Miért olyan jelentősek ezek a frissítések azok számára, akik ma alkalmazzák az AI-t az alkalmazásaikban, és ami talán még fontosabb, azok számára, akik a jövőben szeretnének ilyet tenni?

Ebben a cikkben egy megközelíthető, de alapos körutat teszünk a Qualcomm AI Engine-ről, átfésülve annak történetét, összetevőit és a Snapdragon 865 frissítéseit, és ami a legfontosabb, miért vagy hogyan ezek mindegyike hozzájárult a mai okostelefon-élményhez, a vicces szűrőktől a digitális asszisztensekig.

A Hexagon DSP és a Qualcomm AI Engine: Amikor a márkaépítés különbséget jelent

Bár nem tudtam részt venni az eheti Snapdragon Tech Summit rendezvényen, 2015 óta minden másodikon részt vettem. Ha emlékszel, hogy ez volt a Snapdragon 810 okozta forró káosz éve, ezért a New York-i Chelsea loft újságírói alig várták, hogy megtudják, hogyan váltja meg a Snapdragon 820 a céget. És ez egy nagyszerű lapkakészlet volt, rendben: egészséges teljesítményjavítást ígért (a szabályozások nélkül), amikor visszatért az akkoriban kipróbált egyedi magokhoz, amelyekről a Qualcomm ismert. De emlékszem egy nagyon finom bejelentésre is, amelyre utólag visszagondolva több figyelmet kellett volna kapnia: második generációs Hexagon 680 DSP és egyetlen utasítás, több adat (SIMD) Hexagon Vector kiterjesztések, ill. HVX. Talán ha a mérnökök nem nevezték volna el a funkciót, akkor megkapta volna a megérdemelt figyelmet.

Ez a koprocesszor lehetővé teszi a skaláris DSP egység hardverszálai számára, hogy hozzáférjenek a HVX „kontextusokhoz” (regiszterfájlokhoz) a széles vektor-feldolgozási képességek érdekében. Lehetővé tette a jelentős számítási terhelések lerakását az energiaéhes CPU-ról vagy GPU-ról a energiatakarékos DSP, így a képalkotási és számítógépes látási feladatok lényegesen jobb teljesítménnyel futhatnak milliwattonként. Tökéletesen alkalmasak azonos műveletek alkalmazására összefüggő vektorelemeken (eredetileg csak egész számokon), így jól illeszkednek a számítógépes látási feladatokhoz. Korábban írtunk egy részletes cikket a DSP-ről és a HVX-ről, megjegyezve, hogy a HVX architektúra kiválóan alkalmas a párhuzamosításra és nyilvánvalóan nagy bemeneti vektorok feldolgozására. Abban az időben a Qualcomm a DSP-t és a HVX-et is szinte kizárólag az általuk végzett fejlesztések leírásával népszerűsítette. olyan munkaterheléseket hozna a számítógépes látás számára, mint a Harris sarokdetektor és más csúszóablak mód.

Egészen addig, amíg a fogyasztói mobilalkalmazásokban megjelent a mély tanulás, a DSP, annak vektora A feldolgozó egységek (és most egy tenzorgyorsító) összeházasodnának a mesterséges intelligenciával és a neurális hálózatokkal, különös. De visszatekintve, ez teljesen logikus: A digitális jelfeldolgozó (DSP) architektúra, amelyet eredetileg digitalizált kezelésre terveztek valós vagy analóg jelbemenetek, sok olyan munkaterhelésre alkalmas, mint sok gépi tanulási algoritmus és neurális hálózatok. Például a DSP-ket szűrőmagokhoz, konvolúciós és korrelációs műveletekhez, 8 bites számításokhoz, rengeteg lineáris algebra (vektor- és mátrixszorzatok) és szorzás-felhalmozási (MAC) műveletek, amelyek akkor a leghatékonyabbak, ha párhuzamosított. Egy neurális hálózat futásideje is nagymértékben függ a nagy vektorok, mátrixok és/vagy tenzorok szorzásától, így teljesen természetes, hogy a DSP teljesítményelőnyei pontosan lefordítják a neurális hálózati architektúrákat, mint jól. Röviden újra átnézzük ezt a témát!

A következő években a Qualcomm továbbra is hangsúlyozta, hogy nem kínálnak éppen lapkakészletek, de mobil platformok, és hogy nem összpontosítanak éppen bizonyos komponensek javítására, de "heterogén" számításra. 2017-ben kiadták a Snapdragon Neural Processing Engine SDK-t (futásidejű gyorsításhoz) a Qualcomm Developer Networkön, 2018 elején pedig bejelentette a Qualcomm Artificial Intelligence Engine-t, hogy több mesterségesintelligencia-kompatibilis hardver- (CPU, GPU, DSP) és szoftverösszetevőjüket egyetlen helyen egyesítse. név. Ezzel a hasznos nómenklatúrával szépen hirdethették a mesterséges intelligencia teljesítménybeli fejlesztéseit mind a Snapdragon 855, mind a Snapdragon 865, amely képes kényelmesen meghatározni a másodpercenkénti műveletek billióit (TOPS) és az éves százalékos arányt fejlesztések. A generációs fejlesztések kihasználása a CPU, GPU és DSP terén – ezek mindegyike saját AI-központú frissítések - a vállalat lenyűgöző teljesítménymutatókat tud felmutatni a versenytársakkal szemben, amelyeket át fogunk térni hamarosan. A vállalat közelmúltbeli marketingtevékenységeinek és a heterogén számítástechnikával kapcsolatos egységes, következetes üzenetküldésnek köszönhetően mesterséges intelligencia márkajelzése végre egyre nagyobb teret hódít az újságírók és a technológia iránt érdeklődők körében.

Neurális hálózatok demisztifikálása: Lineáris algebra hétköznapi halmaza

Ahhoz, hogy a cikkben később találkozni fogunk sok szakzsargonnal, szükségünk van egy rövid alapozóra mi az a neurális hálózat és mire van szüksége a gyorsabbá tételhez. Szeretnék nagyon röviden áttekinteni a neurális hálózatok néhány matematikai alapját, elkerülve a lehető legtöbb zsargont és jelölést. Ennek a szakasznak az a célja, hogy azonosítsa, mit csinál egy neurális hálózat, alapvetően: az aritmetikai műveleteket inkább végrehajtja, mintsem az elméleti alapot, amely igazolja az említett műveleteket (ez sokkal bonyolultabb!). Nyugodtan folytassa a következő szakaszsal, ha közvetlenül a Qualcomm AI Engine frissítéseihez szeretne ugrani.

"A vektoros matematika a mély tanulás alapja." – Travis Lanier, a Qualcomm termékmenedzsmentért felelős vezető igazgatója a 2017-es Snapdragon Tech Summit rendezvényen

Az alábbiakban egy nagyon tipikus előrecsatolt, teljesen összekapcsolt neurális hálózati diagramot talál. A valóságban a diagram az egész folyamatot egy kicsit bonyolultabbá teszi, mint amilyen (legalábbis addig, amíg meg nem szokja). Kiszámítunk egy előrehaladást, ami végső soron az, amit a hálózat csinál, amikor előállít következtetés, mely kifejezéssel a cikk későbbi részében is találkozni fogunk. Jelenleg csak a géppel és alkatrészeivel foglalkozunk, az egyes alkatrészek rövid magyarázatával.

Egy neurális hálózat szekvenciális rétegek, amelyek mindegyike több "neuronból" áll (a diagramon körökként ábrázolva), amelyeket a súlyok (a diagramon vonalként ábrázolva). Általánosságban elmondható, hogy háromféle réteg létezik: a bemeneti réteg, amely a nyers bemenetet veszi fel; rejtett rétegek, amelyek matematikai műveleteket számítanak ki az előző rétegből, és a kimeneti réteg, amely a végső előrejelzéseket tartalmazza. Ebben az esetben csak egy rejtett rétegünk van, hárommal rejtett egységek. A bemenet vektorból, tömbből vagy számlistából áll, adott mérettel vagy hosszúsággal. A példában mondjuk kétdimenziós bemenetünk lesz [1.0, -1.0]. Itt, a Kimenet A hálózat egy skalárból vagy egyetlen számból (nem listából) áll. Minden rejtett egység egy halmazhoz van társítva súlyok és a elfogult kifejezés, amely az egyes csomópontok mellett és alatt látható. Kiszámításához a súlyozott összeg Egy egység kimenete, minden egyes súlyt megszoroznak minden megfelelő bemenettel, majd a termékeket összeadják. Ezután egyszerűen hozzáadjuk a torzítási tagot a szorzatok összegéhez, ami a neuron kimenetét eredményezi. Például a mi bevitelünkkel [1.0,-1.0], az első rejtett egység kimenete: 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Egyszerű, igaz?

A diagram következő lépése egy aktiválási funkció, és ez az, ami lehetővé teszi számunkra, hogy minden rejtett réteg kimeneti vektorát állítsuk elő. A mi esetünkben a nagyon népszerű és rendkívül egyszerűt fogjuk használni egyenirányított lineáris egység vagy ReLU, amely egy bemeneti számot vesz fel, és vagy (i) nullát ad ki, ha ez a szám negatív, vagy nullát (ii) magát a bemeneti számot, ha a szám pozitív. Például, ReLU(-0,1) = 0, de ReLU(0,1) = 0,1. Bemenetünk példáját követve terjeszti ezen az első rejtett egységen keresztül az általunk kiszámított 1.1 kimenet az aktiváló függvénybe kerül, így ReLU(1.1)=1.1. A kimeneti réteg ebben a példában ugyanúgy fog működni, mint egy rejtett egység: megszorozza a rejtett egységek kimeneteit a súlyaival, majd hozzáadja a torzítási tagot 0.2. Az utolsó aktiválási funkció, a lépés funkció, a pozitív bemeneteket 1-re, a negatív értékeket pedig 0-ra változtatja. A hálózat egyes műveleteinek működési ismeretében leírhatjuk következtetésünk teljes számítását a következőképpen:

Ennyi áll rendelkezésre az előrecsatolt neurális hálózat számításaihoz. Mint látható, a a műveletek szinte teljes egészében szorzatokból és számok összegéből állnak. Aktiváló funkciónk ReLU(x) nagyon egyszerűen megvalósítható, például egyszerűen hívással max (x, 0), így mindig x-et ad vissza, amikor a bemenet nagyobb, mint 0, de egyébként 0-t ad vissza. Vegye figyelembe, hogy lépés (x) hasonlóan számolható. Számos bonyolultabb aktiválási funkció létezik, mint például a szigmoid funkció vagy a hiperbolikus érintő, amely különböző belső számításokat foglal magában, és jobban megfelel a különböző célokra. Egy másik dolog, amit már elkezdhetsz észrevenni, hogy mi is párhuzamosan futtathatja a három rejtett egység számításait és ReLU alkalmazásaikat, mivel értékükre nincs szükség egyszerre, amíg ki nem számítjuk súlyozott összegüket a kimeneti csomóponton.

De nem kell itt megállnunk. Fent ugyanaz a számítás látható, de ezúttal mátrix- és vektorszorzási műveletekkel ábrázolva. Ahhoz, hogy ezt a reprezentációt elérjük, "kibővítjük" a bemeneti vektorunkat úgy, hogy hozzáadunk egy 1.0-t (világosabb árnyalat), így amikor a súlyok és torzításunk (világosabb árnyalat) a mátrixban, ahogy fent látható, az eredményül kapott szorzás ugyanazt a rejtett egységet eredményezi. kimenetek. Ezután elemenként alkalmazhatjuk a ReLU-t a kimeneti vektoron, majd „kibővíthetjük” a ReLU kimenetet, hogy megszorozzuk azt a kimeneti rétegünk súlyával és torzításával. Ez az ábrázolás nagyban leegyszerűsíti a jelölést, mivel egy teljes rejtett réteg paraméterei (súlyok és torzítások) egyetlen változó alá rejthetők. De ami számunkra a legfontosabb, ez világossá teszi a hálózat belső számításai lényegében mátrix- és vektorszorzás vagy pontszorzat. Tekintettel arra, hogy ezeknek a vektoroknak és mátrixoknak a mérete hogyan skálázódik a bemeneteink dimenzióihoz és a hálózatunkban lévő paraméterek számához, a legtöbb futási idő az ilyen típusú számítások elvégzésére telik. Egy rakás lineáris algebra!

A játékpéldánk természetesen nagyon korlátozott terjedelemben. A gyakorlatban a modern mély tanulási modellek több tíz, ha nem több száz rejtett réteget és millió kapcsolódó paramétert tartalmazhatnak. A kétdimenziós vektorbeviteli példánk helyett több ezer bejegyzést tartalmazó vektorokat vehetnek fel, sokféle formában, például mátrixok (például egycsatornás képek) vagy tenzorok (háromcsatornás RGB) képek). Semmi sem akadályozza meg mátrixábrázolásunkat abban, hogy egyszerre több bemeneti vektort vegyen fel úgy, hogy sorokat ad hozzá az eredeti bemenetünkhöz. A neurális hálózatok másként is „vezetékezhetők”, mint az előrecsatolt neurális hálózatunk, vagy eltérő aktiválási funkciókat hajthatnak végre. A hálózati architektúrák és technikák hatalmas állatkertje van, de végül is azok többnyire bontsuk le ugyanazokra a párhuzamos aritmetikai műveletekre, amelyeket a játékpéldánkban találunk, csak sokkal nagyobb léptékben.

Képi példa tenzoron működő konvolúciós rétegekre. (Kép jóváírása: Az adattudomány felé)

Például a népszerű konvolúciós neurális hálózatok (CNN-ek) amelyekről valószínűleg olvasott, nincsenek „teljesen csatlakoztatva”, mint a mi álhálózatunk. A rejtett „súlyai” vagy paraméterei konvolúciós rétegek felfogható egyfajta szűrőnek, egy csúszó ablaknak, amelyet szekvenciálisan alkalmaznak egy bemenet kis foltjaira, amint az fent látható - ez a "konvolúció" valójában csak egy csúszópont termék! Ez az eljárás azt eredményezi, amit gyakran a jellemző térkép. A rétegek összevonása csökkenti a bemeneti vagy a konvolúciós réteg kimenetének méretét azáltal, hogy kiszámítja a kép kis foltjainak maximális vagy átlagos értékét. A hálózat többi része általában teljesen összekapcsolt rétegekből áll, mint például a példánkban, és aktiválási funkciókból, például a ReLU-ból. Ezt gyakran használják jellemzők kinyerésére olyan képeken, ahol a korai konvolúciós rétegek jellemzőtérképei „észlelhetik” minták, például vonalak vagy élek, a későbbi rétegek pedig bonyolultabb jellemzőket, például arcokat vagy komplexet észlelhetnek formák.

Mindaz, ami elhangzott, az szigorúan a következtetésre korlátozódik, vagy egy neurális hálózat kiértékelése a paramétereinek megtalálása után kiképzés ami sokkal bonyolultabb eljárás. És ismét sok magyarázatot kizártunk. Valójában a hálózat minden összetevője valamilyen céllal szerepel. Például azok közületek, akik tanulmányozták a lineáris algebrát, könnyen észrevehetik, hogy a nélkül A nemlineáris aktiválási függvények miatt hálózatunk egy lineáris modellre egyszerűsödik, nagyon korlátozott prediktív képességgel kapacitás.

Továbbfejlesztett mesterséges intelligencia-motor a Snapdragon 865-ön – A fejlesztések összefoglalása

A neurális hálózat összetevőinek és matematikai műveleteiknek ezzel a praktikus megértésével elkezdhetjük megérteni, hogy pontosan miért olyan fontos a hardveres gyorsítás. Az utolsó részben megfigyelhetjük, hogy a párhuzamosítás elengedhetetlen a hálózat felgyorsításához lehetővé teszi például, hogy az egyes neuronokhoz tartozó több párhuzamos pontszorzatot számítsunk ki aktiválás. Ezen ponttermékek mindegyike számok szorzás-összeadási műveleteiből áll, mobilalkalmazások esetében általában 8 bites pontossággal, amelyeknek a lehető leggyorsabban meg kell történniük. Az AI Engine különféle összetevőket kínál ezeknek a feladatoknak a tehermentesítéséhez, a fejlesztő teljesítményének és energiahatékonysági megfontolásainak függvényében.

A népszerű MNIST adatkészlet CNN diagramja, amely az idei Snapdragon Summit színpadán látható. A vektor feldolgozó egység jól illeszkedik a teljesen összekapcsolt rétegekhez, mint a mi álpéldánkban. Eközben a tenzor processzor kezeli a többszörös csúsztatást feldolgozó konvolúciós és pooling rétegeket kernel párhuzamosan, mint a fenti diagramon, és minden konvolúciós réteg sok külön funkciót adhat ki térképek.

Először is nézzük a GPU-t, amelyről általában a 3D-s játékok kapcsán beszélünk. A videojátékok fogyasztói piaca évtizedek óta ösztönözte a grafikus feldolgozó hardverek fejlődését, de miért olyan fontosak a GPU-k a neurális hálózatok számára? Kezdetnek a sokszög csúcsainak 3D-s koordinátáinak hatalmas listáit rágják át egyszerre, hogy nyomon követhessék a játékon belüli világállapotot. A GPU-nak gigantikus mátrixszorzási műveleteket is végre kell hajtania a 3D konvertálásához (vagy leképezéséhez). koordinátákat 2D síkra, a képernyőn megjelenő koordinátákat, és kezeli a pixelek színinformációit is. párhuzamos. Mindennek tetejébe nagy memória sávszélességet kínálnak a játékon belüli geometriára borított textúra bittérképek hatalmas memóriapuffereinek kezelésére. Előnyei a párhuzamosításban, a memória sávszélességében és az ebből eredő lineáris algebrai képességekben megfelelnek a neurális hálózatok teljesítménykövetelményeinek.

Az Adreno GPU-vonalnak tehát nagy szerepe van a Qualcomm AI Engine-ben, és a színpadon a Qualcomm kijelentette, hogy a Snapdragon 865 frissített komponense lehetővé teszi kétszer annyi lebegőpontos képesség és kétszer annyi TOPS az előző generációhoz képest, ami meglepő, tekintve, hogy csak 25%-os teljesítménynövekedést könyveltek el a grafikai megjelenítés terén. Ennek a kiadásnak a kapcsán azonban a cég büszkélkedhet a 50%-os növekedés az aritmetikai logikai egységek (ALU) számában, bár szokás szerint nem hozták nyilvánosságra a GPU-frekvenciáikat. A Qualcomm a vegyes pontosságot is felsorolta utasítás, ami éppen így hangzik: eltérő numerikus pontosság a műveletek között egyetlen számítási módszerben.

A Hexagon 698 DSP-nél láthatjuk a Snapdragon 865 által kínált teljesítménynövekedés hatalmas részét. Idén a vállalat nem közölt fejlesztéseket a DSP vektor eXtensions-eiben (amelyek teljesítménye megnégyszereződött a tavalyi 855-höz képest), sem a skaláregységeikben. Megjegyzik azonban, hogy ennek a blokknak a Tensor Accelerator-ját elérték négyszerese a TOP-nak a tavaly bemutatott változathoz képest a Hexagon 695 DSP-ben, miközben kínálni is tud 35%-kal jobb energiahatékonyság. Ez nagy dolog, ha figyelembe vesszük a konvolúciós neurális hálózati architektúrák elterjedtségét a modern AI-használati esetekben, a képobjektum-észleléstől az automatikus beszédfelismerésig. Amint fentebb kifejtettük, a konvolúciós művelet ezekben a hálózatokban a mátrix kimenetek 2D tömbjét állítja elő minden szűrő, ami azt jelenti, hogy egymásra rakva egy konvolúciós réteg kimenete egy 3D tömb ill. tenzor.

A Qualcomm emellett népszerűsítette az „új és egyedi” mély tanulási sávszélesség tömörítés technikát, ami láthatóan lehet az adatok veszteségmentes tömörítése körülbelül 50%-kal, viszont az adat felét mozgatja, és sávszélességet szabadít fel a lapkakészlet más részei számára. Az adatátviteli sebesség csökkentésével is energiát takaríthat meg, bár nem kaptunk számokat, és az adatok tömörítésének is kis energiaköltségbe kellene kerülnie.

Ami a sávszélességet illeti, a Snapdragon 865 támogatja LPDDR5 memória, ami a mesterséges intelligencia teljesítményének is előnyére válik, mivel megnöveli az erőforrások és a bemeneti adatok átvitelének sebességét. A hardveren túl a Qualcomm újdonsága AI Modell Hatékonysági Eszközkészlet megkönnyíti a modelltömörítést és az ebből eredő energiahatékonysági megtakarítást a fejlesztők számára. A neurális hálózatok gyakran nagyszámú „redundáns” paraméterrel rendelkeznek; például a rejtett rétegeket szélesebbé tehetik a kelleténél. A színpadon tárgyalt AI Toolkit egyik jellemzője így modell tömörítés, ahol az idézett módszerek közül kettő a térbeli szinguláris érték dekompozíció (SVD) és a bayes-i tömörítés. amelyek hatékonyan metszik meg a neurális hálózatot a redundáns csomópontok megszabadulásával és a modell szerkezetének módosításával, mint kívánt. A másik színpadon bemutatott modell-tömörítési technika a kvantáláshoz kapcsolódik, amely magában foglalja a súlyparaméterek numerikus pontosságának megváltoztatását és az aktiváló csomópontok számításait.

A neurális hálózatok súlyainak numerikus pontossága arra utal, hogy a számításhoz használt számértékeket 64, 32, 16 (félpontosságú) vagy 8 bites értékként tárolják, továbbítják és dolgozzák fel. Az alacsonyabb numerikus pontosság (például az INT8 és az FP32) csökkenti a teljes memóriahasználatot és az adatátviteli sebességet, ami nagyobb sávszélességet és gyorsabb következtetéseket tesz lehetővé. Sok mai mélytanulási alkalmazás 8 bites precíziós modellekre váltott következtetések levonására, ami úgy hangzik meglepő: a nagyobb numerikus pontosság nem tesz lehetővé „pontosabb” előrejelzéseket az osztályozásban vagy regresszióban feladatokat? Nem feltétlenül; A nagyobb numerikus pontosság, különösen a következtetések során, kárba vész, mivel a neurális hálózatokat arra tanítják, hogy megbirkózzanak a zajos bemenetekkel vagy kis zavarok amúgy is a képzés során, és egy adott (FP) érték alsó bites megjelenítésének hibája egységesen „véletlen” elég. Bizonyos értelemben a számítások alacsony pontosságát a hálózat újabb zajforrásként kezeli, és az előrejelzések használhatók maradnak. A heurisztikus magyarázóktól eltekintve valószínűleg pontossági büntetést fogsz felhalmozni egy modell hibás kvantálása során néhány fontos szempont figyelembe vétele nélkül, ezért sok kutatás folyik a tantárgy

Vissza a Qualcomm AI Toolkithez: Rajta keresztül kínálnak adatmentes kvantálás, amely lehetővé teszi a modellek kvantálását adatok vagy paraméterek finomhangolása nélkül, miközben továbbra is közel eredeti modellteljesítményt ér el különböző feladatokban. Lényegében hozzáigazítja a súlyparamétereket a kvantáláshoz, és kijavítja a kisebb precíziós súlyokra való váltáskor fellépő torzítási hibát. Tekintettel a kvantálásból származó előnyökre, az eljárás API-hívás alatti automatizálása leegyszerűsítené a modellgyártást és -telepítést, valamint a Qualcomm-igényeket. több mint négyszerese a wattonkénti teljesítménynek a kvantált modell futtatásakor.

Ez azonban nem megdöbbentő: a kvantáló modellek óriási sávszélességet és tárolási előnyöket kínálnak. A modell INT8-ra való konvertálása nemcsak a sávszélesség 4-szeres csökkenését eredményezi, hanem a gyorsabb egészszámítás előnyeit is (hardvertől függően). Nem véletlen tehát, hogy a kvantálás és a numerikus számítás hardveres gyorsítása hatalmas teljesítménynövekedést eredményezne. A blogjánPéldául Pete Warden, a Google azt írta, hogy a Qualcomm és a Tensorflow csapata közötti együttműködés lehetővé teszi a 8 bites modellek futtatását hétszer gyorsabba HVX DSP-n, mint a CPU-n. Nehéz túlbecsülni a könnyen használható kvantálásban rejlő lehetőségeket, különös tekintettel arra, hogy a Qualcomm az INT8 teljesítményére összpontosított.

A Snapdragon 865 ARM-alapú Kryo CPU-ja továbbra is az AI-motor fontos eleme. Annak ellenére, hogy a fenti bekezdésekben tárgyalt hardveres gyorsítás előnyösebb, néha mi nem kerülheti el azokat az alkalmazásokat, amelyek nem használják ki megfelelően ezeket a blokkokat, ami CPU-t eredményez tartalék. A múltban az ARM speciális utasításkészleteket vezetett be, amelyek célja a mátrix- és vektor-alapú számítások felgyorsítása. Az ARMv7 processzoroknál láthattuk az ARM NEON bevezetését, egy SIMD architektúra-bővítményt, amely lehetővé teszi a DSP-szerű utasításokat. Az ARMv8.4-A mikroarchitektúrával pedig egy kifejezetten ponttermékekre vonatkozó utasítás bevezetését láttuk.

Mindezek a közzétett teljesítménynövekedés az előző részben leírt számos munkaterheléshez kapcsolódnak, de azt is érdemes szem előtt tartani, hogy ezek a Snapdragon 865 frissítések csak a legújabb fejlesztések a Qualcomm AI képességeiben. 2017-ben dokumentáltuk, hogy a Hexagon 685 DSP-vel és más lapkakészlet-frissítésekkel megháromszorozták az AI-képességeiket. Tavaly mutatták be tenzorgyorsítójukat, illetve a nemlinearitási függvények integrált támogatását (mint például a már említett ReLU!) hardver szinten. Emellett megduplázták a vektorgyorsítók számát, és 20%-kal javították a skaláris feldolgozó egység teljesítményét. Mindezt a CPU oldali fejlesztésekkel párosítva, mint például az ARM jóvoltából gyorsabb dot-product műveletek és a GPU-ban lévő további ALU-k, végül a Qualcomm megháromszorozódott nyers AI-képességeket is.

Gyakorlati előnyök és kiterjesztett felhasználási lehetőségek

Mindezek a frissítések a Snapdragon 865 mesterséges intelligencia képességeinek ötszörösét eredményezték a mindössze két évvel ezelőttihez képest, de ami talán a legfontosabb, hogy a fejlesztések milliwattonkénti jobb teljesítménnyel is jártak, ami a mobiloknál kritikus mutató eszközöket. A 2019-es Snapdragon Summit alkalmával a Qualcomm néhány benchmarkot adott nekünk, amelyek összehasonlították mesterséges intelligencia-motorjaikat két versenytársával a különböző osztályozási hálózatokon. Úgy tűnik, hogy ezeket a számokat az AIMark, egy többplatformos benchmarking alkalmazás segítségével gyűjtötték össze, amely lehetővé teszi az Apple A-sorozatú és a Huawei HiSilicon processzoraival való összehasonlítást. A Qualcomm azt állítja, hogy ezek az eredmények a teljes AI Engine-t használják fel, és még várnunk kell alapos benchmarking, hogy megfelelően szétválaszthassuk az egyes összetevők hatását, és meghatározzuk, hogyan zajlottak ezek a tesztek végzett. Például a B cég eredményei CPU visszaesést jeleznek? Amennyire én tudom, az AIMark jelenleg nem használja ki például a Kirin 990 NPU-ját a Mate 30 Pro egységeinken. De támogatja a Snapdragon Neural Processing Engine-t, így minden bizonnyal kihasználja a Qualcomm AI Engine előnyeit; Mivel belső tesztelésről van szó, nem egyértelmű, hogy a benchmark megfelelően használja-e a versenytársak számára megfelelő könyvtárakat vagy SDK-t.

Azt is el kell mondani, hogy a Qualcomm hatékonyan hasonlítja össze a Snapdragon 865 AI-feldolgozási képességeit a korábban bejelentett vagy kiadott lapkakészletekkel. Nagyon valószínű, hogy versenytársai a következő ciklusban hasonló hatású teljesítményjavításokat fognak hozni, és ha ez akkor a Qualcomm a Snapdragon 865-ös készülékek polcra kerülésétől számítva körülbelül fél évig tartaná a koronát. Ennek ellenére ezek még mindig azt jelzik, hogy milyen ütésekre számíthatunk a Snapdragon 865-től. A Qualcomm általában nagyon pontosan kommunikált a teljesítményjavításokról és a közelgő kiadások benchmark eredményeiről.

Az ezekben a benchmarkokban bemutatott hálózatok mindegyike osztályozza a képeket az olyan adatbázisokból, mint az ImageNet, bemenetként fogadja azokat, és több száz kategória közül egyet ad ki. Ismét ugyanazokra a műveletekre támaszkodnak, amelyeket a második részben leírtunk, bár az architektúrájuk sok bonyolultabbak, mint ezek a példák, és megjelenésük idején a legkorszerűbb megoldásoknak számítottak. A legjobb esetben a legközelebbi versenytársuk kevesebb, mint fele annyi következtetést ad le másodpercenként.

Ami az energiafogyasztást illeti, a Qualcomm wattonkénti következtetéseket kínált, hogy bemutassa, mekkora mennyiségű mesterséges intelligencia feldolgozás lehetséges egy adott energiamennyiség mellett. A legjobb esetben (MobileNet SSD) a Snapdragon AI Engine kétszer annyi következtetést képes levonni ugyanazon energiaköltségvetés mellett.

Az energia különösen fontos a mobileszközök esetében. Gondoljunk például egy neurális hálózat alapú Snapchat szűrőre. Valójában a számítógépes látáscsatorna kivonja az arcinformációkat, és maszkot vagy bevitelt alkalmaz az átalakításnak csak másodpercenként 30 vagy 60 befejeződési sebességgel kell lefutnia ahhoz, hogy folyadékot kapjon tapasztalat. A nyers mesterséges intelligencia teljesítményének növelése lehetővé tenné, hogy nagyobb felbontású bemeneteket kapjon, és jobban kinéző szűrőket adjon ki, de egyszerűen jobb, ha megelégszik a HD felbontással a gyorsabb feltöltés, valamint az energiafogyasztás és a hőszabályozás csökkentése érdekében. Sok alkalmazásban a „gyorsabb” nem feltétlenül „jobb”, és akkor az ember élvezheti a jobb energiahatékonyság előnyeit.

A Snapdragon Summit 2. napján a Snapchat idősebb mérnöki igazgatója, Yurii Monastyrshyn lépett a színpadra, hogy megmutassa, hogyan legújabb, mély tanuláson alapuló szűrőiket nagymértékben felgyorsítja a Hexagon Direct NN a Hexagon 695 DSP segítségével a Snapdragonon 865.

Az egésznek a tetejébe, mivel a fejlesztők könnyebben hozzáférnek a neurális hálózati megvalósításokhoz és egyre több alkalmazás kezd mesterséges intelligencia technikákat alkalmazni, az egyidejű felhasználási esetek nagyobb hangsúlyt kapnak, mivel az okostelefonnak több dolgot is kezelnie kell majd. párhuzamos mesterséges intelligencia csővezetékek egyszerre (egyetlen alkalmazáshoz, amely a különböző forrásokból származó bemeneti jeleket dolgozza fel, vagy annyi alkalmazás külön-külön fut az eszközön). Míg tekintélyes energiahatékonysági javulást tapasztalunk a számítási DSP, GPU és CPU között, a Qualcomm Sensing Hub kezeli a mindig bekapcsolt használati eseteket, hogy figyeljen a kiváltó szavakra nagyon alacsony energiafogyasztás mellett. Lehetővé teszi a hang-, kép- és szenzorjelek figyelését 1 mA áramerősség alatt, lehetővé téve az eszköz számára, hogy az ismerős digitális asszisztens kulcsszavakon felül bizonyos hangjelzéseket észleljen (például egy baba sírását). Ezzel kapcsolatban a Snapdragon 865 lehetővé teszi nemcsak a kulcsszó észlelését, hanem azt is, hogy ki beszéli, azonosítani tudja a jogosult felhasználót, és ennek megfelelően járjon el.

További mesterséges intelligencia az Edge-eszközökön

Ezek a fejlesztések végső soron kézzelfogható előnyökkel járhatnak a felhasználói élményben. Olyan szolgáltatások, amelyek magukban foglalják a fordítást, az objektumfelismerést és -címkézést, a használati előrejelzéseket vagy az elemajánlatokat, a természetes nyelv megértése, a beszédelemzés és így tovább a gyorsabb működés és a kevesebb fogyasztás előnye lesz erő. A magasabb számítási költségkeret új használati esetek és tapasztalatok létrehozását is lehetővé teszi, valamint a korábban felhőben zajló folyamatok áthelyezését az eszközre. Míg a mesterséges intelligencia fogalmát kétes, megtévesztő, sőt hibás módon használták a múltban (még az OEM-ek is), számos szolgáltatása, amelyet ma élvez, végső soron a gépi tanulási algoritmusokra támaszkodik valamilyen formában vagy egy másik.

De a Qualcommon kívül más lapkakészlet-gyártók is gyorsan iteráltak és fejlődtek ezen a területen. Például a 990 5G 2+1 NPU magos kialakítást hozott, ami akár 2,5-szerese a Kirin 980 teljesítményének, és kétszerese az Apple A12 teljesítményének. Amikor bejelentették a processzort, azt mutatták, hogy másodpercenként akár kétszer annyi képkockát (következtetést) kínál a Snapdragon 855 az INT8 MobileNet-en, amit nehéz összeegyeztetni a Qualcomm által biztosított eredményekkel. Az Apple A13 Bionic viszont állítólag hatszor gyorsabb mátrixszorzást kínált elődjéhez képest, és javította a nyolcmagos neurális motor kialakítását. Várnunk kell, amíg megfelelően tesztelhetjük a Snapdragon 865-öt kereskedelmi eszközökön jelenlegi és jövőbeli versenytársaival szemben, de ez egyértelmű, hogy a verseny ezen a téren soha nem marad mozdulatlan, mivel a három vállalat rengeteg erőforrást fordít mesterséges intelligencia fejlesztésére. teljesítmény.