Qualcomm urobil obrovské skoky vo výkone AI s novým Snapdragonom 865 SoC. Analyzujeme zmeny, ktoré spoločnosť Qualcomm urobila na urýchlenie strojového učenia.
Zdá sa, že nemôžeme ísť ani deň bez toho, aby sme v správach nevideli „umelú inteligenciu“ a minulý týždeň nebol v nemalej miere výnimkou vďaka Snapdragon Tech Summit. Qualcomm každý rok odhaľuje množstvo vylepšení, ktoré prináša do svojho Hexagon DSP a Qualcomm AI Engine, termín, ktorý používajú pre celú svoju heterogénnu výpočtovú platformu – CPU, GPU a DSP – keď hovoria o AI záťaže. Pred niekoľkými rokmi sa zdalo naliehanie spoločnosti Qualcomm na presunutie konverzácie od tradičných tém, ako je medziročné zlepšenie výkonu procesora, trochu zvláštne. Napriek tomu v roku 2019 a so Snapdragonom 865 vidíme, že heterogénne výpočty sú skutočne na čele ich mobilného výpočtového tlaku, keďže AI Zdá sa, že hardvérovo akcelerované pracovné zaťaženie sa vkradne do šírky prípadov použitia a aplikácií, od sociálnych médií až po každodenné služby.
Snapdragon 865 prináša AI motor 5. generácie od Qualcommu a s ním prichádzajú šťavnaté vylepšenia výkonu a energetickej účinnosti – ale to sa dá očakávať. V mori špecifikácií, údajov o výkone, vymyslených technických výrazov a únavných marketingových hlášok je ľahké stratiť zo zreteľa, čo tieto vylepšenia vlastne znamenajú. Čo opisujú? Prečo sú tieto inovácie také zmysluplné pre tých, ktorí dnes implementujú AI do svojich aplikácií, a čo je možno dôležitejšie, pre tých, ktorí to chcú urobiť v budúcnosti?
V tomto článku absolvujeme prístupnú, no dôkladnú prehliadku Qualcomm AI Engine, ktorá preberie jeho históriu, jeho komponenty a vylepšenia Snapdragon 865, a čo je najdôležitejšie, prečo alebo ako každý z nich prispel k dnešnému zážitku so smartfónmi, od zábavných filtrov až po digitálnych asistentov.
Hexagon DSP a Qualcomm AI Engine: Keď branding robí rozdiel
Aj keď som sa tento týždeň nemohol zúčastniť Snapdragon Tech Summit, od roku 2015 som sa zúčastnil každého ďalšieho. Ak si spomeniete, že bol rokom horúcej kaše, ktorou bol Snapdragon 810, a tak novinári v tomto podkrovnom dome Chelsea v New Yorku chceli zistiť, ako Snapdragon 820 vykúpi spoločnosť. A bola to skvelá čipová sada, dobre: Sľubovala zdravé vylepšenia výkonu (bez obmedzovania) návratom k vtedy osvedčeným vlastným jadrám, ktorými bol Qualcomm známy. Spomínam si však aj na veľmi nenápadné oznámenie, ktorému by sa pri spätnom pohľade malo venovať viac pozornosti: druhá generácia Hexagon 680 DSP a jeho single inštrukcie, viac dát (SIMD) Hexagon Vector eXtensions, príp. HVX. Možno keby inžinieri túto funkciu nepomenovali, získala by pozornosť, ktorú si zaslúži.
Tento koprocesor umožňuje hardvérovým vláknam skalárnej DSP jednotky prístup k „kontextom“ HVX (registračným súborom) pre široké možnosti vektorového spracovania. Umožnilo to preniesť významné výpočtové zaťaženie z CPU alebo GPU náročného na energiu na energeticky efektívny DSP, takže úlohy zobrazovania a počítačového videnia by fungovali s podstatne lepším výkonom na miliwatt. Sú ideálne na aplikáciu identických operácií so súvislými vektorovými prvkami (pôvodne len celé čísla), vďaka čomu sú vhodné pre pracovné zaťaženie počítačového videnia. V minulosti sme napísali podrobný článok o DSP a HVX, poznamenávajúc, že architektúra HVX je vhodná na paralelizáciu a samozrejme na spracovanie veľkých vstupných vektorov. V tom čase Qualcomm propagoval DSP aj HVX takmer výlučne opisom ich vylepšení by prinieslo do počítačového videnia pracovné zaťaženie, ako je rohový detektor Harris a iné posuvné okno metódy.
Až s príchodom hlbokého učenia v spotrebiteľských mobilných aplikáciách sa DSP, jeho vektor spracovateľské jednotky (a teraz aj tenzorový urýchľovač) by sa spojili s AI a neurónovými sieťami, konkrétne. Ale keď sa pozrieme späť, dáva to dokonalý zmysel: Architektúra digitálneho signálového procesora (DSP), pôvodne navrhnutá na prácu s digitalizáciou vstupy reálneho sveta alebo analógových signálov sa hodia na mnohé rovnaké pracovné zaťaženia ako mnoho algoritmov strojového učenia a neurónových siete. Napríklad DSP sú prispôsobené pre filtračné jadrá, konvolučné a korelačné operácie, 8-bitové výpočty, veľa lineárna algebra (vektorové a maticové produkty) a operácie násobenia akumulácie (MAC), všetky najúčinnejšie, keď paralelizované. Doba chodu neurónovej siete je tiež veľmi závislá od násobenia veľkých vektorov, matíc a/alebo tenzorov, takže je len prirodzené, že výkonové výhody DSP sa úhľadne premietnu do architektúry neurónových sietí dobre. V krátkosti sa k tejto téme vrátime!
V nasledujúcich rokoch Qualcomm naďalej zdôrazňoval, že neponúkajú len čipsety, ale mobilné platformya že sa nesústredia len na zlepšenie konkrétnych komponentov, ale poskytovanie "heterogénnych" výpočtov. V roku 2017 vydali svoju súpravu Snapdragon Neural Processing Engine SDK (na zrýchlenie behu) na Qualcomm Developer Network a začiatkom roka 2018 oznámila Qualcomm Artificial Intelligence Engine na konsolidáciu ich niekoľkých hardvérových (CPU, GPU, DSP) a softvérových komponentov s podporou AI do jedného názov. Vďaka tejto užitočnej nomenklatúre boli schopní úhľadne inzerovať svoje vylepšenia výkonu AI na Snapdragon 855 a Snapdragon 865, ktorý dokáže pohodlne určiť počet biliónov operácií za sekundu (TOPS) a medziročné percento vylepšenia. Využitie generačných vylepšení CPU, GPU a DSP – všetky majú svoje vlastné zameranie na AI upgrady – spoločnosť je schopná zverejniť pôsobivé benchmarky oproti konkurentom, ktoré si prejdeme zakrátko. Vďaka nedávnemu marketingovému úsiliu spoločnosti a jednotným a konzistentným správam o heterogénnych počítačoch sa ich značka AI konečne dostáva medzi novinárov a technologických nadšencov.
Demystifikovanie neurónových sietí: Svetská hromada lineárnej algebry
Aby sme rozptýlili veľa žargónu, s ktorým sa stretneme neskôr v článku, potrebujeme krátky základ čo je neurónová sieť a čo potrebujete, aby to bolo rýchlejšie. Chcem veľmi stručne prejsť niektorými matematickými základmi neurónových sietí a vyhnúť sa čo najväčšiemu žargónu a zápisu. Účelom tejto časti je jednoducho identifikovať, čo robí neurónová sieť, a to v zásade: aritmetické operácie vykonáva skôr než teoretický základ, ktorý odôvodňuje uvedené operácie (to je oveľa komplikovanejšie!). Ak chcete prejsť priamo k vylepšeniam Qualcomm AI Engine, pokojne prejdite na ďalšiu časť.
"Vektorová matematika je základom hlbokého učenia." – Travis Lanier, vrchný riaditeľ produktového manažmentu spoločnosti Qualcomm na Snapdragon Tech Summit 2017
Nižšie nájdete veľmi typický dopredný diagram plne prepojenej neurónovej siete. V skutočnosti diagram robí celý proces o niečo komplikovanejším, než je (aspoň kým si na to nezvyknete). Vypočítame dopredný priechod, čo je v konečnom dôsledku to, čo sieť robí vždy, keď vytvorí záver, termín, s ktorým sa tiež stretneme neskôr v článku. Momentálne sa budeme zaoberať iba strojom a jeho časťami, s krátkym vysvetlením každého komponentu.
Neurónová sieť pozostáva zo sekvenčných vrstvy, z ktorých každý pozostáva z niekoľkých "neurónov" (znázornených na diagrame ako kruhy) spojených závažia (v diagrame znázornené ako čiary). Vo všeobecnosti existujú tri druhy vrstiev: vstupná vrstva, ktorý odoberá surový vstup; skryté vrstvy, ktoré počítajú matematické operácie z predchádzajúcej vrstvy a výstupná vrstva, ktorý poskytuje konečné predpovede. V tomto prípade máme len jednu skrytú vrstvu, s tromi skryté jednotky. The vstup pozostáva z vektora, poľa alebo zoznamu čísel určitého rozmeru alebo dĺžky. V príklade budeme mať dvojrozmerný vstup, povedzme [1.0, -1.0]. Tu, výkon siete pozostáva zo skalárneho alebo jediného čísla (nie zo zoznamu). Každá skrytá jednotka je spojená s množinou závažia a a zaujatosť, zobrazené vedľa a pod každým uzlom. Na výpočet vážená suma výstup jednotky, každá hmotnosť sa vynásobí každým zodpovedajúcim vstupom a potom sa produkty spočítajú. Potom k tomuto súčtu produktov jednoducho pridáme výraz skreslenia, výsledkom čoho bude výstup neurónu. Napríklad s naším príspevkom [1.0,-1.0], prvá skrytá jednotka bude mať výstup 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Jednoduché, však?
Ďalší krok v diagrame predstavuje an aktivačná funkciaa je to, čo nám umožní vytvoriť výstupný vektor každej skrytej vrstvy. V našom prípade budeme používať veľmi populárne a veľmi jednoduché rektifikovaná lineárna jednotka alebo ReLU, ktorý vezme vstupné číslo a vypíše buď (i) nulu, ak je toto číslo záporné, alebo nulu (ii) samotné vstupné číslo, ak je kladné. Napríklad, ReLU(-0,1) = 0, ale ReLU(0,1) = 0,1. Podľa príkladu nášho vstupu ako to propaguje cez túto prvú skrytú jednotku by sa výstup 1.1, ktorý sme vypočítali, odovzdal do aktivačnej funkcie, čím by sa ReLU(1.1)=1.1. Výstupná vrstva bude v tomto príklade fungovať rovnako ako skrytá jednotka: vynásobí výstupy skrytých jednotiek svojimi váhami a potom pridá svoj skreslenie 0.2. Posledná aktivačná funkcia, kroková funkcia, zmení kladné vstupy na 1 a záporné hodnoty na 0. Keď vieme, ako každá z operácií v sieti funguje, môžeme si zapísať kompletný výpočet našej dedukcie takto:
To je všetko, čo sa týka nášho výpočtu doprednej neurónovej siete. Ako môžete vidieť, operácie pozostávajú takmer výlučne zo súčinov a súčtov čísel. Naša aktivačná funkcia ReLU(x) je možné implementovať aj veľmi jednoducho, napríklad jednoduchým zavolaním max (x, 0), takže vráti x vždy, keď je vstup väčší ako 0, ale inak vráti 0. Poznač si to krok (x) možno vypočítať podobne. Existuje mnoho komplikovanejších aktivačných funkcií, ako napr sigmoidálna funkcia alebo hyperbolická dotyčnica, zahŕňajúce rôzne interné výpočty a vhodnejšie na rôzne účely. Ďalšia vec, ktorú si už môžete všimnúť, je, že aj my môže paralelne spúšťať výpočty troch skrytých jednotiek a ich aplikácie ReLU, keďže ich hodnoty nie sú potrebné súčasne, kým nevypočítame ich vážený súčet na výstupnom uzle.
Ale nemusíme sa tam zastaviť. Vyššie môžete vidieť rovnaký výpočet, ale tentoraz reprezentovaný maticovými a vektorovými operáciami násobenia. Aby sme dospeli k tejto reprezentácii, „rozšírime“ náš vstupný vektor pridaním 1,0 k nemu (svetlejší odtieň), takže keď vložíme náš váhy a našu odchýlku (svetlejší odtieň) v matici, ako je uvedené vyššie, výsledné násobenie dáva rovnakú skrytú jednotku výstupov. Potom môžeme použiť ReLU na výstupný vektor, po jednotlivých prvkoch, a potom „rozšíriť“ výstup ReLU, aby sme ho vynásobili váhami a odchýlkami našej výstupnej vrstvy. Táto reprezentácia značne zjednodušuje zápis, pretože parametre (váhy a odchýlky) celej skrytej vrstvy možno zastrčiť pod jednu premennú. Ale čo je pre nás najdôležitejšie, dáva to jasne najavo vnútorné výpočty siete sú v podstate maticové a vektorové násobenie alebo bodové produkty. Vzhľadom na to, ako sa veľkosť týchto vektorov a matíc škáluje s rozmermi našich vstupov a počtom parametrov v našej sieti, väčšinu času behu strávime vykonávaním týchto druhov výpočtov. Banda lineárnej algebry!
Náš príklad hračiek je, samozrejme, veľmi obmedzený rozsahom. V praxi môžu mať moderné modely hlbokého učenia desiatky, ak nie stovky skrytých vrstiev a milióny pridružených parametrov. Namiesto nášho príkladu dvojrozmerného vektorového vstupu môžu použiť vektory s tisíckami záznamov, v rôznych tvaroch, ako sú matice (ako jednokanálové obrázky) alebo tenzory (trojkanálové RGB snímky). Nič tiež nebráni našej reprezentácii matice prijať viacero vstupných vektorov naraz pridaním riadkov k nášmu pôvodnému vstupu. Neurónové siete môžu byť tiež „zapojené“ inak ako naša dopredná neurónová sieť alebo vykonávať rôzne aktivačné funkcie. Existuje obrovská zoologická záhrada sieťových architektúr a techník, ale nakoniec sú to oni väčšinou rozložiť na rovnaké paralelné aritmetické operácie, aké nájdeme v našom príklade s hračkou, len v oveľa väčšom rozsahu.
Vizuálny príklad konvolučných vrstiev pracujúcich na tenzore. (Kredit obrazu: Smerom k Data Science)
Napríklad populárny konvolučné neurónové siete (CNN) o ktorých ste pravdepodobne čítali, nie sú „úplne prepojené“ ako naša falošná sieť. Jeho „váhy“ alebo parametre sú skryté konvolučné vrstvy možno považovať za akýsi filter, posuvné okno aplikované postupne na malé oblasti vstupu, ako je znázornené vyššie - táto "konvolúcia" je v skutočnosti len produktom s posuvnými bodkami! Výsledkom tohto postupu je to, čo sa často nazýva a mapa funkcií. Združovacie vrstvy zmenšujú veľkosť vstupu alebo výstupu konvolučnej vrstvy výpočtom maximálnej alebo priemernej hodnoty malých políčok obrazu. Zvyšok siete zvyčajne pozostáva z plne prepojených vrstiev, ako sú tie v našom príklade, a aktivačných funkcií, ako je ReLU. Toto sa často používa na extrakciu prvkov v obrázkoch, kde môžu mapy prvkov skorých konvolučných vrstiev „rozpoznať“ vzory, ako sú čiary alebo okraje, a neskoršie vrstvy dokážu rozpoznať komplikovanejšie prvky, ako sú tváre alebo komplexy tvary.
Všetko, čo bolo povedané, je prísne obmedzené na vyvodzovanie, alebo vyhodnotenie neurónovej siete po zistení jej parametrov školenia čo je oveľa zložitejší postup. A opäť sme vylúčili veľa vysvetlení. V skutočnosti je každý z komponentov siete zahrnutý na určitý účel. Napríklad tí z vás, ktorí študovali lineárnu algebru, môžu ľahko pozorovať, že bez toho nelineárne aktivačné funkcie sa naša sieť zjednodušuje na lineárny model s veľmi obmedzenou predikciou kapacita.
Vylepšený AI Engine na Snapdragon 865 – súhrn vylepšení
S týmto praktickým pochopením komponentov neurónovej siete a ich matematických operácií môžeme začať presne chápať, prečo je hardvérová akcelerácia taká dôležitá. V poslednej časti môžeme pozorovať, že paralelizácia je životne dôležitá pre zrýchlenie siete nám umožňuje napríklad vypočítať niekoľko paralelných bodových súčinov zodpovedajúcich každému neurónu aktivácia. Každý z týchto bodových produktov sa skladá z operácií viacnásobného sčítania čísel, zvyčajne s 8-bitovou presnosťou v prípade mobilných aplikácií, ktoré sa musia uskutočniť čo najrýchlejšie. AI Engine ponúka rôzne komponenty na odbremenenie týchto úloh v závislosti od úvah o výkone a energetickej účinnosti vývojára.
Diagram CNN pre populárny súbor údajov MNIST, zobrazený na javisku na tohtoročnom summite Snapdragon. Jednotka vektorového spracovania je vhodná pre plne prepojené vrstvy, ako v našom falošnom príklade. Medzitým procesor tensor spracováva konvolučné a združovacie vrstvy, ktoré spracovávajú viacnásobné posúvanie jadrá paralelne, ako na obrázku vyššie, a každá konvolučná vrstva môže mať na výstupe veľa samostatných funkcií mapy.
Najprv sa pozrime na GPU, o ktorom zvyčajne hovoríme v kontexte 3D hier. Spotrebiteľský trh s videohrami už desaťročia stimuluje vývoj hardvéru na spracovanie grafiky, ale prečo sú GPU také dôležité pre neurónové siete? Pre začiatočníkov naraz prehrýzajú obrovské zoznamy 3D súradníc vrcholov polygónov, aby mali prehľad o stave sveta v hre. GPU musí tiež vykonávať gigantické operácie násobenia matíc na konverziu (alebo mapovanie) týchto 3D súradnice na 2D rovinné súradnice na obrazovke a tiež spracovávať informácie o farbe pixelov v paralelný. K tomu všetkému ponúkajú veľkú šírku pásma pamäte, aby zvládli obrovské vyrovnávacie pamäte pre bitové mapy textúr prekryté geometriou v hre. Jeho výhody v paralelizácii, šírke pásma pamäte a výsledných schopnostiach lineárnej algebry zodpovedajú výkonnostným požiadavkám neurónových sietí.
Rad Adreno GPU má teda veľkú úlohu v Qualcomm AI Engine a na pódiu Qualcomm uviedol, že tento aktualizovaný komponent v Snapdragon 865 umožňuje dvakrát toľko možností s pohyblivou rádovou čiarkou a dvojnásobný počet TOPS v porovnaní s predchádzajúcou generáciou, čo je prekvapujúce vzhľadom na to, že zaznamenali iba 25% nárast výkonu pri vykresľovaní grafiky. Napriek tomu sa spoločnosť pri tomto vydaní môže pochváliť a 50 % zvýšenie počtu aritmetických logických jednotiek (ALU), aj keď ako obvykle nezverejnili svoje frekvencie GPU. Qualcomm tiež uviedol zmiešanú presnosť inštrukcie, čo presne tak znie: rozdielna numerická presnosť naprieč operáciami v jedinej výpočtovej metóde.
Hexagon 698 DSP je miesto, kde vidíme obrovskú časť zvýšenia výkonu, ktoré ponúka Snapdragon 865. Tento rok spoločnosť neoznámila vylepšenia ich vektorových rozšírení DSP (ktorých výkon sa v minulom roku štvornásobne zvýšil z 855), ani ich skalárnych jednotiek. Poznamenávajú však, že pre tento blokový Tensor Accelerator dosiahli štvornásobok TOP oproti verzii predstavenej minulý rok v Hexagone 695 DSP, pričom zároveň vie ponúknuť O 35 % lepšia energetická účinnosť. To je veľký problém vzhľadom na prevalenciu architektúr konvolučných neurónových sietí v moderných prípadoch použitia AI, od detekcie obrázkových objektov až po automatické rozpoznávanie reči. Ako je vysvetlené vyššie, konvolučná operácia v týchto sieťach vytvára 2D pole maticových výstupov pre každý filter, to znamená, že pri poskladaní dohromady je výstupom konvolučnej vrstvy 3D pole resp tenzor.
Qualcomm tiež propagoval svoje „nové a jedinečné“ kompresia šírky pásma hlbokého učenia technika, ktorá zrejme môže bezstratovú kompresiu dát o približne 50 %, naopak presun polovice dát a uvoľnenie šírky pásma pre ostatné časti čipsetu. Malo by to tiež šetriť energiu znížením tejto priepustnosti údajov, aj keď sme nedostali žiadne údaje a komprimácia údajov by mala byť tiež nízka.
Pokiaľ ide o šírku pásma, Snapdragon 865 podporuje Pamäť LPDDR5, čo tiež prospeje výkonu AI, pretože zvýši rýchlosť prenosu zdrojov a vstupných údajov. Okrem hardvéru je novinka od Qualcommu AI Model Efficiency Toolkit sprístupňuje vývojárom jednoduchú kompresiu modelu a výslednú úsporu energie. Neurónové siete majú často veľké množstvo „nadbytočných“ parametrov; môžu napríklad urobiť skryté vrstvy širšie, než je potrebné. Jedna z funkcií AI Toolkit diskutovaná na pódiu je teda kompresia modelu, pričom dve z uvedených metód sú priestorová singulárna dekompozícia (SVD) a bayesovská kompresia, obe ktoré efektívne orezávajú neurónovú sieť tým, že sa zbavujú nadbytočných uzlov a upravujú štruktúru modelu ako požadovaný. Ďalšia technika kompresie modelu prezentovaná na scéne sa týka kvantovania a zahŕňa zmenu numerickej presnosti parametrov hmotnosti a výpočtov aktivačných uzlov.
Numerická presnosť váh neurónovej siete sa týka toho, či sú číselné hodnoty použité na výpočet uložené, prenesené a spracované ako 64, 32, 16 (polovičná presnosť) alebo 8-bitové hodnoty. Použitie nižšej numerickej presnosti (napríklad INT8 oproti FP32) znižuje celkové využitie pamäte a rýchlosti prenosu dát, čo umožňuje vyššiu šírku pásma a rýchlejšie odvodenie. Mnoho dnešných aplikácií hlbokého učenia prešlo na 8-bitové presné modely na odvodenie, čo môže znieť prekvapujúce: neumožnila by vyššia numerická presnosť „presnejšie“ predpovede v klasifikácii alebo regresii úlohy? Nie nevyhnutne; vyššia numerická presnosť, najmä počas inferencie, môže byť premrhaná, pretože neurónové siete sú trénované na to, aby sa vyrovnali s hlučnými vstupmi alebo aj tak malé poruchy počas tréningu a chyba v dolnom bitovom vyjadrení danej (FP) hodnoty je rovnomerne „náhodná“ dosť. V istom zmysle sieť považuje nízku presnosť výpočtov za ďalší zdroj šumu a predpovede zostávajú použiteľné. Okrem heuristických vysvetľovačov je pravdepodobné, že pri mizernom kvantovaní modelu získate pokutu za presnosť bez toho, aby sa brali do úvahy niektoré dôležité úvahy, čo je dôvod, prečo sa veľa výskumov venuje tejto problematike predmet
Späť na súpravu nástrojov AI od Qualcommu: Prostredníctvom nej ponúkajú kvantovanie bez dát, čo umožňuje kvantovanie modelov bez dolaďovania údajov alebo parametrov, pričom sa stále dosahuje takmer pôvodný výkon modelu pri rôznych úlohách. V podstate prispôsobuje parametre hmotnosti pre kvantizáciu a koriguje chybu vychýlenia spôsobenú prechodom na váhy s nižšou presnosťou. Vzhľadom na výhody vyplývajúce z kvantizácie by automatizácia postupu v rámci volania API zjednodušila výrobu a nasadenie modelu a spoločnosť Qualcomm tvrdí, viac ako štvornásobok výkonu na watt pri spustení kvantovaného modelu.
Ale opäť to nie je šokujúce: kvantovacie modely môžu ponúknuť obrovskú šírku pásma a výhody ukladania. Konverziou modelu na INT8 získate nielen štvornásobné zníženie šírky pásma, ale aj výhodu rýchlejších celočíselných výpočtov (v závislosti od hardvéru). Je teda jasné, že hardvérovo akcelerované prístupy ku kvantizácii aj numerickým výpočtom by priniesli obrovské zvýšenie výkonu. Na svojom blogu, napríklad Pete Warden z Google napísal, že spolupráca medzi tímami Qualcomm a Tensorflow umožňuje 8-bitovým modelom spustiť až sedemkrát rýchlejšiena HVX DSP ako na CPU. Je ťažké preceňovať potenciál ľahko použiteľnej kvantizácie, najmä vzhľadom na to, ako sa Qualcomm zameral na výkon INT8.
Kryo CPU Snapdragon 865 na báze ARM je stále dôležitou súčasťou motora AI. Aj keď je hardvérová akcelerácia diskutovaná v predchádzajúcich odsekoch vhodnejšia, niekedy my nemôže vyhnúť aplikáciám, ktoré správne nevyužívajú tieto bloky, čo vedie k CPU záložný. V minulosti spoločnosť ARM zaviedla špecifické inštrukčné sady zamerané na urýchlenie výpočtov na báze matice a vektora. V procesoroch ARMv7 sme videli predstavenie ARM NEON, rozšírenie architektúry SIMD umožňujúce inštrukcie podobné DSP. A s mikroarchitektúrou ARMv8.4-A sme videli zavedenie inštrukcií špeciálne pre bodové produkty.
Všetky tieto zverejnené prírastky výkonu sa týkajú mnohých pracovných zaťažení, ktoré sme opísali v predchádzajúcej časti, ale tiež stojí za to mať na pamäti, že tieto inovácie Snapdragon 865 sú len najnovšie vylepšenia schopností AI spoločnosti Qualcomm. V roku 2017 sme zdokumentovali ich strojnásobenie schopností AI pomocou Hexagon 685 DSP a ďalších aktualizácií čipsetu. Minulý rok predstavili svoj tenzorový akcelerátor a integrovali podporu pre nelineárne funkcie (ako vyššie uvedené ReLU!) na hardvérovej úrovni. Zdvojnásobili tiež počet vektorových urýchľovačov a zlepšili výkon skalárnej procesorovej jednotky o 20 %. Vďaka spojeniu tohto všetkého s vylepšeniami na strane CPU, ako sú rýchlejšie operácie s bodovými produktmi od ARM, a ďalšie ALU v GPU, Qualcomm v konečnom dôsledku strojnásobil surové schopnosti AI.
Praktické výhody a rozšírené prípady použitia
Všetky tieto vylepšenia viedli k päťnásobku schopností AI na Snapdragon 865 v porovnaní s obdobím pred dvoma rokmi, ale možno najdôležitejšie je, že vylepšenia prišli aj s lepším výkonom na miliwatt, čo je kritická metrika pre mobilné zariadenia zariadení. Na Snapdragon Summit 2019 nám Qualcomm poskytol niekoľko benchmarkov porovnávajúcich ich AI Engine s dvoma konkurentmi v rôznych klasifikačných sieťach. Zdá sa, že tieto údaje sa zbierajú pomocou aplikácie AIMark, aplikácie na porovnávanie viacerých platforiem, ktorá umožňuje porovnanie s procesormi Apple série A a HiSilicon od Huawei. Qualcomm tvrdí, že tieto výsledky využívajú celý AI Engine a budeme musieť počkať na viac dôkladné porovnávanie, aby sa správne rozčlenil účinok každého komponentu a určilo sa, ako tieto testy dopadli vedený. Naznačujú napríklad výsledky od spoločnosti B záložný procesor? Pokiaľ viem, AIMark v súčasnosti napríklad nevyužíva NPU Kirin 990 na našich jednotkách Mate 30 Pro. Podporuje však Snapdragon Neural Processing Engine, takže určite využije výhody Qualcomm AI Engine; keďže ide o interné testovanie, nie je explicitne jasné, či benchmark správne využíva správne knižnice alebo súpravu SDK pre svojich konkurentov.
Treba tiež povedať, že Qualcomm efektívne porovnáva schopnosti spracovania AI Snapdragon 865 s predtým oznámenými alebo vydanými čipsetmi. Je veľmi pravdepodobné, že jej konkurenti prinesú v nasledujúcom cykle podobne účinné vylepšenia výkonu, a ak v prípade, potom by Qualcomm držal korunu len približne pol roka od okamihu, keď sa zariadenia Snapdragon 865 dostali na pulty. To znamená, že tieto stále naznačujú druh nárazov, ktoré môžeme očakávať od Snapdragon 865. Qualcomm bol vo všeobecnosti veľmi presný, keď komunikoval vylepšenia výkonu a výsledky benchmarkov nadchádzajúcich vydaní.
Všetky siete prezentované v týchto benchmarkoch klasifikujú obrázky z databáz ako ImageNet, prijímajú ich ako vstupy a vydávajú jednu zo stoviek kategórií. Opäť sa spoliehajú na rovnaké druhy operácií, aké sme opísali v druhej časti, hoci ich architektúr je veľa komplikovanejšie ako tieto príklady a v čase vydania sa považovali za najmodernejšie riešenia. V najlepších prípadoch ich najbližší konkurent poskytuje menej ako polovičný počet záverov za sekundu.
Pokiaľ ide o spotrebu energie, Qualcomm ponúkol závery na watt, aby ukázal množstvo spracovania AI, ktoré je možné pri danom množstve energie. V najlepších prípadoch (MobileNet SSD) môže Snapdragon AI Engine ponúknuť dvojnásobný počet záverov pri rovnakom rozpočte na výkon.
Napájanie je obzvlášť dôležité pre mobilné zariadenia. Predstavte si napríklad filter Snapchat založený na neurónovej sieti. Realisticky, potrubie počítačového videnia získava informácie o tvári a aplikuje masku alebo vstup transformácia musí prebiehať len rýchlosťou 30 alebo 60 dokončení za sekundu, aby sa dosiahla tekutina skúsenosti. Zvýšenie výkonu umelej inteligencie by vám umožnilo prijímať vstupy s vyšším rozlíšením a vytvárať lepšie vyzerajúce filtre, ale jednoducho sa radšej uspokojte s rozlíšením HD pre rýchlejšie nahrávanie a zníženie spotreby energie a tepelného škrtenia. V mnohých aplikáciách „rýchlejšie“ nemusí byť nevyhnutne „lepšie“ a človek potom môže využívať výhody zlepšenej energetickej účinnosti.
Počas 2. dňa Snapdragon Summit vystúpil na pódium Sr. riaditeľ inžinierstva v Snapchat Yurii Monastyrshyn, aby ukázal, ako ich najnovšie filtre založené na hlbokom učení sú výrazne zrýchlené pomocou Hexagon Direct NN pomocou Hexagon 695 DSP na Snapdragon 865.
Na vrchu tamtoho, ako vývojári získajú prístup k jednoduchším implementáciám neurónových sietí a viac aplikácií začne využívať techniky AI, prípady súbežného použitia budú viac v centre pozornosti, pretože smartfón bude musieť zvládnuť viacero paralelné potrubia AI naraz (buď pre jednu aplikáciu spracúvajúcu vstupné signály z rôznych zdrojov, alebo toľko aplikácií, ktoré bežia oddelene na zariadení). Zatiaľ čo vidíme úctyhodný nárast energetickej účinnosti na výpočtovom DSP, GPU a CPU, Qualcomm Sensing Hub zvláda prípady neustáleho použitia, aby počúval spúšťacie slová pri veľmi nízkej spotrebe energie. Umožňuje monitorovať audio, video a snímače pri prúde menej ako 1 mA, čo umožňuje zariadeniu rozpoznať určité zvukové signály (napríklad plač dieťaťa) popri známych kľúčových slovách digitálneho asistenta. V tejto súvislosti Snapdragon 865 umožňuje zistiť nielen kľúčové slovo, ale aj to, kto ho hovorí, identifikovať oprávneného používateľa a podľa toho konať.
Viac AI na zariadeniach Edge
Tieto vylepšenia sa môžu v konečnom dôsledku premietnuť do hmatateľných výhod pre vašu používateľskú skúsenosť. Služby, ktoré zahŕňajú preklad, rozpoznávanie a označovanie objektov, predpovede používania alebo odporúčania položiek, porozumenie prirodzenému jazyku, analyzovanie reči a tak ďalej získajú výhodu rýchlejšej prevádzky a nižšej spotreby moc. Vyšší výpočtový rozpočet tiež umožňuje vytvárať nové prípady použitia a skúseností a presúvať procesy, ktoré sa predtým odohrávali v cloude, do vášho zariadenia. Zatiaľ čo AI ako termín sa v minulosti používal pochybnými, klamlivými a dokonca chybnými spôsobmi (dokonca aj výrobcami OEM), mnohé z vašich služieb, ktoré si dnes užívate, sa v konečnom dôsledku v určitej forme spoliehajú na algoritmy strojového učenia ďalší.
Okrem Qualcommu však aj iní výrobcovia čipových súprav rýchlo opakovali a zlepšovali sa v tejto oblasti. Napríklad 990 5G priniesol dizajn jadra 2+1 NPU, čo má za následok až 2,5-krát vyšší výkon ako Kirin 980 a dvojnásobný výkon ako Apple A12. Keď bol procesor ohlásený, ukázalo sa, že ponúka až dvojnásobok snímok (inferencie) za sekundu Snapdragon 855 na INT8 MobileNet, čo je ťažké porovnávať s výsledkami poskytovanými spoločnosťou Qualcomm. Apple A13 Bionic, na druhej strane, údajne ponúkol šesťkrát rýchlejšie násobenie matrice oproti svojmu predchodcovi a zlepšil jeho osemjadrový dizajn neurónového motora. Budeme musieť počkať, kým budeme môcť riadne otestovať Snapdragon 865 na komerčných zariadeniach proti jeho súčasným a budúcim konkurentom, ale je to jasné, že konkurencia v tomto priestore nikdy nezostane pokojná, pretože tieto tri spoločnosti naliali množstvo zdrojov na zlepšenie svojej AI výkon.