Cum a făcut Qualcomm îmbunătățiri uriașe în inteligența artificială pe Snapdragon 865

Qualcomm a făcut salturi uriașe în performanța AI cu noul SoC Snapdragon 865. Analizăm schimbările pe care Qualcomm le-a făcut pentru a accelera învățarea automată.

Se pare că nu putem trece o zi fără să vedem „inteligență artificială” în știri, iar săptămâna trecută nu a făcut excepție în mare măsură datorită Snapdragon Tech Summit. În fiecare an, Qualcomm dezvăluie multitudinea de îmbunătățiri pe care le aduce Hexagon DSP și Qualcomm AI Engine. un termen pe care îl folosesc pentru întreaga lor platformă de calcul eterogenă - CPU, GPU și DSP - când vorbesc despre AI sarcinile de lucru. În urmă cu câțiva ani, insistența Qualcomm de a îndepărta conversația de la punctele de discuție tradiționale, cum ar fi îmbunătățirea performanței CPU de la an la an, părea puțin ciudată. Cu toate acestea, în 2019 și cu Snapdragon 865, vedem că calculul eterogen este într-adevăr la cârma impulsului lor de calcul mobil, ca AI iar sarcinile de lucru accelerate de hardware par să se strecoare într-o gamă largă de cazuri de utilizare și aplicații, de la rețelele sociale până la cele de zi cu zi. Servicii.

Snapdragon 865 aduce motorul AI de generația a 5-a de la Qualcomm și, odată cu acesta, vin îmbunătățiri suculente în performanță și eficiență energetică -- dar asta este de așteptat. Într-o mare de specificații, cifre de performanță, termeni de inginerie fantezi și cuvinte de marketing obositoare, este ușor să pierdeți din vedere ce înseamnă de fapt aceste îmbunătățiri. Ce descriu ele? De ce sunt aceste upgrade-uri atât de semnificative pentru cei care implementează AI în aplicațiile lor astăzi și, poate, mai important, pentru cei care doresc să facă acest lucru în viitor?

În acest articol, vom face un tur abordabil, dar detaliat al motorului Qualcomm AI, parcurgând istoria acestuia, componentele sale și upgrade-urile lui Snapdragon 865 și, cel mai important, De ce sau Cum fiecare dintre acestea a contribuit la experiența smartphone-urilor de astăzi, de la filtre amuzante la asistenți digitali.

Hexagon DSP și Qualcomm AI Engine: Când brandingul face diferența

Deși nu am putut participa la Snapdragon Tech Summit de săptămâna aceasta, am participat totuși la toate celelalte din 2015. Dacă vă amintiți, acea a fost anul dezordinei fierbinți care a fost Snapdragon 810, așa că jurnaliștii de la acel loft Chelsea din New York erau dornici să afle cum Snapdragon 820 va răscumpăra compania. Și a fost un chipset grozav, în regulă: a promis îmbunătățiri sănătoase de performanță (fără nicio limitare) prin întoarcerea la nucleele personalizate, încercate și adevărate, pentru care era cunoscut Qualcomm. Cu toate acestea, îmi amintesc și un anunț foarte subtil care, retrospectiv, ar fi trebuit să primească mai multă atenție: the Hexagon 680 DSP de a doua generație și extensiile vectoriale Hexagon Vector cu instrucțiune unică, date multiple (SIMD) sau HVX. Poate că dacă inginerii nu ar fi numit caracteristica, ar fi primit atenția pe care o merita.

Acest coprocesor permite firelor hardware ale unității DSP scalare să acceseze „contextele” HVX (fișiere de înregistrare) pentru capabilități largi de procesare vectorială. Acesta a permis descărcarea unor sarcini de lucru semnificative de calcul de la procesorul sau GPU-ul consumatoare de energie către DSP eficient din punct de vedere energetic, astfel încât sarcinile de imagistică și viziune pe computer să ruleze la performanțe substanțial îmbunătățite pe miliwatt. Sunt perfecte pentru aplicarea operațiunilor identice pe elemente vectoriale învecinate (inițial doar numere întregi), făcându-le potrivite pentru sarcinile de lucru de viziune computerizată. Am scris un articol aprofundat despre DSP și HVX în trecut, observând că arhitectura HVX se pretează bine paralelizării și, evident, procesării vectorilor de intrare mari. La acea vreme, Qualcomm a promovat atât DSP, cât și HVX aproape exclusiv, descriind îmbunătățirile pe care le-au ar aduce asupra vederii computerizate sarcini de lucru, cum ar fi detectorul de colț Harris și alte ferestre glisante metode.

Abia după apariția învățării profunde în aplicațiile mobile pentru consumatori, DSP, vectorul său unitățile de procesare (și acum, un accelerator tensor) s-ar căsători cu AI și rețelele neuronale, în special. Dar privind în urmă, este perfect logic: arhitectura procesorului de semnal digital (DSP), concepută inițial pentru manipularea datelor digitizate. intrări de semnal din lumea reală sau analogică, se pretează la multe dintre aceleași sarcini de lucru ca mulți algoritmi de învățare automată și neuronale. retelelor. De exemplu, DSP-urile sunt adaptate pentru nuclee de filtrare, operații de convoluție și corelare, calcule pe 8 biți, o tonă de algebră liniară (produse vectoriale și matrice) și operații de multiplicare-acumulare (MAC), toate cele mai eficiente atunci când paralelizate. Timpul de rulare al unei rețele neuronale este, de asemenea, foarte dependent de multiplicarea vectorilor mari, matricelor și/sau tensoarelor, deci este firesc ca avantajele de performanță ale DSP-ului să se traducă în mod clar în arhitecturile rețelelor neuronale ca bine. Vom revizui pe scurt acest subiect!

În anii următori, Qualcomm a continuat să sublinieze că nu oferă doar chipset-uri, dar platforme mobile, și că nu se concentrează doar privind îmbunătățirea anumitor componente, dar furnizarea de calcul „eterogen”. În 2017, au lansat SDK-ul Snapdragon Neural Processing Engine (pentru accelerarea timpului de rulare) pe Qualcomm Developer Network, iar la începutul lui 2018 a anunțat Qualcomm Artificial Intelligence Engine pentru a-și consolida mai multe componente hardware (CPU, GPU, DSP) și software capabile de inteligență artificială într-un singur Nume. Cu această nomenclatură utilă, ei au putut să-și facă publicitate cu atenție îmbunătățirile performanței AI atât pe Snapdragon 855, cât și pe Snapdragon 865, fiind capabil să precizeze confortabil numărul de trilioane de operațiuni pe secundă (TOPS) și procentul de la an la an îmbunătățiri. Valorificarea îmbunătățirilor generaționale ale procesorului, GPU-ului și DSP - toate își văd propriile lor concentrate pe AI upgrade-uri - compania este capabilă să publice benchmark-uri impresionante față de concurenți, pe care le vom analiza pe scurt. Odată cu eforturile recente de marketing ale companiei și mesajele unificate și consecvente privind computerele eterogene, branding-ul lor AI câștigă în sfârșit popularitate printre jurnaliști și pasionați de tehnologie.

Demistificarea rețelelor neuronale: un morman banal de algebră liniară

Pentru a dezlega o mulțime de jargon pe care le vom întâlni mai târziu în articol, avem nevoie de un scurt primer ce este o rețea neuronală și de ce ai nevoie pentru a o face mai repede. Vreau să trec pe scurt peste câteva dintre bazele matematice ale rețelelor neuronale, evitând cât mai mult jargon și notație posibil. Scopul acestei secțiuni este pur și simplu de a identifica ce face o rețea neuronală, în principal: operatiile aritmetice execută, mai degrabă decât baza teoretică care justifică operațiunile menționate (care este mult mai complicat!). Nu ezitați să treceți la următoarea secțiune dacă doriți să treceți direct la actualizările Qualcomm AI Engine.

„Matematica vectorială este fundamentul învățării profunde.” – Travis Lanier, Senior Director of Product Management la Qualcomm la Snapdragon Tech Summit 2017

Mai jos veți găsi o diagramă de rețea neuronală complet conectată cu feedforward foarte tipică. În realitate, diagrama face ca întregul proces să pară puțin mai complicat decât este (cel puțin, până te obișnuiești cu el). Vom calcula o trecere înainte, care este în cele din urmă ceea ce face o rețea ori de câte ori produce un deducere, un termen pe care îl vom întâlni și mai târziu în articol. Momentan, ne vom ocupa doar de mașină și piesele sale, cu scurte explicații ale fiecărei componente.

O rețea neuronală este formată din secvențial straturi, fiecare compus din mai mulți „neuroni” (reprezentați ca cercuri în diagramă) conectați prin greutăți (prezentat ca linii în diagramă). În termeni generali, există trei tipuri de straturi: cel stratul de intrare, care preia intrarea brută; straturi ascunse, care calculează operații matematice din stratul anterior și stratul de ieșire, care oferă previziunile finale. În acest caz, avem un singur strat ascuns, cu trei unități ascunse. The intrare constă dintr-un vector, o matrice sau o listă de numere cu o anumită dimensiune sau lungime. În exemplu, vom avea o intrare bidimensională, să spunem [1.0, -1.0]. Aici ieșire al rețelei constă dintr-un număr scalar sau unic (nu o listă). Fiecare unitate ascunsă este asociată cu un set de greutăți si a termen de părtinire, afișat lângă și sub fiecare nod. Pentru a calcula suma ponderata ieșirea unei unități, fiecare greutate este înmulțită cu fiecare intrare corespunzătoare și apoi produsele sunt adunate. Apoi, vom adăuga pur și simplu termenul de părtinire la acea sumă de produse, rezultând producția neuronului. De exemplu, cu contribuția noastră de [1.0,-1.0], prima unitate ascunsă va avea o ieșire de 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Simplu, nu?

Următorul pas din diagramă reprezintă un functia de activare, și este ceea ce ne va permite să producem vectorul de ieșire al fiecărui strat ascuns. În cazul nostru, vom folosi cel foarte popular și extrem de simplu unitate liniară rectificată sau ReLU, care va lua un număr de intrare și va scoate fie (i) zero, dacă acel număr este negativ, fie zero (ii) numărul de intrare în sine, dacă numărul este pozitiv. De exemplu, ReLU(-0,1) = 0, dar ReLU(0,1) = 0,1. Urmând exemplul intrării noastre ca acesta se propagă prin acea primă unitate ascunsă, ieșirea de 1.1 pe care am calculat-o ar fi trecută în funcția de activare, rezultând ReLU(1,1)=1,1. Stratul de ieșire, în acest exemplu, va funcționa la fel ca o unitate ascunsă: va înmulți ieșirile unităților ascunse față de ponderile sale și apoi va adăuga termenul său de părtinire de 0.2. Ultima funcție de activare, cea functie de pas, va transforma intrările pozitive în 1 și valorile negative în 0. Știind cum funcționează fiecare dintre operațiile din rețea, putem scrie calculul complet al inferenței noastre după cum urmează:

Asta este tot ce există în calculul rețelei neuronale feedforward. După cum puteți vedea, operațiunile constau aproape în întregime din produse și sume de numere. Funcția noastră de activare ReLU(x) poate fi implementat și foarte ușor, de exemplu prin simpla apelare max (x, 0), astfel încât returnează x ori de câte ori intrarea este mai mare decât 0, dar în caz contrar returnează 0. Rețineți că pasul (x) poate fi calculat în mod similar. Există multe funcții de activare mai complicate, cum ar fi funcția sigmoidală sau tangentă hiperbolică, care implică diferite calcule interne și sunt mai potrivite pentru diferite scopuri. Un alt lucru pe care îl puteți observa deja este că și noi poate rula calculele celor trei unități ascunse și aplicațiile lor ReLU, în paralel, deoarece valorile lor nu sunt necesare în același timp până când le calculăm suma ponderată la nodul de ieșire.

Dar nu trebuie să ne oprim aici. Mai sus, puteți vedea același calcul, dar de data aceasta reprezentat cu operații de multiplicare matrice și vectorială. Pentru a ajunge la această reprezentare, ne „augmentăm” vectorul de intrare adăugându-i un 1.0 (nuanță mai deschisă), astfel încât atunci când punem ponderile și părtinirea noastră (nuanță mai deschisă) în matrice, așa cum se arată mai sus, înmulțirea rezultată dă aceeași unitate ascunsă iesiri. Apoi, putem aplica ReLU pe vectorul de ieșire, din punct de vedere al elementelor, și apoi „augmentăm” ieșirea ReLU pentru a o înmulți cu ponderile și părtinirea stratului nostru de ieșire. Această reprezentare simplifică foarte mult notarea, deoarece parametrii (greutăți și părtiniri) ai unui întreg strat ascuns pot fi ascunși sub o singură variabilă. Dar, cel mai important pentru noi, este clar că calculele interne ale rețelei sunt în esență multiplicarea matriceală și vectorială sau produse punctiforme. Având în vedere modul în care dimensiunea acestor vectori și matrice se scalează în funcție de dimensionalitatea intrărilor noastre și de numărul de parametri din rețeaua noastră, cea mai mare parte a timpului de rulare va fi cheltuită făcând astfel de calcule. O grămadă de algebră liniară!

Exemplul nostru de jucărie este, desigur, foarte sferă limitată. În practică, modelele moderne de învățare profundă pot avea zeci, dacă nu sute de straturi ascunse și milioane de parametri asociați. În loc de exemplul nostru de intrare vectorială bidimensională, ei pot prelua vectori cu mii de intrări, într-o varietate de forme, cum ar fi matrice (cum ar fi imagini cu un singur canal) sau tensori (RGB cu trei canale) imagini). De asemenea, nimic nu împiedică reprezentarea noastră matriceală să preia mai multe vectori de intrare simultan, prin adăugarea de rânduri la intrarea noastră originală. Rețelele neuronale pot fi, de asemenea, „cablate” în mod diferit față de rețeaua neuronală feedforward sau pot executa diferite funcții de activare. Există o grădina zoologică vastă de arhitecturi și tehnici de rețea, dar în cele din urmă, acestea Mai ales descompune la aceleași operații aritmetice paralele pe care le găsim în exemplul nostru de jucărie, doar la o scară mult mai mare.

Exemplu vizual de straturi de convoluție care funcționează pe un tensor. (Credit imagine: Spre știința datelor)

De exemplu, popularul rețele neuronale convoluționale (CNN) despre care probabil ați citit nu sunt „complet conectate” ca și rețeaua noastră simulată. „Greutățile” sau parametrii ascunse straturi convoluționale poate fi considerată ca un fel de filtru, o fereastră glisantă aplicată secvențial pe mici patch-uri ale unei intrări, așa cum se arată mai sus - această „convoluție” este de fapt doar un produs cu puncte glisante! Această procedură are ca rezultat ceea ce se numește adesea a harta caracteristicilor. Straturile de grupare reduc dimensiunea unei intrări sau a ieșirii unui strat convoluțional, calculând valoarea maximă sau medie a unor pete mici ale imaginii. Restul rețelei constă de obicei din straturi complet conectate, precum cele din exemplul nostru și funcții de activare precum ReLU. Acesta este adesea folosit pentru extragerea de caracteristici în imaginile în care hărțile de caracteristici ale straturilor convoluționale timpurii pot „detecta” modele, cum ar fi linii sau margini, și straturile ulterioare pot detecta caracteristici mai complicate, cum ar fi fețele sau complexe. forme.

Tot ce s-a spus este limitată strict la inferență, sau evaluarea unei rețele neuronale după ce parametrii acesteia au fost găsiți Instruire care este o procedură mult mai complicată. Și din nou, am exclus o mulțime de explicații. În realitate, fiecare dintre componentele rețelei este inclusă cu un scop. De exemplu, cei dintre voi care au studiat algebra liniară pot observa cu ușurință că fără funcții de activare neliniară, rețeaua noastră se simplifică la un model liniar cu predicție foarte limitată capacitate.

Un motor AI îmbunătățit pe Snapdragon 865 - Un rezumat al îmbunătățirilor

Cu această înțelegere la îndemână a componentelor unei rețele neuronale și a operațiilor lor matematice, putem începe să înțelegem exact de ce accelerarea hardware este atât de importantă. În ultima secțiune, putem observa că paralelizarea este vitală pentru a accelera rețeaua dată ne permite, de exemplu, să calculăm mai multe produse punctiforme paralele corespunzătoare fiecărui neuron activare. Fiecare dintre aceste produse-punct este în sine constituit din operații de multiplicare-adunare pe numere, de obicei cu precizie de 8 biți în cazul aplicațiilor mobile, care trebuie să se întâmple cât mai repede posibil. Motorul AI oferă diverse componente pentru a descărca aceste sarcini, în funcție de considerentele de performanță și eficiență energetică ale dezvoltatorului.

O diagramă a unui CNN pentru setul de date popular MNIST, prezentată pe scenă la Snapdragon Summit din acest an. Unitatea de procesare vectorială este potrivită pentru straturile complet conectate, ca în exemplul nostru simulat. Între timp, procesorul tensor se ocupă de straturile convoluționale și de grupare care procesează alunecarea multiplă nuclee în paralel, ca în diagrama de mai sus, și fiecare strat convoluțional poate scoate multe caracteristici separate hărți.

În primul rând, să ne uităm la GPU, despre care vorbim de obicei în contextul jocurilor 3D. Piața de consum pentru jocuri video a stimulat dezvoltarea hardware-ului de procesare grafică de zeci de ani, dar de ce sunt GPU-urile atât de importante pentru rețelele neuronale? Pentru început, ei mistecă liste masive de coordonate 3D ale vârfurilor poligoanelor simultan pentru a ține evidența stării lumii în joc. GPU-ul trebuie, de asemenea, să efectueze operații gigantice de multiplicare a matricei pentru a converti (sau a mapa) aceste 3D coordonate pe plan 2D, coordonate de pe ecran și, de asemenea, gestionează informațiile de culoare ale pixelilor din interior paralel. În plus, oferă o lățime de bandă mare de memorie pentru a gestiona tamponurile masive de memorie pentru hărțile de biți de textură suprapuse pe geometria din joc. Avantajele sale în paralelizare, lățimea de bandă a memoriei și capabilitățile rezultate de algebră liniară corespund cerințelor de performanță ale rețelelor neuronale.

Linia GPU Adreno are astfel un rol important în Qualcomm AI Engine, iar pe scenă, Qualcomm a declarat că această componentă actualizată a Snapdragon 865 permite de două ori mai multe capacități în virgulă mobilă și de două ori numărul de TOPS comparativ cu generația anterioară, ceea ce este surprinzător având în vedere că au înregistrat doar o creștere a performanței cu 25% pentru randarea grafică. Cu toate acestea, pentru această versiune, compania se mândrește cu un Creștere cu 50% a numărului de unități aritmetice logice (ALU), deși, ca de obicei, nu și-au dezvăluit frecvențele GPU. Qualcomm a enumerat, de asemenea, precizia mixtă instrucțiuni, care este exact ceea ce sună: precizie numerică diferită între operații într-o singură metodă de calcul.

Hexagon 698 DSP este locul în care vedem o mare parte din câștigurile de performanță oferite de Snapdragon 865. În acest an, compania nu a comunicat îmbunătățiri ale extensiilor vectoriale ale DSP-ului (a căror performanță s-a dublat de patru ori în 855 de anul trecut) și nici unităților scalare. Cu toate acestea, ei notează că pentru Tensor Accelerator al acestui bloc, au reușit de patru ori TOP-urile comparativ cu versiunea introdusă anul trecut în Hexagon 695 DSP, putând oferi totodată Eficiență energetică cu 35% mai bună. Aceasta este o problemă importantă, având în vedere prevalența arhitecturilor de rețele neuronale convoluționale în cazurile moderne de utilizare a AI, de la detectarea obiectelor de imagine până la recunoașterea automată a vorbirii. După cum sa explicat mai sus, operația de convoluție în aceste rețele produce o matrice 2D de ieșiri matrice pentru fiecare filtru, ceea ce înseamnă că atunci când sunt stivuite împreună, rezultatul unui strat de convoluție este o matrice 3D sau tensor.

Qualcomm și-a promovat, de asemenea, „noul și unic” comprimarea lățimii de bandă de învățare profundă tehnică, care aparent poate comprimați datele fără pierderi cu aproximativ 50%, la rândul său, mută jumătate din date și eliberează lățime de bandă pentru alte părți ale chipset-ului. De asemenea, ar trebui să economisească energie prin reducerea volumului de date, deși nu ni s-au dat cifre și ar trebui să existe și un cost mic de energie pentru comprimarea datelor.

În ceea ce privește lățimea de bandă, Snapdragon 865 este compatibil memorie LPDDR5, care va beneficia și de performanța AI, deoarece va crește viteza cu care resursele și datele de intrare sunt transferate. Dincolo de hardware, Qualcomm este nou Setul de instrumente pentru eficiența modelului AI pune la dispoziția dezvoltatorilor compresia ușoară a modelului și economiile rezultate din eficiența energiei. Rețelele neuronale au adesea un număr mare de parametri „redundanți”; de exemplu, ele pot face straturi ascunse mai largi decât ar trebui să fie. Una dintre caracteristicile AI Toolkit discutate pe scenă este astfel compresia modelului, cu două dintre metodele citate fiind descompunerea spațială a valorii singulare (SVD) și compresia bayesiană, ambele care tund efectiv rețeaua neuronală scăpând de nodurile redundante și ajustând structura modelului ca necesar. Cealaltă tehnică de compresie a modelului prezentată pe scenă se referă la cuantizare și aceasta implică modificarea preciziei numerice a parametrilor de greutate și calculele nodurilor de activare.

Precizia numerică a greutăților rețelei neuronale se referă la dacă valorile numerice utilizate pentru calcul sunt stocate, transferate și procesate ca valori de 64, 32, 16 (precizie pe jumătate) sau de 8 biți. Utilizarea unei precizii numerice mai reduse (de exemplu, INT8 versus FP32) reduce utilizarea generală a memoriei și vitezele de transfer de date, permițând o lățime de bandă mai mare și inferențe mai rapide. Multe dintre aplicațiile de învățare profundă de astăzi au trecut la modele de precizie pe 8 biți pentru inferență, ceea ce ar putea suna surprinzător: acuratețea numerică mai mare nu ar permite predicții mai „precise” în clasificare sau regresie sarcini? Nu neaparat; o precizie numerică mai mare, în special în timpul inferenței, poate fi irosită pe măsură ce rețelele neuronale sunt antrenate să facă față intrărilor zgomotoase sau oricum mici perturbări de-a lungul antrenamentului, iar eroarea pe reprezentarea pe biți inferiori a unei valori date (FP) este uniform „aleatorie” suficient. Într-un fel, precizia scăzută a calculelor este tratată de rețea ca o altă sursă de zgomot, iar predicțiile rămân utilizabile. Lăsând la o parte explicatorii euristici, este probabil să acumulați o penalizare de precizie atunci când cuantificați în mod prost un model fără a ține cont de unele considerații importante, motiv pentru care se fac multe cercetări în domeniul subiect

Înapoi la Setul de instrumente Qualcomm AI: prin intermediul acestuia oferă cuantificare fără date, permițând modelelor să fie cuantificate fără date sau reglaj fin al parametrilor, obținând totuși performanțe aproape originale ale modelului pentru diverse sarcini. În esență, adaptează parametrii de greutate pentru cuantizare și corectează eroarea de polarizare introdusă la trecerea la greutăți de precizie mai mică. Având în vedere beneficiile aduse de cuantificare, automatizarea procedurii în cadrul unui apel API ar simplifica producția și implementarea modelului, iar Qualcomm susține performanță de peste patru ori mai mare pe watt la rularea modelului cuantificat.

Dar, din nou, acest lucru nu este șocant: modelele de cuantizare pot oferi beneficii uriașe de lățime de bandă și stocare. Convertirea unui model la INT8 nu numai că vă aduce o reducere de 4 ori a lățimii de bandă, ci și beneficiul unor calcule întregi mai rapide (în funcție de hardware). Prin urmare, este o idee deloc că abordările accelerate de hardware atât pentru cuantificare, cât și pentru calculul numeric ar produce câștiguri masive de performanță. Pe blogul lui, de exemplu, Pete Warden de la Google a scris că o colaborare între echipele Qualcomm și Tensorflow permite modelelor pe 8 biți să ruleze până la de șapte ori mai rapidpe HVX DSP decât pe CPU. Este greu de exagerat potențialul cuantizării ușor de utilizat, în special având în vedere modul în care Qualcomm s-a concentrat pe performanța INT8.

Procesorul Kryo bazat pe ARM al lui Snapdragon 865 este încă o componentă importantă a motorului AI. Chiar dacă accelerarea hardware discutată în paragrafele de mai sus este de preferată, uneori noi nu pot evita aplicațiile care nu profită în mod corespunzător de aceste blocuri, rezultând CPU da înapoi. În trecut, ARM a introdus seturi de instrucțiuni specifice menite să accelereze calculele bazate pe matrice și vectori. În procesoarele ARMv7, am văzut introducerea ARM NEON, o extensie de arhitectură SIMD care permite instrucțiuni asemănătoare DSP. Și cu microarhitectura ARMv8.4-A, am văzut introducerea unei instrucțiuni specifice pentru produse punct.

Toate aceste câștiguri de performanță postate se referă la multe dintre sarcinile de lucru pe care le-am descris în secțiunea anterioară, dar merită să rețineți că aceste upgrade-uri Snapdragon 865 sunt doar cele mai recente îmbunătățiri ale capabilităților AI ale Qualcomm. În 2017, am documentat triplarea capacităților AI cu Hexagon 685 DSP și alte actualizări ale chipset-ului. Anul trecut, ei și-au introdus acceleratorul tensor și au integrat suport pentru funcții de neliniaritate (cum ar fi ReLU menționat mai sus!) la nivel hardware. De asemenea, au dublat numărul de acceleratoare vectoriale și au îmbunătățit performanța unității de procesare scalară cu 20%. Îmbinând toate acestea cu îmbunătățiri pe partea procesorului, cum ar fi acele operațiuni mai rapide cu produse punctuale, prin amabilitatea ARM și ALU-uri suplimentare din GPU, Qualcomm în cele din urmă triplat capabilități brute de inteligență artificială.

Câștiguri practice și cazuri de utilizare extinse

Toate aceste upgrade-uri au dus la capacitățile AI de cinci ori mai mari ale Snapdragon 865, comparativ cu doar doi ani în urmă, dar Poate cel mai important, îmbunătățirile au venit și cu o performanță mai bună pe miliwatt, o măsură critică pentru mobil dispozitive. La Snapdragon Summit 2019, Qualcomm ne-a oferit câteva puncte de referință comparând motorul lor AI cu doi concurenți din diferite rețele de clasificare. Aceste cifre par să fie colectate folosind AIMark, o aplicație de analiză comparativă multiplatformă, care permite comparații cu procesoarele din seria A de la Apple și cu procesoarele HiSilicon de la Huawei. Qualcomm susține că aceste rezultate folosesc întregul motor AI și va trebui să așteptăm mai multe benchmarking amănunțit pentru a dezlega în mod corespunzător efectul fiecărei componente și a determina cum au fost aceste teste condus. De exemplu, rezultatele de la compania B indică CPU de rezervă? Din câte știu, AIMark nu beneficiază în prezent de NPU-ul Kirin 990 pe unitățile noastre Mate 30 Pro, de exemplu. Dar acceptă motorul de procesare neuronală Snapdragon, așa că va profita cu siguranță de Qualcomm AI Engine; Având în vedere că este vorba de testare internă, nu este clar în mod explicit dacă benchmark-ul utilizează în mod corespunzător bibliotecile sau SDK-urile potrivite pentru concurenții săi.

De asemenea, trebuie spus că Qualcomm compară eficient capacitățile de procesare AI ale Snapdragon 865 cu chipset-urile anunțate sau lansate anterior. Este foarte probabil ca concurenții săi să aducă îmbunătățiri de performanță cu impact similar în următorul ciclu și, dacă asta este În acest caz, Qualcomm ar deține coroana doar aproximativ o jumătate de an din momentul în care dispozitivele Snapdragon 865 au ajuns pe rafturi. Acestea fiind spuse, acestea sunt încă indicative ale tipului de denivelări la care ne putem aștepta de la Snapdragon 865. Qualcomm a fost, în general, foarte precis atunci când a comunicat îmbunătățiri de performanță și rezultate de referință ale lansărilor viitoare.

Toate rețelele prezentate în aceste benchmark-uri clasifică imagini din baze de date precum ImageNet, le primesc ca intrări și scot una din sutele de categorii. Din nou, se bazează pe aceleași tipuri de operațiuni pe care le-am descris în a doua secțiune, deși arhitecturile lor sunt foarte multe mai complicate decât aceste exemple și au fost considerate soluții de ultimă generație la momentul publicării lor. În cele mai bune cazuri, cel mai apropiat concurent al lor oferă mai puțin de jumătate din numărul de inferențe pe secundă.

În ceea ce privește consumul de energie, Qualcomm a oferit inferențe per wat pentru a arăta cantitatea de procesare AI posibilă într-o anumită cantitate de putere. În cele mai bune cazuri (MobileNet SSD), Snapdragon AI Engine poate oferi un număr dublu de inferențe cu același buget de putere.

Puterea este deosebit de importantă pentru dispozitivele mobile. Gândiți-vă, de exemplu, la un filtru Snapchat bazat pe rețeaua neuronală. În mod realist, conducta de viziune computerizată extrage informații faciale și aplică o mască sau o intrare transformarea trebuie doar să ruleze cu o rată de 30 sau 60 de completări pe secundă pentru a obține un fluid experienţă. Creșterea performanței brute AI v-ar permite să luați intrări cu rezoluție mai mare și să scoateți filtre mai arătătoare, dar ar putea De asemenea, este de preferat să vă mulțumiți cu rezoluția HD pentru încărcări mai rapide și pentru a reduce consumul de energie și limitarea termică. În multe aplicații, „mai rapid” nu este neapărat „mai bun”, iar apoi se obține beneficiile unei eficiențe energetice îmbunătățite.

În timpul Zilei 2 a Summit-ului Snapdragon, directorul senior de inginerie la Snapchat Yurii Monastyrshyn a urcat pe scenă pentru a arăta cum cele mai recente filtre bazate pe învățarea profundă sunt accelerate foarte mult de Hexagon Direct NN folosind Hexagon 695 DSP pe Snapdragon 865.

Pe deasupra, pe măsură ce dezvoltatorii au acces la implementări mai ușoare ale rețelelor neuronale iar mai multe aplicații încep să folosească tehnici AI, cazurile de utilizare simultană vor fi mai mult în centrul atenției, deoarece smartphone-ul va trebui să gestioneze mai multe conducte AI paralele simultan (fie pentru o singură aplicație care procesează semnale de intrare din diverse surse, fie cât mai multe aplicații rulează separat pe dispozitiv). În timp ce vedem câștiguri respectabile de eficiență energetică în DSP de calcul, GPU și CPU, Qualcomm Sensing Hub gestionează cazurile de utilizare mereu activate pentru a asculta cuvintele declanșatoare la un consum foarte scăzut de energie. Permite monitorizarea fluxurilor audio, video și senzorilor la sub 1 mA de curent, permițând dispozitivului să detecteze anumite semnale sonore (cum ar fi un copil care plânge), pe lângă cuvintele cheie familiare ale asistentului digital. În această notă, Snapdragon 865 permite detectarea nu doar a cuvântului cheie, ci și a celor care îl vorbește, pentru a identifica un utilizator autorizat și a acționa în consecință.

Mai mult AI pe dispozitivele Edge

Aceste îmbunătățiri se pot traduce în cele din urmă în beneficii tangibile pentru experiența dvs. de utilizator. Servicii care implică traducerea, recunoașterea și etichetarea obiectelor, predicții de utilizare sau recomandări de articole, Înțelegerea limbajului natural, analiza vorbirii și așa mai departe vor câștiga beneficiul operațiunii mai rapide și a consumului mai puțin putere. Având un buget de calcul mai mare, permite, de asemenea, crearea de noi cazuri de utilizare și experiențe și mutarea proceselor care aveau loc în cloud pe dispozitivul dvs. În timp ce AI ca termen a fost folosit în moduri dubioase, înșelătoare și chiar eronate în trecut (chiar și de către OEM), multe dintre serviciile dvs. de care vă bucurați astăzi se bazează în cele din urmă pe algoritmi de învățare automată într-o anumită formă sau o alta.

Dar dincolo de Qualcomm, alți producători de chipset-uri au repetat și s-au îmbunătățit rapid și pe acest front. De exemplu, 990 5G a adus un design de bază 2+1 NPU, rezultând performanțe de până la 2,5 ori mai mari decât Kirin 980 și de două ori mai mari decât Apple A12. Când procesorul a fost anunțat, s-a demonstrat că oferă până la de două ori mai multe cadre (inferențe) pe secundă a Snapdragon 855 la INT8 MobileNet, care este greu de comparat cu rezultatele oferite de Qualcomm. Apple A13 Bionic, pe de altă parte, ar fi oferit o multiplicare a matricei de șase ori mai rapidă față de predecesorul său și și-a îmbunătățit designul motorului neuronal cu opt nuclee. Va trebui să așteptăm până când vom putea testa corect Snapdragon 865 pe dispozitive comerciale față de concurenții săi actuali și viitori, dar este clar că concurența în acest spațiu nu rămâne niciodată nemișcată, deoarece cele trei companii au turnat o mulțime de resurse pentru a-și îmbunătăți AI performanţă.