Kako je Qualcomm naredil velike izboljšave v AI na Snapdragon 865

Qualcomm je z novim procesorjem Snapdragon 865 naredil velike skoke v zmogljivosti AI. Analiziramo spremembe, ki jih je Qualcomm naredil za pospešitev strojnega učenja.

Zdi se, kot da ne more miniti dan, ne da bi v novicah videli "umetno inteligenco", in pretekli teden ni bil izjema, v veliki meri po zaslugi srečanja Snapdragon Tech Summit. Qualcomm vsako leto razkrije obilico izboljšav, ki jih prinaša svojemu Hexagon DSP in Qualcomm AI Engine, izraz, ki ga uporabljajo za svojo celotno heterogeno računalniško platformo - CPE, GPE in DSP - ko govorijo o AI delovne obremenitve. Pred nekaj leti se je Qualcommovo vztrajanje, da pogovor odmakne od tradicionalnih govornih tem, kot so vsakoletne izboljšave zmogljivosti procesorja, zdelo nekoliko čudno. Toda leta 2019 in s procesorjem Snapdragon 865 vidimo, da je heterogeno računalništvo dejansko na čelu njihovega mobilnega računalništva, saj je AI in zdi se, da se delovne obremenitve, pospešene s strojno opremo, prikradejo v široko paleto primerov uporabe in aplikacij, od družbenih medijev do vsakodnevnih storitve.

Snapdragon 865 prinaša Qualcommov motor AI 5. generacije in z njim sočne izboljšave v zmogljivosti in energetski učinkovitosti – vendar je to pričakovano. V morju specifikacij, podatkov o zmogljivosti, domiselnih inženirskih izrazov in utrujajočih marketinških floskul je enostavno izgubiti izpred oči, kaj te izboljšave dejansko pomenijo. Kaj opisujejo? Zakaj so te nadgradnje tako pomembne za tiste, ki danes izvajajo umetno inteligenco v svojih aplikacijah, in morda še pomembneje, za tiste, ki želijo to storiti v prihodnosti?

V tem članku se bomo podali na dostopen, a temeljit ogled Qualcomm AI Engine in prečesali njegovo zgodovino, njegove komponente in nadgradnje procesorja Snapdragon 865, in kar je najpomembneje, zakaj oz kako vsak od teh je prispeval k današnji izkušnji s pametnimi telefoni, od smešnih filtrov do digitalnih pomočnikov.

Hexagon DSP in Qualcomm AI Engine: ko blagovna znamka naredi razliko

Čeprav se nisem mogel udeležiti tega tedenskega srečanja Snapdragon Tech Summit, sem se kljub temu udeležil vsakega drugega od leta 2015. Če se spomnite, to je bilo leto vroče zmešnjave, kot je bil Snapdragon 810, zato so novinarji na tistem podstrešju Chelsea v New Yorku nestrpno želeli izvedeti, kako bo Snapdragon 820 rešil podjetje. In bil je odličen nabor čipov, v redu: obljubljal je zdrave izboljšave zmogljivosti (brez dušenja) z vrnitvijo na takrat preizkušena jedra po meri, po katerih je bil znan Qualcomm. Vendar se spomnim tudi zelo subtilne objave, ki bi ji, gledano nazaj, moralo biti namenjeno več pozornosti: druga generacija Hexagon 680 DSP in njegovih enojnih navodil, več podatkov (SIMD) Hexagon Vector eXtensions ali HVX. Morda bi bila deležna pozornosti, ki si jo zasluži, če inženirji funkcije ne bi poimenovali.

Ta koprocesor omogoča nitim strojne opreme skalarne DSP enote dostop do "kontekstov" HVX (registrskih datotek) za široke zmožnosti vektorske obdelave. Omogočil je razbremenitev znatnih računalniških delovnih obremenitev iz CPE ali GPE, ki požrejo energijo, na energijsko učinkovit DSP, tako da bi naloge slikanja in računalniškega vida delovale z bistveno izboljšano zmogljivostjo na milivat. Popolne so za uporabo identičnih operacij na sosednjih vektorskih elementih (prvotno samo celih številih), zaradi česar so primerne za delovne obremenitve računalniškega vida. V preteklosti smo že napisali poglobljen članek o DSP in HVX, pri čemer ugotavlja, da je arhitektura HVX primerna za paralelizacijo in očitno obdelavo velikih vhodnih vektorjev. Takrat je Qualcomm DSP in HVX promoviral skoraj izključno z opisovanjem izboljšav, ki jih bi prinesel delovne obremenitve računalniškega vida, kot je Harrisov kotni detektor in druga drsna okna metode.

Šele s pojavom globokega učenja v potrošniških mobilnih aplikacijah je DSP, njegov vektor procesne enote (in zdaj tenzorski pospeševalnik) bi se poročile z AI in nevronskimi mrežami, v posebno. Toda če pogledamo nazaj, je povsem logično: arhitektura digitalnega signalnega procesorja (DSP), prvotno zasnovana za upravljanje digitalnih resničnih ali analognih signalnih vhodov, je primeren za številne enake delovne obremenitve kot številni algoritmi strojnega učenja in nevronski omrežja. DSP-ji so na primer prilagojeni za jedra filtrov, operacije konvolucije in korelacije, 8-bitne izračune, ogromno linearna algebra (vektorski in matrični produkti) in operacije množenja-seštevanja (MAC), vse najbolj učinkovite, ko vzporedno. Čas izvajanja nevronske mreže je zelo odvisen tudi od množenja velikih vektorjev, matrik in/ali tenzorjev, tako da povsem naravno je, da se zmogljivostne prednosti DSP lepo prenesejo na arhitekture nevronskih mrež kot dobro. Kmalu se bomo ponovno posvetili tej temi!

V naslednjih letih je Qualcomm še naprej poudarjal, da ne ponuja samo nabori čipov, ampak mobilne platforme, in da se osredotočajo ne samo o izboljšanju določenih komponent, vendar zagotavljanju "heterogenega" računanja. Leta 2017 so izdali svoj SDK Snapdragon Neural Processing Engine (za pospeševanje izvajanja) na Qualcomm Developer Network, v začetku leta 2018 pa so je najavil Qualcomm Artificial Intelligence Engine za združitev njihove več strojne opreme, ki podpira AI (CPE, GPU, DSP) in programske komponente v enem samem ime. S to uporabno nomenklaturo so lahko lepo oglaševali svoje izboljšave zmogljivosti AI tako na Snapdragon 855 kot Snapdragon 865, ki lahko udobno navede število trilijonov operacij na sekundo (TOPS) in letni odstotek izboljšave. Izkoriščanje generacijskih izboljšav v CPE, GPE in DSP - vsi so osredotočeni na AI nadgradnje - podjetje lahko objavi impresivna merila uspešnosti v primerjavi s konkurenti, ki jih bomo pregledali v kratkem. Z nedavnimi trženjskimi prizadevanji podjetja in poenotenim, doslednim sporočanjem o heterogenem računalništvu njihova blagovna znamka AI končno pridobiva na veljavi med novinarji in tehnološkimi navdušenci.

Demistifikacija nevronskih mrež: vsakdanji kup linearne algebre

Da bi razvozlali veliko žargona, na katerega bomo naleteli pozneje v članku, potrebujemo kratek uvod kaj je nevronska mreža in kaj potrebujete, da bo hitrejši. Zelo na kratko želim pregledati nekatere matematične podlage nevronskih mrež, pri čemer se čim bolj izogibam žargonu in zapisom. Namen tega razdelka je preprosto ugotoviti, kaj počne nevronska mreža, v osnovi: aritmetične operacije izvaja, namesto teoretične osnove, ki opravičuje omenjene operacije (to je veliko bolj zapleteno!). Nadaljujte z naslednjim razdelkom, če želite skočiti naravnost na nadgradnje Qualcomm AI Engine.

"Vektorska matematika je temelj globokega učenja." – Travis Lanier, višji direktor produktnega upravljanja pri Qualcommu na srečanju Snapdragon Tech Summit 2017

Spodaj boste našli zelo tipičen diagram popolnoma povezane nevronske mreže s posredovanjem naprej. V resnici je zaradi diagrama celoten proces videti nekoliko bolj zapleten, kot je (vsaj dokler se ne navadiš). Izračunali bomo prehod naprej, kar je navsezadnje tisto, kar počne omrežje, kadarkoli ustvari sklepanje, izraz, ki ga bomo srečali tudi kasneje v članku. Trenutno se bomo ukvarjali samo s strojem in njegovimi deli, s kratkimi razlagami vsake komponente.

Nevronska mreža je sestavljena iz zaporednih plasti, od katerih je vsak sestavljen iz več "nevronov" (v diagramu prikazanih kot krogi), povezanih z uteži (prikazano kot črte na diagramu). Na splošno obstajajo tri vrste plasti: vhodni sloj, ki sprejme neobdelani vnos; skrite plasti, ki izračunavajo matematične operacije iz prejšnje plasti, in izhodni sloj, ki zagotavlja končne napovedi. V tem primeru imamo le eno skrito plast s tremi skrite enote. The vnos je sestavljen iz vektorja, niza ali seznama števil določene dimenzije ali dolžine. V primeru bomo imeli recimo dvodimenzionalni vnos [1.0, -1.0]. Tukaj, izhod omrežja je sestavljen iz skalarja ali ene same številke (ne seznama). Vsaka skrita enota je povezana z nizom uteži in a izraz pristranskosti, prikazan poleg in pod vsakim vozliščem. Za izračun ponderirana vsota izhod enote, se vsaka utež pomnoži z vsakim ustreznim vložkom, nato pa se zmnožki seštejejo. Nato bomo tej vsoti produktov preprosto dodali pristranski člen, kar bo rezultiralo v rezultatu nevrona. Na primer z našim vnosom [1.0,-1.0], bo imela prva skrita enota izhod 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Preprosto, kajne?

Naslednji korak v diagramu predstavlja aktivacijska funkcija, in je tisto, kar nam bo omogočilo izdelavo izhodnega vektorja vsake skrite plasti. V našem primeru bomo uporabili zelo priljubljeno in izjemno preprosto rektificirana linearna enota oz ReLU, ki sprejme vhodno število in izpiše (i) nič, če je to število negativno, ali nič (ii) samo vhodno število, če je število pozitivno. na primer ReLU(-0,1) = 0, ampak ReLU(0,1) = 0,1. Po vzoru našega vložka kot it razmnožuje prek te prve skrite enote bi bil rezultat 1.1, ki smo ga izračunali, predan v aktivacijsko funkcijo, kar bi prineslo ReLU(1,1)=1,1. Izhodna plast bo v tem primeru delovala tako kot skrita enota: pomnožila bo izhode skritih enot z njihovimi utežmi in nato dodala svoj izraz pristranskosti 0.2. Zadnja aktivacijska funkcija, stopenjska funkcija, bo pozitivne vnose spremenil v 1 in negativne vrednosti v 0. Če vemo, kako deluje vsaka od operacij v omrežju, lahko zapišemo celoten izračun našega sklepanja, kot sledi:

To je vse, kar je v našem računanju nevronske mreže s posredovanjem podatkov. Kot vidite, je operacije so skoraj v celoti sestavljene iz produktov in vsot števil. Naša aktivacijska funkcija ReLU(x) je mogoče implementirati tudi zelo enostavno, na primer s preprostim klicem največ (x, 0), tako da vrne x vedno, ko je vnos večji od 0, sicer pa vrne 0. Upoštevajte to korak (x) se lahko izračuna podobno. Obstaja veliko bolj zapletenih aktivacijskih funkcij, kot je npr sigmoidna funkcija ali hiperbolični tangens, ki vključuje različne notranje izračune in je bolj primeren za različne namene. Druga stvar, ki jo že lahko začnete opažati, je, da tudi mi lahko izvaja izračune treh skritih enot in njihove aplikacije ReLU vzporedno, saj njihove vrednosti niso potrebne hkrati, dokler ne izračunamo njihove utežene vsote na izhodnem vozlišču.

Vendar se nam ni treba ustaviti pri tem. Zgoraj lahko vidite isti izračun, vendar tokrat namesto tega predstavljen z operacijami množenja matrik in vektorjev. Da pridemo do te predstavitve, "povečamo" naš vhodni vektor tako, da mu dodamo 1.0 (svetlejši odtenek), tako da, ko vnesemo naš uteži in naše pristranskosti (svetlejši odtenek) v matriki, kot je prikazano zgoraj, rezultat množenja daje isto skrito enoto izhodi. Nato lahko uporabimo ReLU na izhodnem vektorju po elementih in nato "povečamo" izhod ReLU, da ga pomnožimo z utežmi in pristranskostjo naše izhodne plasti. Ta predstavitev močno poenostavi zapis, saj je mogoče parametre (uteži in pristranskosti) celotnega skritega sloja skriti pod eno samo spremenljivko. Toda kar je za nas najpomembneje, to jasno pove notranji izračuni omrežja so v bistvu matrično in vektorsko množenje ali pikčasti produkti. Glede na to, kako se velikost teh vektorjev in matrik spreminja z dimenzionalnostjo naših vnosov in številom parametrov v našem omrežju, bo večina časa izvajanja porabljena za tovrstne izračune. Kup linearne algebre!

Naš primer igrače je seveda zelo omejen obseg. V praksi imajo lahko sodobni modeli globokega učenja na desetine, če ne na stotine skritih plasti in na milijone povezanih parametrov. Namesto našega primera dvodimenzionalnega vektorskega vnosa lahko sprejmejo vektorje s tisoči vnosov, v različnih oblikah, kot so matrike (kot so enokanalne slike) ali tenzorji (trikanalni RGB slike). Prav tako nič ne preprečuje naši matrični predstavitvi, da sprejme več vhodnih vektorjev hkrati z dodajanjem vrstic našemu izvirnemu vnosu. Nevronske mreže so lahko tudi »ožičene« drugače kot naša nevronska mreža s posredovanjem podatkov ali pa izvajajo drugačne aktivacijske funkcije. Obstaja ogromen živalski vrt omrežnih arhitektur in tehnik, a na koncu so večinoma razčleniti na iste vzporedne aritmetične operacije, kot jih najdemo v našem primeru igrače, le v veliko večjem obsegu.

Vizualni primer konvolucijskih plasti, ki delujejo na tenzorju. (Zasluge za sliko: K podatkovni znanosti)

Na primer priljubljena konvolucijske nevronske mreže (CNN) o katerih ste verjetno brali, niso »popolnoma povezani« kot naše lažno omrežje. "Uteži" ali parametri njegovega skritega konvolucijske plasti si ga lahko predstavljamo kot nekakšen filter, drsno okno, ki se zaporedno uporablja za majhne zaplate vnosa, kot je prikazano zgoraj -- ta "konvolucija" je v resnici samo drseči pikčasti produkt! Rezultat tega postopka je tisto, kar se pogosto imenuje a zemljevid funkcij. Plasti z združevanjem zmanjšajo velikost vnosa ali izhoda konvolucijske plasti z izračunavanjem največje ali povprečne vrednosti majhnih delčkov slike. Preostali del omrežja običajno sestavljajo popolnoma povezane plasti, kot so tiste v našem primeru, in aktivacijske funkcije, kot je ReLU. To se pogosto uporablja za ekstrakcijo funkcij na slikah, kjer lahko zemljevidi funkcij zgodnjih konvolucijskih plasti "zaznajo" vzorce, kot so črte ali robovi, kasnejši sloji pa lahko zaznajo bolj zapletene značilnosti, kot so obrazi ali kompleks oblike.

Vse, kar je bilo povedano, je strogo omejeno na sklepanje, ali vrednotenje nevronske mreže po tem, ko so bili njeni parametri najdeni usposabljanje kar je veliko bolj zapleten postopek. In spet smo izključili veliko razlag. V resnici je vsaka komponenta omrežja vključena z določenim namenom. Na primer, tisti med vami, ki ste študirali linearno algebro, lahko zlahka ugotovite, da brez nelinearne aktivacijske funkcije, se naše omrežje poenostavi na linearni model z zelo omejenim predvidevanjem zmogljivost.

Nadgrajen AI Engine na Snapdragon 865 – povzetek izboljšav

S tem praktičnim razumevanjem komponent nevronske mreže in njihovih matematičnih operacij lahko začnemo natančno razumeti, zakaj je strojno pospeševanje tako pomembno. V zadnjem razdelku lahko opazimo, da je paralelizacija ključnega pomena za pospešitev danega omrežja nam omogoča, na primer, da izračunamo več vzporednih pikčastih produktov, ki ustrezajo vsakemu nevronu aktiviranje. Vsak od teh produktov je sestavljen iz operacij množenja in seštevanja števil, običajno z 8-bitno natančnostjo v primeru mobilnih aplikacij, ki se morajo zgoditi čim hitreje. AI Engine ponuja različne komponente za razbremenitev teh nalog, odvisno od pomislekov razvijalca o zmogljivosti in energetski učinkovitosti.

Diagram CNN za priljubljen nabor podatkov MNIST, prikazan na odru na letošnjem Snapdragon Summitu. Vektorska procesna enota je primerna za popolnoma povezane plasti, kot v našem lažnem primeru. Medtem pa tenzorski procesor obravnava konvolucijske plasti in plasti združevanja, ki obdelujejo večkratno drsenje jedra vzporedno, kot je prikazano na zgornjem diagramu, in vsaka konvolucijska plast lahko ustvari veliko ločenih funkcij zemljevidi.

Najprej si oglejmo GPU, o katerem običajno govorimo v kontekstu 3D iger. Potrošniški trg za video igre je desetletja spodbujal razvoj strojne opreme za obdelavo grafike, toda zakaj so grafični procesorji tako pomembni za nevronske mreže? Za začetek naenkrat prežvečijo ogromne sezname 3D koordinat oglišč mnogokotnikov, da lahko sledijo stanju sveta v igri. GPE mora izvajati tudi velikanske operacije množenja matrik za pretvorbo (ali preslikavo) teh 3D koordinira na ravninske 2D, koordinate na zaslonu, in tudi obravnava informacije o barvah slikovnih pik v vzporedno. Za nameček ponujajo visoko pasovno širino pomnilnika za obvladovanje ogromnih pomnilniških medpomnilnikov za bitne slike teksture, ki se prekrivajo z geometrijo v igri. Njegove prednosti pri paralelizaciji, pasovni širini pomnilnika in posledičnih zmogljivostih linearne algebre se ujemajo z zahtevami glede zmogljivosti nevronskih mrež.

Linija Adreno GPU ima tako pomembno vlogo pri Qualcomm AI Engine in Qualcomm je na odru izjavil, da ta posodobljena komponenta v Snapdragon 865 omogoča dvakrat več zmogljivosti za plavajočo vejico in dvakratno število TOPS v primerjavi s prejšnjo generacijo, kar je presenetljivo glede na to, da so objavili samo 25-odstotno izboljšanje zmogljivosti za grafično upodabljanje. Kljub temu se podjetje za to izdajo ponaša z a 50 % povečanje števila aritmetično logičnih enot (ALU), čeprav kot običajno niso razkrili svojih frekvenc GPE. Qualcomm je navedel tudi mešano natančnost navodila, kar se sliši ravno tako: različna numerična natančnost med operacijami v eni sami računski metodi.

Hexagon 698 DSP je tisti, kjer vidimo ogromen del povečanja zmogljivosti, ki ga ponuja Snapdragon 865. Letos podjetje ni sporočilo izboljšav svojih vektorskih eXtensions DSP (katerih zmogljivost se je v lanskih 855 štirikrat povečala), niti njihovih skalarnih enot. Vendar ugotavljajo, da so za pospeševalnik tenzorjev tega bloka dosegli štirikrat TOP v primerjavi z različico, predstavljeno lani v Hexagon 695 DSP, hkrati pa lahko ponudi 35 % boljša energetska učinkovitost. To je velika stvar glede na razširjenost arhitektur konvolucijskih nevronskih mrež v sodobnih primerih uporabe umetne inteligence, ki segajo od zaznavanja slikovnih objektov do samodejnega prepoznavanja govora. Kot je razloženo zgoraj, operacija konvolucije v teh omrežjih ustvari 2D niz matričnih izhodov za vsak filter, kar pomeni, da je izhod konvolucijske plasti, ko je zložen skupaj, 3D niz oz tenzor.

Qualcomm je prav tako promoviral svoje "novo in edinstveno" stiskanje pasovne širine globokega učenja tehniko, ki očitno lahko stisnite podatke brez izgube za približno 50 %, po drugi strani premakne polovico podatkov in sprosti pasovno širino za druge dele nabora čipov. Prav tako bi moral varčevati z energijo z zmanjšanjem pretoka podatkov, čeprav nismo prejeli nobenih številk in bi moral biti tudi za stiskanje podatkov majhen strošek energije.

Kar se tiče pasovne širine, Snapdragon 865 podpira Pomnilnik LPDDR5, kar bo koristilo tudi zmogljivosti AI, saj bo povečalo hitrost prenosa virov in vhodnih podatkov. Poleg strojne opreme je Qualcommova novost Komplet orodij za učinkovitost modela AI razvijalcem omogoča preprosto stiskanje modela in posledično prihranke pri energetski učinkovitosti. Nevronske mreže imajo pogosto veliko število "odvečnih" parametrov; na primer, skrite plasti lahko naredijo širše, kot bi morale biti. Ena od funkcij AI Toolkit, o kateri smo razpravljali na odru, je torej stiskanje modela, pri čemer sta dve od navedenih metod prostorska razčlenitev singularne vrednosti (SVD) in bayesova kompresija, obe ki učinkovito obrežejo nevronsko mrežo tako, da se znebijo odvečnih vozlišč in prilagodijo strukturo modela kot potrebno. Druga tehnika stiskanja modela, predstavljena na odru, se nanaša na kvantizacijo in vključuje spreminjanje numerične natančnosti parametrov teže in izračunov aktivacijskega vozlišča.

Numerična natančnost uteži nevronske mreže se nanaša na to, ali so numerične vrednosti, uporabljene za izračun, shranjene, prenesene in obdelane kot 64, 32, 16 (polovična natančnost) ali 8-bitne vrednosti. Uporaba nižje numerične natančnosti (na primer INT8 v primerjavi s FP32) zmanjša skupno porabo pomnilnika in hitrosti prenosa podatkov, kar omogoča večjo pasovno širino in hitrejše sklepanje. Veliko današnjih aplikacij za globoko učenje je prešlo na 8-bitne natančne modele za sklepanje, kar se morda sliši presenetljivo: ali večja numerična natančnost ne bi omogočila bolj "natančnih" napovedi v klasifikaciji ali regresiji naloge? Ni nujno; višja numerična natančnost, zlasti med sklepanjem, je lahko zapravljena, saj so nevronske mreže usposobljene za spopadanje s šumnimi vhodi ali tako ali tako majhne motnje med celotnim treningom in napaka na nižjebitni predstavitvi dane vrednosti (FP) je enotno "naključna" dovolj. V nekem smislu nizko natančnost izračunov omrežje obravnava kot še en vir šuma, napovedi pa ostanejo uporabne. Ne glede na hevristične razlage je verjetno, da boste pri zanič kvantiziranju modela prejeli kazen za natančnost ne da bi upoštevali nekatere pomembne pomisleke, zato je veliko raziskav namenjenih predmet

Nazaj na komplet orodij Qualcomm AI Toolkit: Prek njega ponujajo kvantizacija brez podatkov, ki omogoča kvantiziranje modelov brez natančnega prilagajanja podatkov ali parametrov, medtem ko še vedno dosega skoraj izvirno zmogljivost modela pri različnih nalogah. V bistvu prilagaja parametre uteži za kvantizacijo in popravlja napako pristranskosti, ki nastane pri preklopu na uteži nižje natančnosti. Glede na prednosti, ki jih prinaša kvantizacija, bi avtomatizacija postopka pod klicem API-ja poenostavila izdelavo in uvajanje modela, in Qualcomm trdi več kot štirikratno zmogljivost na vat pri izvajanju kvantiziranega modela.

A spet, to ni šokantno: modeli kvantizacije lahko nudijo izjemne prednosti pasovne širine in shranjevanja. Pretvorba modela v INT8 vam ne prinese le 4-kratnega zmanjšanja pasovne širine, temveč tudi prednost hitrejših celoštevilskih izračunov (odvisno od strojne opreme). Potemtakem ni pametno, da bi strojno pospešeni pristopi k kvantizaciji in numeričnemu izračunu prinesli ogromno povečanje zmogljivosti. Na svojem blogu, na primer, Pete Warden iz Googla je zapisal, da sodelovanje med ekipama Qualcomm in Tensorflow omogoča, da 8-bitni modeli delujejo do sedemkrat hitrejena HVX DSP kot na CPE. Težko je preceniti potencial kvantizacije, ki je preprosta za uporabo, zlasti glede na to, kako se je Qualcomm osredotočil na zmogljivost INT8.

CPU Kryo procesorja Snapdragon 865, ki temelji na procesorju ARM, je še vedno pomembna komponenta motorja AI. Čeprav je strojno pospeševanje, obravnavano v zgornjih odstavkih, zaželeno, včasih mi se ne more izogniti aplikacijam, ki teh blokov ne izkoriščajo pravilno, kar povzroči CPE pasti nazaj. V preteklosti je ARM uvedel posebne nize navodil, namenjenih pospeševanju matričnih in vektorskih izračunov. V procesorjih ARMv7 smo videli uvedbo ARM NEON, razširitve arhitekture SIMD, ki omogoča navodila, podobna DSP. Z mikroarhitekturo ARMv8.4-A smo videli uvedbo navodil posebej za pikčaste izdelke.

Vse te objavljene izboljšave zmogljivosti se nanašajo na številne delovne obremenitve, ki smo jih opisali v prejšnjem razdelku, vendar je prav tako vredno upoštevati, da so te nadgradnje Snapdragon 865 samo najnovejši izboljšave Qualcommovih zmogljivosti AI. Leta 2017 smo dokumentirali njihovo potrojitev zmogljivosti AI s Hexagon 685 DSP in drugimi posodobitvami nabora čipov. Lani so predstavili svoj pospeševalnik tenzorjev, na strojni ravni pa integrirali podporo za nelinearne funkcije (kot je že omenjeni ReLU!). Prav tako so podvojili število vektorskih pospeševalnikov in izboljšali zmogljivost skalarne procesne enote za 20 %. Združitev vsega tega z izboljšavami na strani CPE-ja, kot so tiste hitrejše operacije pikčastih produktov, ki jih omogoča ARM, in dodatni ALU-ji v GPE-ju, Qualcomm končno potrojila tudi surove zmogljivosti AI.

Praktične pridobitve in razširjeni primeri uporabe

Vse te nadgradnje so vodile do petkrat večje zmogljivosti AI na Snapdragon 865 v primerjavi s samo dvema letoma nazaj, vendar kar je morda najpomembnejše, izboljšave so prinesle tudi boljšo zmogljivost na milivat, kar je kritično merilo za mobilne naprave naprave. Na srečanju Snapdragon Summit 2019 nam je Qualcomm ponudil nekaj meril uspešnosti, ki so primerjali njihov AI Engine z dvema konkurentoma v različnih klasifikacijskih omrežjih. Zdi se, da so te številke zbrane z AIMarkom, medplatformsko primerjalno aplikacijo, ki omogoča primerjave z Applovo serijo A in Huaweijevimi procesorji HiSilicon. Qualcomm trdi, da ti rezultati uporabljajo celoten AI Engine in da bomo morali počakati do več temeljito primerjalno analizo, da pravilno ločimo učinek vsake komponente in ugotovimo, kako so bili ti testi izvedeno. Na primer, ali rezultati podjetja B nakazujejo nadomestni procesor? Kolikor vem, AIMark trenutno ne izkorišča prednosti NPU Kirin 990 na naših enotah Mate 30 Pro, na primer. Vendar pa podpira Snapdragon Neural Processing Engine, tako da bo zagotovo izkoristil Qualcomm AI Engine; glede na to, da gre za interno testiranje, ni izrecno jasno, ali merilo uspešnosti pravilno uporablja prave knjižnice ali SDK za svoje konkurente.

Povedati je treba tudi, da Qualcomm učinkovito primerja procesorske zmogljivosti AI procesorja Snapdragon 865 s predhodno napovedanimi ali izdanimi nabori čipov. Zelo verjetno je, da bodo njegovi konkurenti v naslednjem ciklu prinesli podobno učinkovite izboljšave zmogljivosti, in če je to v tem primeru bi Qualcomm držal krono le približno pol leta od trenutka, ko so naprave Snapdragon 865 prišle na prodajne police. Kljub temu so ti še vedno pokazatelji vrste izboklin, ki jih lahko pričakujemo od Snapdragona 865. Qualcomm je bil na splošno zelo natančen pri sporočanju izboljšav zmogljivosti in primerjalnih rezultatih prihajajočih izdaj.

Vsa omrežja, predstavljena v teh merilih uspešnosti, razvrščajo slike iz baz podatkov, kot je ImageNet, jih sprejemajo kot vhodne podatke in izpisujejo eno izmed sto kategorij. Spet se zanašajo na iste vrste operacij, kot smo jih opisali v drugem razdelku, čeprav je njihova arhitektura veliko bolj zapleteni od teh primerov in so v času objave veljali za najsodobnejše rešitve. V najboljšem primeru njihov najbližji tekmec zagotavlja manj kot polovico števila sklepov na sekundo.

Kar zadeva porabo energije, je Qualcomm ponudil sklepe na vat, da bi prikazal količino obdelave umetne inteligence, ki je možna pri dani količini energije. V najboljšem primeru (MobileNet SSD) lahko Snapdragon AI Engine ponudi dvojno število sklepov pri enakem proračunu energije.

Moč je še posebej pomembna za mobilne naprave. Pomislite na primer na filter Snapchat, ki temelji na nevronski mreži. Realno gledano, cevovod računalniškega vida pridobiva informacije o obrazu in uporablja masko ali vnos transformacija mora teči samo s hitrostjo 30 ali 60 zaključkov na sekundo, da doseže tekočino izkušnje. Povečanje zmogljivosti neobdelane umetne inteligence bi vam omogočilo sprejemanje vnosov z višjo ločljivostjo in izpis lepših filtrov, vendar bi lahko prav tako je bolje, da se zadovoljite z ločljivostjo HD za hitrejše nalaganje ter zmanjšanje porabe energije in toplotnega dušenja. V mnogih aplikacijah »hitrejši« ni nujno »boljši«, zato lahko izkoristimo prednosti izboljšane energetske učinkovitosti.

Med 2. dnevom Snapdragon Summita je višji direktor inženiringa pri Snapchatu Yurii Monastyrshyn stopil na oder in pokazal, kako njihove najnovejše filtre, ki temeljijo na globokem učenju, močno pospeši Hexagon Direct NN z uporabo Hexagon 695 DSP na Snapdragonu 865.

Poleg tega saj razvijalci dobijo dostop do lažjih implementacij nevronskih mrež in več aplikacij bo začelo uporabljati tehnike umetne inteligence, bodo primeri sočasne uporabe bolj v središču pozornosti, saj bo moral pametni telefon obravnavati več vzporedni cevovodi AI naenkrat (bodisi za eno aplikacijo, ki obdeluje vhodne signale iz različnih virov, ali pa se več aplikacij izvaja ločeno na napravi). Medtem ko opažamo ugledno povečanje učinkovitosti porabe energije v računalništvu DSP, GPE in CPE, Qualcomm Sensing Hub obravnava vedno vklopljene primere uporabe za poslušanje sprožilnih besed pri zelo nizki porabi energije. Omogoča spremljanje avdio, video in senzorskih virov pri toku pod 1 mA, kar omogoča napravi, da poleg znanih ključnih besed digitalnega pomočnika zazna določene zvočne znake (na primer otroški jok). Na tej opombi Snapdragon 865 omogoča zaznavanje ne le ključne besede, temveč tudi, kdo jo govori, da identificira pooblaščenega uporabnika in ustrezno ukrepa.

Več umetne inteligence na robnih napravah

Te izboljšave lahko na koncu pomenijo oprijemljive koristi za vašo uporabniško izkušnjo. Storitve, ki vključujejo prevajanje, prepoznavanje predmetov in označevanje, napovedi uporabe ali priporočila artiklov, razumevanje naravnega jezika, razčlenjevanje govora in tako naprej bo pridobilo prednost hitrejšega delovanja in manjše porabe moč. Višji računalniški proračun omogoča tudi ustvarjanje novih primerov uporabe in izkušenj ter premikanje procesov, ki so se prej odvijali v oblaku, na vašo napravo. Medtem ko se je AI kot izraz v preteklosti uporabljal na dvomljive, zavajajoče in celo napačne načine (celo proizvajalci originalne opreme), veliko vaših storitev, ki jih uživate danes, se na koncu zanaša na algoritme strojnega učenja v neki obliki oz drugo.

Toda poleg Qualcomma tudi drugi izdelovalci naborov čipov hitro ponavljajo in se izboljšujejo na tem področju. Na primer, 990 5G je prinesel zasnovo jedra 2+1 NPU, kar je povzročilo do 2,5-krat večjo zmogljivost kot Kirin 980 in dvakrat več kot Apple A12. Ko je bil procesor objavljen, je bilo prikazano, da ponuja do dvakrat več sličic (sklepov) na sekundo Snapdragon 855 na INT8 MobileNet, kar je težko primerjati z rezultati Qualcomma. Po drugi strani pa je Apple A13 Bionic domnevno ponujal šestkrat hitrejše množenje matrike v primerjavi s svojim predhodnikom in izboljšal zasnovo osemjedrnega nevronskega motorja. Počakati bomo morali, dokler ne bomo lahko pravilno preizkusili Snapdragon 865 na komercialnih napravah v primerjavi z njegovimi sedanjimi in prihodnjimi konkurenti, vendar je Jasno je, da konkurenca na tem področju nikoli ne miruje, saj so tri podjetja vložila ogromno sredstev v izboljšanje svoje umetne inteligence. izvedba.