Qualcomm je napravio velike skokove u performansama umjetne inteligencije s novim Snapdragon 865 SoC. Analiziramo promjene koje je Qualcomm napravio kako bi ubrzao strojno učenje.
Čini se da ne može proći dan a da ne vidimo "umjetnu inteligenciju" u vijestima, a prošli tjedan nije bio iznimka u velikoj mjeri zahvaljujući Snapdragon Tech Summitu. Svake godine Qualcomm otkriva mnoštvo poboljšanja koja donosi u svoj Hexagon DSP i Qualcomm AI Engine, izraz koji koriste za svoju cjelokupnu heterogenu računalnu platformu - CPU, GPU i DSP - kada govore o umjetnoj inteligenciji radna opterećenja. Prije nekoliko godina, Qualcommovo inzistiranje na odmicanju razgovora od tradicionalnih tema, kao što su poboljšanja performansi CPU-a iz godine u godinu, činilo se pomalo čudnim. Ipak, 2019. i sa Snapdragonom 865, vidimo da je heterogeno računalstvo doista na čelu njihovog pokreta mobilnog računalstva, kao AI i čini se da se hardverski ubrzana radna opterećenja ušuljaju u širok raspon slučajeva upotrebe i aplikacija, od društvenih medija do svakodnevnih usluge.
Snapdragon 865 donosi Qualcommov AI motor 5. generacije, a s njim dolaze i sočna poboljšanja u performansama i energetskoj učinkovitosti -- ali to je za očekivati. U moru specifikacija, brojki performansi, otmjenih inženjerskih izraza i zamornih marketinških poštapalica, lako je izgubiti iz vida što ta poboljšanja zapravo znače. Što oni opisuju? Zašto su ove nadogradnje toliko značajne za one koji danas implementiraju AI u svoje aplikacije, i možda još važnije, za one koji to žele učiniti u budućnosti?
U ovom ćemo članku krenuti u pristupačan, ali temeljit obilazak Qualcomm AI Enginea pročešljavajući njegovu povijest, njegove komponente i nadogradnje Snapdragona 865, i što je najvažnije, zašto ili kako svaki od njih pridonio je današnjem iskustvu pametnih telefona, od smiješnih filtara do digitalnih pomoćnika.
Hexagon DSP i Qualcomm AI Engine: kada brendiranje čini razliku
Iako nisam mogao prisustvovati ovotjednom Snapdragon Tech Summitu, ipak sam prisustvovao svakom drugom od 2015. godine. Ako se sjećate, da bila je godina vrućeg nereda koji je bio Snapdragon 810, pa su novinari u tom potkrovlju u Chelseaju u New Yorku jedva čekali saznati kako će Snapdragon 820 iskupiti tvrtku. I bio je to izvrstan čipset, u redu: obećavao je zdrava poboljšanja performansi (bez prigušivanja) vraćanjem na tada isprobane prilagođene jezgre po kojima je Qualcomm bio poznat. Ipak, također se sjećam vrlo suptilne najave koja je, retrospektivno, trebala dobiti više pažnje: druga generacija Hexagon 680 DSP i njegove pojedinačne instrukcije, više podataka (SIMD) Hexagon Vector eXtensions, ili HVX. Da inženjeri nisu imenovali tu značajku, možda bi dobila pozornost koju zaslužuje.
Ovaj koprocesor omogućuje hardverskim nitima skalarne DSP jedinice pristup HVX "kontekstima" (datotekama registra) za široke mogućnosti vektorske obrade. Omogućio je rasterećenje značajnog računalnog opterećenja s CPU-a ili GPU-a gladnog energije na energetski učinkovit DSP kako bi zadaci obrade slika i računalnog vida radili sa znatno poboljšanim performansama po milivatu. Savršeni su za primjenu identičnih operacija na susjednim vektorskim elementima (prvobitno samo cijelim brojevima), što ih čini dobrim pristajanjem za radna opterećenja računalnog vida. U prošlosti smo napisali detaljan članak o DSP-u i HVX-u, napominjući da je HVX arhitektura pogodna za paralelizaciju i, očito, obradu velikih ulaznih vektora. U to je vrijeme Qualcomm promovirao i DSP i HVX gotovo isključivo opisujući poboljšanja koja doveo bi do opterećenja računalnog vida kao što je Harrisov kutni detektor i drugi klizni prozor metode.
Tek s pojavom dubinskog učenja u potrošačkim mobilnim aplikacijama DSP, njegov vektor jedinice za obradu (a sada i akcelerator tenzora) spojile bi se s umjetnom inteligencijom i neuronskim mrežama, u poseban. Ali gledajući unatrag, ima savršenog smisla: arhitektura digitalnog procesora signala (DSP), izvorno dizajnirana za rukovanje digitaliziranim stvarni ili analogni signalni ulazi, podložan je mnogim istim radnim opterećenjima kao i mnogi algoritmi strojnog učenja i neuronski mreže. Na primjer, DSP-ovi su prilagođeni za jezgre filtera, operacije konvolucije i korelacije, 8-bitne izračune, hrpu linearna algebra (vektorski i matrični produkti) i operacije množenja-akumulacije (MAC), a sve su najučinkovitije kada paralelizirano. Vrijeme izvođenja neuronske mreže također jako ovisi o množenju velikih vektora, matrica i/ili tenzora, pa sasvim je prirodno da se prednosti performansi DSP-a uredno prevode na arhitekture neuronskih mreža kao dobro. Ukratko ćemo ponovno razmotriti ovu temu!
Sljedećih godina Qualcomm je nastavio naglašavati da ne nudi samo čipseti, ali mobilne platforme, i da se ne fokusiraju samo na poboljšanju pojedinih komponenti, ali pružanju "heterogenog" računanja. Godine 2017. objavili su svoj SDK Snapdragon Neural Processing Engine (za ubrzanje rada) na Qualcomm Developer Network, a početkom 2018. najavio Qualcomm Artificial Intelligence Engine za konsolidaciju njihovih nekoliko hardverskih (CPU, GPU, DSP) i softverskih komponenti sposobnih za umjetnu inteligenciju u jednu Ime. Pomoću ove korisne nomenklature uspjeli su uredno reklamirati svoja poboljšanja performansi AI na Snapdragonu 855 i Snapdragon 865, s mogućnošću udobnog sricanja broja trilijuna operacija u sekundi (TOPS) i postotka iz godine u godinu poboljšanja. Iskorištavanje generacijskih poboljšanja u CPU-u, GPU-u i DSP-u - svi oni vide vlastitu usmjerenost na AI nadogradnje - tvrtka je u mogućnosti postaviti impresivna mjerila u odnosu na konkurente, koje ćemo proći ukratko. Uz nedavne marketinške napore tvrtke i jedinstveno, dosljedno slanje poruka o heterogenom računalstvu, njihov brend AI konačno postaje sve popularniji među novinarima i tehnološkim entuzijastima.
Demistificiranje neuronskih mreža: obična hrpa linearne algebre
Kako bismo razdvojili puno žargona na koje ćemo naići kasnije u članku, trebamo kratki uvod što je neuronska mreža i što vam je potrebno da bude brže. Želim vrlo kratko proći kroz neke od matematičkih podloga neuronskih mreža, izbjegavajući što je više moguće žargon i zapise. Svrha ovog odjeljka je jednostavno identificirati što neuronska mreža radi, u osnovi: aritmetičke operacije ona izvršava, a ne teorijska osnova koja opravdava navedene operacije (to je daleko kompliciranije!). Slobodno prijeđite na sljedeći odjeljak ako želite odmah prijeći na nadogradnje Qualcomm AI Enginea.
"Vektorska matematika temelj je dubokog učenja." – Travis Lanier, viši direktor upravljanja proizvodima u Qualcommu na Snapdragon Tech Summitu 2017.
U nastavku ćete pronaći vrlo tipičan dijagram potpuno povezane neuronske mreže s unaprijednim prijenosom podataka. U stvarnosti, dijagram čini da cijeli proces izgleda malo kompliciranije nego što jest (barem dok se ne naviknete). Izračunat ćemo prolaz naprijed, što je u konačnici ono što mreža radi kad god proizvede zaključak, pojam s kojim ćemo se također susresti kasnije u članku. Trenutno ćemo se baviti samo strojem i njegovim dijelovima, uz kratka objašnjenja svake komponente.
Neuronska mreža sastoji se od sekvencijalnih slojeva, svaki se sastoji od nekoliko "neurona" (prikazanih kao krugovi na dijagramu) povezanih pomoću utezi (prikazano kao linije na dijagramu). Općenito, postoje tri vrste slojeva: ulazni sloj, koji uzima neobrađeni unos; skrivenih slojeva, koji izračunavaju matematičke operacije iz prethodnog sloja, i izlazni sloj, koji daje konačna predviđanja. U ovom slučaju imamo samo jedan skriveni sloj, s tri skrivene jedinice. The ulazni sastoji se od vektora, niza ili popisa brojeva određene dimenzije ili duljine. U primjeru ćemo imati dvodimenzionalni unos, recimo [1.0, -1.0]. Evo, izlaz mreže sastoji se od skalara ili jednog broja (ne liste). Svaka skrivena jedinica povezana je sa skupom utezi i a izraz pristranosti, prikazan uz i ispod svakog čvora. Za izračunavanje ponderirani zbroj izlaz jedinice, svaka težina se množi sa svakim odgovarajućim ulazom, a zatim se proizvodi zbrajaju. Zatim ćemo jednostavno dodati pristrani član tom zbroju proizvoda, što će rezultirati izlazom neurona. Na primjer, s našim unosom [1.0,-1.0], prva skrivena jedinica imat će izlaz od 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Jednostavno, zar ne?
Sljedeći korak u dijagramu predstavlja funkcija aktiviranja, i to je ono što će nam omogućiti da proizvedemo izlazni vektor svakog skrivenog sloja. U našem slučaju koristit ćemo vrlo popularan i iznimno jednostavan ispravljena linearna jedinica ili ReLU, koji će uzeti ulazni broj i ispisati ili (i) nulu, ako je taj broj negativan ili nulu (ii) sam ulazni broj, ako je broj pozitivan. Na primjer, ReLU(-0,1) = 0, ali ReLU(0,1) = 0,1. Po uzoru na naš unos propagira kroz tu prvu skrivenu jedinicu, izlaz 1.1 koji smo izračunali bi se proslijedio u aktivacijsku funkciju, dajući ReLU(1,1)=1,1. Izlazni sloj, u ovom primjeru, funkcionirat će kao skrivena jedinica: pomnožit će izlaze skrivenih jedinica sa svojim težinama, a zatim dodati svoj izraz pristranosti 0.2. Posljednja aktivacijska funkcija, funkcija koraka, pretvorit će pozitivne ulaze u 1, a negativne vrijednosti u 0. Znajući kako funkcionira svaka od operacija u mreži, možemo zapisati kompletan izračun našeg zaključivanja na sljedeći način:
To je sve što se tiče našeg računanja neuronske mreže s unaprijednom vezom. Kao što vidite, operacije se gotovo u potpunosti sastoje od umnožaka i zbrojeva brojeva. Naša funkcija aktivacije ReLU(x) također se može implementirati vrlo jednostavno, na primjer jednostavnim pozivom max (x, 0), tako da vraća x kad god je unos veći od 0, ali inače vraća 0. Imajte na umu da korak (x) može se izračunati na sličan način. Postoje mnoge kompliciranije funkcije aktivacije, kao što je sigmoidalna funkcija ili hiperbolička tangenta, koji uključuje različite interne proračune i bolje je prilagođen za različite svrhe. Još jedna stvar koju već možete primijetiti je da i mi može paralelno izvoditi izračune tri skrivene jedinice i njihove ReLU aplikacije, budući da njihove vrijednosti nisu potrebne u isto vrijeme sve dok ne izračunamo njihov ponderirani zbroj na izlaznom čvoru.
Ali ne moramo tu stati. Gore možete vidjeti isti izračun, ali ovaj put umjesto toga predstavljen s operacijama množenja matrica i vektora. Da bismo došli do ovog prikaza, "povećavamo" naš ulazni vektor dodajući mu 1.0 (svjetlija nijansa), tako da kada stavimo naš težine i našu pristranost (svjetlija nijansa) u matrici kao što je prikazano gore, rezultirajuće množenje daje istu skrivenu jedinicu izlazi. Zatim, možemo primijeniti ReLU na izlazni vektor, po elementima, a zatim "povećati" ReLU izlaz da ga pomnožimo s težinama i pristranošću našeg izlaznog sloja. Ovo predstavljanje uvelike pojednostavljuje zapis, budući da se parametri (težine i pristranosti) cijelog skrivenog sloja mogu staviti pod jednu varijablu. Ali što je najvažnije za nas, to jasno daje do znanja unutarnji proračuni mreže su u biti množenje matrica i vektora ili točkasti produkti. S obzirom na to kako se veličina ovih vektora i matrica mjeri s dimenzionalnošću naših ulaza i brojem parametara u našoj mreži, većina vremena izvođenja bit će potrošena na izvođenje ovakvih izračuna. Hrpa linearne algebre!
Naš primjer igračke je, naravno, vrlo ograničenog opsega. U praksi, moderni modeli dubokog učenja mogu imati desetke ako ne i stotine skrivenih slojeva i milijune povezanih parametara. Umjesto našeg primjera dvodimenzionalnog vektorskog unosa, mogu uzeti vektore s tisućama unosa, u različitim oblicima, kao što su matrice (poput jednokanalnih slika) ili tenzora (trokanalni RGB slike). Također ništa ne sprječava našu matričnu reprezentaciju da uzme višestruke ulazne vektore odjednom, dodavanjem redaka našem originalnom ulazu. Neuronske mreže također mogu biti "ožičene" drugačije od naše neuronske mreže s unaprijednim prijenosom ili izvršavati različite funkcije aktivacije. Postoji ogroman zoološki vrt mrežnih arhitektura i tehnika, ali na kraju, oni uglavnom rastaviti na iste paralelne aritmetičke operacije koje nalazimo u našem primjeru igračke, samo na mnogo većoj razini.
Vizualni primjer konvolucijskih slojeva koji djeluju na tenzor. (Kredit za sliku: Prema znanosti o podacima)
Na primjer, popularni konvolucijske neuronske mreže (CNN) o kojima ste vjerojatno čitali nisu "potpuno povezani" poput naše lažne mreže. "Težine" ili parametri njegovih skrivenih konvolucijski slojevi može se smatrati nekom vrstom filtra, kliznim prozorom koji se uzastopno primjenjuje na male dijelove unosa kao što je prikazano gore -- ova "konvolucija" zapravo je samo klizni točkasti produkt! Ovaj postupak rezultira onim što se često naziva a karta obilježja. Slojevi skupljanja smanjuju veličinu ulaza ili izlaza konvolucijskog sloja izračunavanjem maksimalne ili prosječne vrijednosti malih dijelova slike. Ostatak mreže obično se sastoji od potpuno povezanih slojeva, poput onih u našem primjeru, i aktivacijskih funkcija poput ReLU. Ovo se često koristi za ekstrakciju značajki na slikama gdje mape značajki ranih konvolucijskih slojeva mogu "otkriti" uzorke kao što su linije ili rubovi, a kasniji slojevi mogu otkriti kompliciranije značajke kao što su lica ili kompleks oblicima.
Sve što je rečeno jest strogo ograničen na zaključivanje, ili procjena neuronske mreže nakon što su njezini parametri pronađeni trening što je puno kompliciraniji postupak. I opet, isključili smo mnoga objašnjenja. U stvarnosti, svaka od komponenti mreže uključena je za određenu svrhu. Na primjer, oni od vas koji su proučavali linearnu algebru to mogu lako primijetiti bez nelinearne aktivacijske funkcije, naša se mreža pojednostavljuje na linearni model s vrlo ograničenim predviđanjem kapacitet.
Nadograđeni AI Engine na Snapdragonu 865 - sažetak poboljšanja
S ovim praktičnim razumijevanjem komponenti neuronske mreže i njihovih matematičkih operacija, možemo početi točno razumjeti zašto je hardversko ubrzanje toliko važno. U posljednjem odjeljku možemo primijetiti da je paralelizacija ključna za ubrzavanje mreže koja joj je dana omogućuje nam, na primjer, izračunavanje nekoliko paralelnih točkastih produkata koji odgovaraju svakom neuronu aktiviranje. Svaki od ovih točkastih produkata sam se sastoji od operacija množenja i zbrajanja brojeva, obično s 8-bitnom preciznošću u slučaju mobilnih aplikacija, koje se moraju dogoditi što je brže moguće. AI Engine nudi različite komponente za rasterećenje ovih zadataka, ovisno o performansama i razmatranjima energetske učinkovitosti programera.
Dijagram CNN-a za popularni skup podataka MNIST, prikazan na pozornici na ovogodišnjem Snapdragon Summitu. Jedinica za vektorsku obradu dobro odgovara potpuno povezanim slojevima, kao u našem lažnom primjeru. U međuvremenu, tenzorski procesor rukuje konvolucijskim i skupnim slojevima koji obrađuju višestruko klizanje jezgri paralelno, kao na gornjem dijagramu, a svaki konvolucijski sloj može dati mnogo zasebnih značajki Karte.
Prvo, pogledajmo GPU, o kojem obično govorimo u kontekstu 3D igara. Potrošačko tržište videoigara desetljećima je poticalo razvoj hardvera za obradu grafike, ali zašto su GPU-i toliko važni za neuronske mreže? Za početak, oni žvaču masivne popise 3D koordinata vrhova poligona odjednom kako bi pratili stanje svijeta u igrici. GPU također mora izvršiti operacije gigantskog množenja matrica za pretvorbu (ili mapiranje) ovih 3D koordinira na 2D ravninu, koordinate na ekranu, a također rukuje informacijama o boji piksela u paralelno. Povrh svega, nude visoku propusnost memorije za rukovanje masivnim memorijskim međuspremnicima za bitmape teksture prekrivene geometrijom u igri. Njegove prednosti u paralelizaciji, propusnosti memorije i rezultirajućim mogućnostima linearne algebre odgovaraju zahtjevima performansi neuronskih mreža.
Linija Adreno GPU stoga ima veliku ulogu u Qualcomm AI Engineu, a na pozornici je Qualcomm izjavio da ova ažurirana komponenta u Snapdragonu 865 omogućuje dvostruko više mogućnosti za pokretni zarez i dvostruko veći broj TOPS-ova u usporedbi s prethodnom generacijom, što je iznenađujuće s obzirom da su objavili samo 25% povećanja performansi za grafičko renderiranje. Ipak, za ovo izdanje tvrtka se može pohvaliti a 50% povećanje broja aritmetičko-logičkih jedinica (ALU), iako kao i obično, nisu otkrili svoje GPU frekvencije. Qualcomm je također naveo mješovitu preciznost upute, što je upravo ono što zvuči: različita numerička preciznost kroz operacije u jednoj računskoj metodi.
Hexagon 698 DSP je mjesto gdje vidimo veliki dio poboljšanja performansi koje nudi Snapdragon 865. Ove godine tvrtka nije objavila poboljšanja svojih DSP vektorskih ekstenzija (čija se izvedba učetverostručila u prošlogodišnjih 855), niti njihovih skalarnih jedinica. Međutim, primjećuju da su za Tensor Accelerator ovog bloka postigli četiri puta VRH u usporedbi s verzijom predstavljenom prošle godine u Hexagon 695 DSP, a pritom također može ponuditi 35% bolja energetska učinkovitost. Ovo je velika stvar s obzirom na prevalenciju konvolucijskih neuronskih mreža u slučajevima upotrebe moderne umjetne inteligencije, od detekcije slikovnih objekata do automatskog prepoznavanja govora. Kao što je gore objašnjeno, operacija konvolucije u ovim mrežama proizvodi 2D niz matričnih izlaza za svaki filtar, što znači da kada se slože zajedno, izlaz sloja zavoja je 3D niz ili tenzor.
Qualcomm je također promovirao svoje “novo i jedinstveno” kompresija pojasne širine dubokog učenja tehnika, koja naizgled može komprimirati podatke bez gubitaka za oko 50%, zauzvrat premještajući pola podataka i oslobađajući propusnost za druge dijelove čipseta. Također bi trebao uštedjeti energiju smanjenjem protoka podataka, iako nismo dobili nikakve brojke i trebao bi postojati mali trošak energije za komprimiranje podataka.
Što se tiče propusnosti, Snapdragon 865 podržava LPDDR5 memorija, što će također pogodovati performansama umjetne inteligencije jer će povećati brzinu kojom se resursi i ulazni podaci prenose. Osim hardvera, Qualcommovo novo Alati za učinkovitost modela umjetne inteligencije programerima omogućuje jednostavno sažimanje modela i rezultirajuće uštede energetske učinkovitosti. Neuronske mreže često imaju veliki broj "suvišnih" parametara; na primjer, mogu učiniti skrivene slojeve širima nego što trebaju. Jedna od značajki AI Toolkita o kojoj se raspravljalo na pozornici je stoga kompresija modela, pri čemu su dvije od navedenih metoda prostorna singularna dekompozicija vrijednosti (SVD) i Bayesova kompresija, obje koji učinkovito skraćuju neuronsku mrežu rješavanjem suvišnih čvorova i prilagođavanjem strukture modela kao potreban. Druga tehnika kompresije modela predstavljena na pozornici odnosi se na kvantizaciju, a to uključuje promjenu numeričke preciznosti težinskih parametara i izračunavanja aktivacijskih čvorova.
Numerička preciznost težina neuronske mreže odnosi se na to pohranjuju li se numeričke vrijednosti koje se koriste za izračunavanje, prenose i obrađuju kao 64, 32, 16 (polupreciznost) ili 8-bitne vrijednosti. Korištenje manje numeričke preciznosti (na primjer, INT8 u odnosu na FP32) smanjuje ukupnu upotrebu memorije i brzine prijenosa podataka, omogućujući veću propusnost i brže zaključke. Mnoge današnje aplikacije za dubinsko učenje prešle su na 8-bitne precizne modele za zaključivanje, što bi moglo zvučati iznenađujuće: ne bi li veća numerička točnost omogućila "točnija" predviđanja u klasifikaciji ili regresiji zadaci? Nije nužno; veća numerička preciznost, osobito tijekom zaključivanja, može biti uzalud potrošena jer su neuronske mreže uvježbane da se nose s šumnim ulazima ili ionako male smetnje tijekom treninga, a pogreška u prikazu nižeg bita dane (FP) vrijednosti jednoliko je "slučajna" dovoljno. U određenom smislu, nisku preciznost izračuna mreža tretira kao još jedan izvor šuma, a predviđanja ostaju upotrebljiva. Na stranu heuristička objašnjenja, vjerojatno ćete dobiti kaznu za točnost kada loše kvantizirate model ne uzimajući u obzir neka važna razmatranja, zbog čega se mnogo istraživanja bavi subjekt
Povratak na Qualcomm AI Toolkit: kroz njega oni nude kvantizacija bez podataka, omogućujući kvantiziranje modela bez finog podešavanja podataka ili parametara dok se još uvijek postižu performanse modela gotovo originalne na raznim zadacima. U suštini, prilagođava parametre težine za kvantizaciju i ispravlja pogrešku pristranosti koja nastaje pri prelasku na težine niže preciznosti. S obzirom na prednosti nastale kvantizacijom, automatizacija procedure pod pozivom API-ja pojednostavila bi proizvodnju i implementaciju modela, a Qualcomm tvrdi više od četiri puta veće performanse po vatu prilikom pokretanja kvantiziranog modela.
Ali opet, ovo nije šokantno: kvantizirajući modeli mogu ponuditi ogromne prednosti propusnosti i pohrane. Pretvorba modela u INT8 ne samo da vam donosi 4x smanjenje propusnosti, već i prednost bržih cjelobrojnih izračuna (ovisno o hardveru). Nerazumljivo je, dakle, da bi hardverski ubrzani pristupi kvantizaciji i numeričkom proračunu dali goleme dobitke u performansama. Na svom blogu, na primjer, Googleov Pete Warden napisao je da suradnja između timova Qualcomma i Tensorflowa omogućuje 8-bitnim modelima da rade do sedam puta bržena HVX DSP-u nego na CPU-u. Teško je precijeniti potencijal kvantizacije jednostavne za korištenje, osobito s obzirom na to kako se Qualcomm usredotočio na performanse INT8.
Kryo CPU temeljen na Snapdragonu 865 i dalje je važna komponenta AI motora. Iako je hardversko ubrzanje o kojem se raspravlja u gornjim odlomcima poželjno, ponekad mi ne mogu izbjeći aplikacije koje ne iskorištavaju ispravno te blokove, što rezultira CPU zamjena. U prošlosti je ARM uveo posebne skupove instrukcija s ciljem ubrzavanja kalkulacija temeljenih na matricama i vektorima. U procesorima ARMv7 vidjeli smo uvođenje ARM NEON-a, proširenja SIMD arhitekture koje omogućuje instrukcije slične DSP-u. A s mikroarhitekturom ARMv8.4-A vidjeli smo uvođenje instrukcija posebno za točkaste proizvode.
Sva ova objavljena poboljšanja performansi odnose se na mnoga radna opterećenja koja smo opisali u prethodnom odjeljku, ali također vrijedi imati na umu da su ove nadogradnje Snapdragona 865 samo najnoviji poboljšanja Qualcommovih AI sposobnosti. U 2017. dokumentirali smo njihovo utrostručenje AI mogućnosti s Hexagon 685 DSP i drugim ažuriranjima čipseta. Prošle godine predstavili su svoj akcelerator tenzora, te integriranu podršku za funkcije nelinearnosti (poput spomenutog ReLU!) na hardverskoj razini. Također su udvostručili broj vektorskih akceleratora i poboljšali performanse jedinice za skalarnu obradu za 20%. Uparujući sve ovo s poboljšanjima na strani CPU-a, poput onih bržih operacija točkastih proizvoda zahvaljujući ARM-u i dodatnih ALU-ova u GPU-u, Qualcomm je u konačnici utrostručio sirove AI mogućnosti također.
Praktične koristi i prošireni slučajevi upotrebe
Sve ove nadogradnje dovele su do pet puta većih AI mogućnosti na Snapdragonu 865 u usporedbi s prije samo dvije godine, ali što je možda najvažnije, poboljšanja su također došla s boljom izvedbom po milivatu, kritičnom metrikom za mobilne uređaje uređaja. Na Snapdragon Summitu 2019. Qualcomm nam je dao nekoliko mjerila uspoređujući njihov AI Engine s dva konkurenta na raznim klasifikacijskim mrežama. Čini se da su ove brojke prikupljene pomoću AIMarka, aplikacije za usporedbu na više platformi, koja omogućuje usporedbe s Appleovom A-serijom i Huaweijevim HiSilicon procesorima. Qualcomm tvrdi da ovi rezultati koriste cijeli AI Engine i da ćemo morati pričekati još temeljito usporedno ispitivanje kako bi se pravilno razdvojio učinak svake komponente i odredilo kako su ti testovi bili provedena. Na primjer, ukazuju li rezultati tvrtke B na zamjenu CPU-a? Koliko ja znam, AIMark trenutačno ne koristi prednosti NPU-a Kirin 990 na našim Mate 30 Pro jedinicama, na primjer. Ali podržava Snapdragon Neural Processing Engine, tako da će sigurno iskoristiti prednosti Qualcomm AI Enginea; s obzirom da se radi o internom testiranju, nije izričito jasno koristi li referentna vrijednost odgovarajuće biblioteke ili SDK za svoje konkurente.
Također se mora reći da Qualcomm učinkovito uspoređuje mogućnosti obrade AI procesora Snapdragon 865 s prethodno najavljenim ili objavljenim skupovima čipova. Vrlo je vjerojatno da će njegovi konkurenti donijeti poboljšanja performansi sa sličnim utjecajem u sljedećem ciklusu, a ako je to slučaju, onda bi Qualcomm držao krunu samo oko pola godine od trenutka kada su Snapdragon 865 uređaji stigli na police. Ipak, ovo još uvijek ukazuje na to kakve neravnine možemo očekivati od Snapdragona 865. Qualcomm je općenito bio vrlo precizan kada je komunicirao poboljšanja performansi i rezultate benchmarka nadolazećih izdanja.
Sve mreže predstavljene u ovim mjerilima klasificiraju slike iz baza podataka kao što je ImageNet, primaju ih kao ulaze i izlaze jednu od stotina kategorija. Ponovno se oslanjaju na iste vrste operacija koje smo opisali u drugom odjeljku, iako su njihove arhitekture puno kompliciraniji od ovih primjera i smatrani su vrhunskim rješenjima u vrijeme objavljivanja. U najboljem slučaju, njihov najbliži konkurent daje manje od polovice broja zaključaka u sekundi.
Što se tiče potrošnje energije, Qualcomm je ponudio zaključke po vatu kako bi prikazao količinu moguće obrade umjetne inteligencije u određenoj količini energije. U najboljem slučaju (MobileNet SSD), Snapdragon AI Engine može ponuditi dvostruki broj zaključaka pod istim proračunom energije.
Napajanje je posebno važno za mobilne uređaje. Zamislite, na primjer, Snapchat filtar koji se temelji na neuronskoj mreži. Realno, računalni vid cjevovod izdvaja podatke o licu i primjenjuje masku ili unos transformacija treba samo raditi brzinom od 30 ili 60 dovršetaka u sekundi da bi se postigla tekućina iskustvo. Povećanje performansi sirove umjetne inteligencije omogućilo bi vam unose više rezolucije i ispis filtara boljeg izgleda, ali moglo bi Također bi bilo bolje zadovoljiti se HD rezolucijom za brže učitavanje i smanjenje potrošnje energije i termičkog prigušivanja. U mnogim primjenama, "brže" nije nužno "bolje", a tada se mogu iskoristiti prednosti poboljšane energetske učinkovitosti.
Tijekom 2. dana Snapdragon summita, viši direktor inženjeringa u Snapchatu Yurii Monastyrshyn izašao je na pozornicu kako bi pokazao kako njihove najnovije filtre temeljene na dubokom učenju uvelike ubrzava Hexagon Direct NN koristeći Hexagon 695 DSP na Snapdragonu 865.
Na vrhu toga, budući da programeri dobivaju pristup jednostavnijim implementacijama neuronskih mreža i sve više aplikacija počinje koristiti tehnike umjetne inteligencije, slučajevi istodobnog korištenja bit će više u centru pozornosti jer će pametni telefon morati rukovati s više paralelne AI cjevovode odjednom (bilo za jednu aplikaciju koja obrađuje ulazne signale iz različitih izvora ili što više aplikacija radi odvojeno na uređaju). Iako vidimo respektabilne dobitke energetske učinkovitosti u računalnim DSP-u, GPU-u i CPU-u, Qualcomm Sensing Hub obrađuje uvijek uključene slučajeve upotrebe za slušanje riječi okidača uz vrlo nisku potrošnju energije. Omogućuje praćenje audio, video i feedova senzora pri struji manjoj od 1 mA, omogućujući uređaju da uoči određene zvučne signale (poput dječjeg plača), povrh poznatih ključnih riječi digitalnog pomoćnika. S tim u vezi, Snapdragon 865 omogućuje otkrivanje ne samo ključne riječi, već i tko je izgovara, kako bi identificirao ovlaštenog korisnika i djelovao u skladu s tim.
Više AI na rubnim uređajima
Ova se poboljšanja u konačnici mogu pretvoriti u opipljive prednosti za vaše korisničko iskustvo. Usluge koje uključuju prevođenje, prepoznavanje i označavanje predmeta, predviđanja upotrebe ili preporuke stavki, razumijevanje prirodnog jezika, raščlanjivanje govora i tako dalje dobit će prednost bržeg rada i manje potrošnje vlast. Veći računalni proračun također omogućuje stvaranje novih slučajeva upotrebe i iskustava te premještanje procesa koji su se prije odvijali u oblaku na vaš uređaj. Iako se AI kao pojam u prošlosti koristio na sumnjive, zavaravajuće, pa čak i pogrešne načine (čak i od strane OEM-a), mnoge vaše usluge u kojima danas uživate u konačnici se oslanjaju na algoritme strojnog učenja u nekom obliku ili još.
Ali osim Qualcomma, drugi proizvođači čipseta brzo su ponavljali i poboljšavali se i na ovom planu. Na primjer, 990 5G donio je dizajn jezgre 2+1 NPU što je rezultiralo do 2,5 puta većom izvedbom od Kirin 980 i dvostruko većom od Apple A12. Kada je procesor najavljen, pokazalo se da nudi do dvostruko više okvira (zaključaka) u sekundi Snapdragona 855 na INT8 MobileNetu, što je teško usporediti s rezultatima koje daje Qualcomm. Apple A13 Bionic je, s druge strane, navodno ponudio šest puta brže množenje matrice u odnosu na svog prethodnika i poboljšao svoj dizajn neuronskog motora s osam jezgri. Morat ćemo pričekati dok ne budemo mogli ispravno testirati Snapdragon 865 na komercijalnim uređajima u usporedbi s njegovim sadašnjim i budućim konkurentima, ali to je Jasno je da konkurencija u ovom prostoru nikada ne prestaje jer tri tvrtke ulažu gomilu resursa u poboljšanje svoje umjetne inteligencije izvođenje.