Kuidas Qualcomm tegi Snapdragon 865 tehisintellektis suuri täiustusi

Qualcomm tegi uue Snapdragon 865 SoC-ga tehisintellekti jõudluses suuri hüppeid. Analüüsime muudatusi, mida Qualcomm masinõppe kiirendamiseks tegi.

Näib, et me ei saa päevagi ilma uudistes tehisintellekti nägemata ja see möödunud nädal ei olnud tänu Snapdragon Tech Summitile suures osas erand. Igal aastal tutvustab Qualcomm oma Hexagon DSP-le ja Qualcommi AI-mootorile pakutavaid täiustusi. termin, mida nad kasutavad tehisintellektist rääkides kogu oma heterogeense arvutusplatvormi – CPU, GPU ja DSP – kohta töökoormused. Mõni aasta tagasi tundus Qualcommi nõudmine vestluse eemaleviimiseks traditsioonilistest kõnepunktidest, näiteks protsessori jõudluse aasta-aastast paranemisest, pisut veider. Kuid 2019. aastal ja Snapdragon 865 puhul näeme, et heterogeenne andmetöötlus on tõepoolest nende mobiilse andmetöötluse tõukejõus, kuna tehisintellekt ja riistvarakiirendatud töökoormus näib hiilivat paljude kasutusjuhtumite ja rakenduste hulka, alates sotsiaalmeediast kuni igapäevaseni teenuseid.

Snapdragon 865 toob kaasa Qualcommi 5. põlvkonna AI-mootori ning sellega kaasnevad jõudluse ja energiatõhususe mahlased täiustused – kuid see on ootuspärane. Spetsifikatsioonide, jõudlusnäitajate, väljamõeldud insenertehniliste terminite ja tüütute turundussõnade meres on lihtne unustada, mida need täiustused tegelikult tähendavad. Mida nad kirjeldavad? Miks on need versiooniuuendused nii olulised neile, kes praegu oma rakendustes AI-d rakendavad, ja võib-olla veelgi olulisem neile, kes soovivad seda tulevikus teha?

Selles artiklis teeme Qualcomm AI Engine'i ligipääsetava, kuid põhjaliku ringkäigu, uurides selle ajalugu, komponente ja Snapdragon 865 versiooniuuendusi ning mis kõige tähtsam, miks või kuidas igaüks neist on kaasa aidanud tänapäeva nutitelefonide kasutuskogemusele, alates naljakatest filtritest kuni digitaalsete assistentideni.

Kuusnurkne DSP ja Qualcommi tehisintellekti mootor: kui brändimine muudab

Kuigi ma ei saanud osaleda selle nädala Snapdragon Tech Summitil, olen sellest hoolimata osalenud igal teisel alates 2015. aastast. Kui meenutada, et aasta oli kuum segadus, mis oli Snapdragon 810, ja seetõttu soovisid selle New Yorgi Chelsea loft ajakirjanikud innukalt teada saada, kuidas Snapdragon 820 ettevõtte lunastab. Ja see oli suurepärane kiibistik, olgu: see lubas jõudluse paranemist (ilma igasuguste piiranguteta), naases tollal proovitud kohandatud tuumade juurde, mille poolest Qualcomm oli tuntud. Siiski mäletan ka väga peent teadet, millele tagantjärele mõeldes oleks pidanud rohkem tähelepanu pöörama: teise põlvkonna Hexagon 680 DSP ja selle üks käsk, mitu andmeedastust (SIMD) Hexagon Vector Extensions või HVX. Võib-olla, kui insenerid poleks funktsioonile nime andnud, oleks see pälvinud väärilist tähelepanu.

See kaasprotsessor võimaldab skalaar-DSP seadme riistvaralõimedel pääseda juurde HVX-i kontekstidele (registrifailidele), et võimaldada laiaulatuslikke vektortöötlusvõimalusi. See võimaldas maha laadida märkimisväärse arvutustöökoormuse energianäljaselt CPU-lt või GPU-lt energiasäästlik DSP, et pildistamise ja arvutinägemise ülesanded töötaksid oluliselt parema jõudlusega millivati ​​kohta. Need sobivad suurepäraselt identsete toimingute rakendamiseks külgnevatele vektorelementidele (algselt ainult täisarvud), mistõttu sobivad need hästi arvutinägemise töökoormuse jaoks. Oleme varem kirjutanud põhjaliku artikli DSP ja HVX kohta, märkides, et HVX arhitektuur sobib hästi paralleelseerimiseks ja ilmselt ka suurte sisendvektorite töötlemiseks. Sel ajal reklaamis Qualcomm nii DSP-d kui ka HVX-i peaaegu eranditult, kirjeldades nende täiustusi. tooks arvuti nägemisele selliseid töökoormusi nagu Harrise nurgadetektor ja muud lükandaknad meetodid.

Alles pärast sügava õppimise tulekut tarbijatele mõeldud mobiilirakendustes tekkis DSP, selle vektor aastal abielluksid töötlemisüksused (ja nüüd ka tenosorikiirend) AI ja närvivõrkudega eriti. Kuid tagasi vaadates on see täiesti loogiline: digitaalse signaaliprotsessori (DSP) arhitektuur, mis oli algselt loodud digiteeritud signaalide käsitlemiseks. reaalmaailma või analoogsignaali sisendid, sobib paljudele samadele töökoormustele nagu paljud masinõppe algoritmid ja närvisüsteemid võrgud. Näiteks on DSP-d kohandatud filtrituumade, konvolutsiooni- ja korrelatsioonioperatsioonide, 8-bitiste arvutuste, paljude lineaaralgebra (vektori- ja maatrikskorrutised) ja korrutamis-akumulatsiooni (MAC) operatsioonid, mis kõik on kõige tõhusamad, kui paralleelselt. Närvivõrgu käitusaeg sõltub suuresti ka suurte vektorite, maatriksite ja/või tensorite korrutamisest, nii et on täiesti loomulik, et DSP jõudluse eelised väljenduvad kenasti närvivõrgu arhitektuurides hästi. Vaatame selle teema lühidalt uuesti üle!

Järgnevatel aastatel rõhutas Qualcomm jätkuvalt, et nad ei paku lihtsalt kiibistikud, kuid mobiilsed platvormidja et nad ei keskendu lihtsalt teatud komponentide täiustamiseks, kuid "heterogeense" arvutuse pakkumiseks. 2017. aastal andsid nad Qualcommi arendajavõrgus välja oma Snapdragon Neural Processing Engine SDK (käitusaja kiirendamiseks) ja 2018. aasta alguses. teatas Qualcommi tehisintellekti mootorist, et koondada mitu AI-võimelist riistvara (CPU, GPU, DSP) ja tarkvarakomponente ühe alla nimi. Selle kasuliku nomenklatuuri abil said nad kenasti reklaamida oma tehisintellekti jõudluse täiustusi nii Snapdragon 855 kui ka Snapdragon 865, mis suudab mugavalt välja kirjutada triljonite toimingute arvu sekundis (TOPS) ja aastaprotsendi täiustused. Põlvkondade täiustuste kasutamine protsessoris, GPU-s ja DSP-s – kõik need on oma tehisintellektile keskendunud versiooniuuendused - ettevõte suudab avaldada konkurentidega võrreldes muljetavaldavaid võrdlusaluseid, mida me üle vaatame varsti. Tänu ettevõtte hiljutisele turundustegevusele ja ühtsele ja järjekindlale sõnumivahetusele heterogeense andmetöötluse vallas on nende tehisintellekti kaubamärk lõpuks saanud ajakirjanike ja tehnikahuviliste seas tuntuks.

Närvivõrkude demüstifitseerimine: igapäevane lineaarse algebra hunnik

Paljude žargoonide lahtiharutamiseks, mida me hiljem artiklis kohtame, vajame lühikest aabitsat mis on närvivõrk ja mida vajate selle kiiremaks muutmiseks. Ma tahan väga lühidalt käsitleda mõningaid närvivõrkude matemaatilisi aluseid, vältides võimalikult palju žargooni ja tähistusi. Selle jaotise eesmärk on lihtsalt tuvastada, mida närvivõrk teeb, põhimõtteliselt: aritmeetilised tehted see teostab, mitte teoreetilist alust, mis nimetatud toiminguid õigustab (see on palju keerulisem!). Jätkake julgelt järgmise jaotisega, kui soovite otse Qualcomm AI Engine'i versiooniuuenduste juurde hüpata.

"Vektormatemaatika on sügava õppimise alus." – Travis Lanier, Qualcommi tootejuhtimise vanemdirektor 2017. aasta Snapdragon Tech Summitil

Altpoolt leiate väga tüüpilise täielikult ühendatud närvivõrgu diagrammi. Tegelikkuses muudab diagramm kogu protsessi pisut keerulisemaks, kui see on (vähemalt seni, kuni sellega harjute). Arvutame edasipääsu, mis on lõppkokkuvõttes see, mida võrk teeb alati, kui see genereerib järeldus, terminit, mida kohtame ka artiklis hiljem. Hetkel käsitleme ainult masinat ja selle osi, iga komponendi kohta lühiselgitusi.

Närvivõrk koosneb järjestikustest kihid, millest igaüks koosneb mitmest "neuronist" (diagrammil kujutatud ringidena), mida ühendab kaalud (diagrammil kujutatud joontena). Üldiselt on kolme tüüpi kihte: sisendkiht, mis võtab töötlemata sisendi; peidetud kihid, mis arvutab matemaatilisi tehteid eelmisest kihist, ja väljundkiht, mis annab lõplikud ennustused. Sel juhul on meil ainult üks peidetud kiht, millel on kolm peidetud üksused. The sisend koosneb konkreetse mõõtme või pikkusega vektorist, massiivist või numbrite loendist. Oletame, et näites on meil kahemõõtmeline sisend [1.0, -1.0]. Siin, väljund Võrgustik koosneb skalaarist või ühest arvust (mitte loendist). Iga peidetud üksus on seotud komplektiga kaalud ja a eelarvamus, mis on näidatud iga sõlme kõrval ja all. Et arvutada kaalutud summa ühiku väljund, korrutatakse iga kaal iga vastava sisendiga ja seejärel liidetakse tooted kokku. Seejärel lisame sellele toodete summale lihtsalt kallutatuse, mille tulemuseks on neuroni väljund. Näiteks meie sisendiga [1.0,-1.0], on esimese peidetud üksuse väljundiks 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Lihtne, eks?

Diagrammi järgmine samm tähistab an aktiveerimise funktsioon, ja see võimaldab meil luua iga peidetud kihi väljundvektori. Meie puhul kasutame väga populaarset ja äärmiselt lihtsat alaldatud lineaarne üksus või ReLU, mis võtab sisendarvu ja väljastab kas (i) nulli, kui see arv on negatiivne, või nulli (ii) sisendarvu enda, kui arv on positiivne. Näiteks, ReLU(-0,1) = 0, aga ReLU(0,1) = 0,1. Järgides meie sisendi näidet levib selle esimese peidetud üksuse kaudu edastatakse meie arvutatud 1.1 väljund aktiveerimisfunktsiooni, mis annab tulemuse ReLU(1.1)=1.1. Selles näites toimib väljundkiht täpselt nagu peidetud ühik: see korrutab peidetud ühikute väljundid oma kaaluga ja lisab seejärel oma kallutatuse 0.2. Viimane aktiveerimisfunktsioon, sammu funktsioon, muudab positiivsed sisendid 1-ks ja negatiivsed väärtused 0-ks. Teades, kuidas võrgus kõik toimingud toimivad, saame oma järelduse täieliku arvutuse järgmiselt üles kirjutada:

See on kõik, mis meie närvivõrgu arvutustes on. Nagu näete, toimingud koosnevad peaaegu täielikult toodetest ja arvude summadest. Meie aktiveerimisfunktsioon ReLU(x) saab rakendada ka väga lihtsalt, näiteks lihtsalt helistades max (x, 0), nii et see tagastab x alati, kui sisend on suurem kui 0, kuid muidu tagastab 0. Pange tähele, et samm (x) saab arvutada sarnaselt. On palju keerulisemaid aktiveerimisfunktsioone, näiteks sigmoidne funktsioon või hüperboolne puutuja, mis hõlmab erinevaid sisemisi arvutusi ja sobib paremini erinevateks eesmärkideks. Teine asi, mida võite juba märgata, on see, et ka meie saab paralleelselt käitada kolme peidetud üksuse arvutusi ja nende ReLU rakendusi, kuna nende väärtusi pole vaja samal ajal enne, kui arvutame nende kaalutud summa väljundsõlmes.

Kuid me ei pea sellega peatuma. Eespool näete sama arvutust, kuid seekord esitatakse selle asemel maatriksi ja vektorite korrutamise operatsioonid. Selle esituseni jõudmiseks "suurendame" oma sisendvektorit, lisades sellele 1.0 (heledam toon), nii et kui paneme kaalud ja meie kallutatus (heledam toon) maatriksis, nagu ülal näidatud, annab tulemuseks korrutamine sama peidetud ühiku väljundid. Seejärel saame rakendada ReLU väljundvektorile elemendipõhiselt ja seejärel ReLU väljundit "suurendada", et korrutada see meie väljundkihi kaalude ja nihkega. See esitus lihtsustab märkimist oluliselt, kuna kogu peidetud kihi parameetrid (kaalud ja nihked) saab paigutada ühe muutuja alla. Aga mis meie jaoks kõige tähtsam, see teeb selle selgeks võrgu sisemised arvutused on põhiliselt maatriks- ja vektorkorrutis või punktkorrutis. Arvestades, kuidas nende vektorite ja maatriksite suurus skaala meie sisendite mõõtmete ja parameetrite arvuga meie võrgus, kulub suurem osa käitusajast seda tüüpi arvutuste tegemisele. Hunnik lineaarset algebrat!

Meie mänguasja näide on muidugi väga piiratud ulatusega. Praktikas võivad kaasaegsed süvaõppe mudelid sisaldada kümneid, kui mitte sadu peidetud kihte ja miljoneid seotud parameetreid. Meie kahemõõtmelise vektorsisendi näite asemel võivad nad võtta tuhandete kirjetega vektoreid, mitmesuguse kujuga, näiteks maatriksid (nagu ühe kanaliga pildid) või tensorid (kolmekanaliline RGB pildid). Samuti ei takista miski meie maatriksesitusel võtmast korraga sisse mitut sisendvektorit, lisades meie algsele sisendile ridu. Närvivõrke saab ka "juhtmega ühendada" erinevalt kui meie edasisuunatud närvivõrku või täita erinevaid aktiveerimisfunktsioone. Võrguarhitektuuride ja -tehnikate loomaaed on tohutu, kuid lõpuks need enamasti jaotage samadele paralleelseteks aritmeetilisteks teheteks, mida leiame oma mänguasja näites, ainult palju suuremas skaalas.

Visuaalne näide tensoril töötavatest konvolutsioonikihtidest. (Pildi krediit: Andmeteaduse poole)

Näiteks populaarne konvolutsioonilised närvivõrgud (CNN) mille kohta olete tõenäoliselt lugenud, pole "täielikult ühendatud" nagu meie võltsvõrk. Selle peidetud "kaalud" või parameetrid konvolutsioonilised kihid Seda võib pidada omamoodi filtriks, libisevaks aknaks, mida rakendatakse järjestikku sisendi väikestele laigudele, nagu ülal näidatud – see "konvolutsioon" on tegelikult lihtsalt libiseva punkti toode! Selle protseduuri tulemuseks on nn a funktsioonide kaart. Koondamiskihid vähendavad sisendi või konvolutsioonikihi väljundi suurust, arvutades kujutise väikeste laikude maksimaalse või keskmise väärtuse. Ülejäänud võrk koosneb tavaliselt täielikult ühendatud kihtidest, nagu meie näites, ja aktiveerimisfunktsioonidest, nagu ReLU. Seda kasutatakse sageli funktsioonide eraldamiseks piltidelt, kus varajaste konvolutsioonikihtide funktsioonikaardid suudavad "tuvastada" mustrid, nagu jooned või servad, ja hilisemad kihid suudavad tuvastada keerukamaid funktsioone, nagu näod või kompleksid kujundid.

Kõik, mis on öeldud, on rangelt järeldustegavõi närvivõrgu hindamine pärast selle parameetrite leidmist koolitust mis on palju keerulisem protseduur. Ja jällegi oleme välistanud palju selgitusi. Tegelikkuses on võrgu iga komponent teatud eesmärgil kaasatud. Näiteks need, kes on õppinud lineaarset algebrat, saavad seda hõlpsasti jälgida ilma mittelineaarsete aktiveerimisfunktsioonide korral lihtsustab meie võrk väga piiratud ennustamisvõimega lineaarset mudelit mahutavus.

Snapdragon 865 täiustatud tehisintellekti mootor – täiustuste kokkuvõte

Tänu sellele käepärasele arusaamisele närvivõrgu komponentidest ja nende matemaatilistest operatsioonidest saame hakata täpselt mõistma, miks riistvarakiirendus on nii oluline. Viimases jaotises võime täheldada, et paralleelsus on võrgu kiirendamiseks hädavajalik võimaldab meil näiteks arvutada mitu paralleelset punktprodukti, mis vastavad igale neuronile aktiveerimine. Kõik need punktproduktid ise koosnevad arvude korrutamistoimingutest, mobiilirakenduste puhul tavaliselt 8-bitise täpsusega, mis peavad toimuma võimalikult kiiresti. AI Engine pakub nende ülesannete täitmiseks erinevaid komponente, olenevalt arendaja jõudlusest ja energiatõhususe kaalutlustest.

Populaarse MNIST-i andmestiku CNN-i diagramm, mida näidatakse selle aasta Snapdragoni tippkohtumisel. Vektortöötlusüksus sobib hästi täielikult ühendatud kihtide jaoks, nagu meie näidises. Samal ajal tegeleb tensorprotsessor konvolutsiooni- ja koondamiskihtidega, mis töötlevad mitut libistamist tuumad paralleelselt, nagu ülaltoodud diagrammil, ja iga konvolutsioonikiht võib väljastada palju eraldi funktsioone kaardid.

Esiteks vaatame GPU-d, millest me tavaliselt 3D-mängude kontekstis räägime. Videomängude tarbijaturg on aastakümneid stimuleerinud graafika töötlemise riistvara arengut, kuid miks on GPU-d närvivõrkude jaoks nii olulised? Alustuseks närivad nad korraga läbi hulknurkade tippude 3D-koordinaatide loendeid, et jälgida mängusisese maailma olekut. GPU peab nende 3D-de teisendamiseks (või kaardistamiseks) sooritama ka hiiglaslikke maatriksikorrutusoperatsioone koordinaadid 2D tasapinnale, ekraani koordinaadid ja ka pikslite värviteabe haldamine paralleelselt. Kõige tipuks pakuvad nad suurt mälu ribalaiust, et hallata mängusisesele geomeetriale kantud tekstuuribitikaartide tohutuid mälupuhvreid. Selle eelised paralleelsuses, mälu ribalaiuses ja sellest tulenevas lineaarses algebras vastavad närvivõrkude jõudlusnõuetele.

Adreno GPU liinil on seega Qualcommi AI mootoris suur roll ja laval väitis Qualcomm, et see Snapdragon 865 värskendatud komponent võimaldab kaks korda rohkem ujukoma võimalusi ja kaks korda rohkem TOPSe võrreldes eelmise põlvkonnaga, mis on üllatav, arvestades, et graafika renderdamisel kasvas nende jõudlus vaid 25%. Selle väljalaske puhul uhkeldab ettevõte siiski a Aritmeetiliste loogikaühikute (ALU) arv suureneb 50% võrra, kuigi nagu tavaliselt, pole nad oma GPU sagedusi avaldanud. Qualcomm loetles ka segatäpsusega juhiseid, mis just see kõlab: erinev arvuline täpsus operatsioonide lõikes ühes arvutusmeetodis.

Hexagon 698 DSP on koht, kus näeme suurt osa Snapdragon 865 pakutavast jõudluse kasvust. Sel aastal ei ole ettevõte teatanud oma DSP vektorlaienduste (mille jõudlus neljakordistus eelmise aasta 855-ga) ega nende skalaarühikute osas. Siiski märgivad nad, et selle ploki Tensor Accelerator on saavutanud neli korda TOP-idest võrreldes eelmisel aastal Hexagon 695 DSP-s tutvustatud versiooniga, olles samas võimeline ka pakkuma 35% parem energiatõhusus. See on suur asi, arvestades konvolutsioonilise närvivõrgu arhitektuuride levimust tänapäevastes tehisintellekti kasutusjuhtudes, alates pildiobjektide tuvastamisest kuni automaatse kõnetuvastuseni. Nagu eespool selgitatud, loob konvolutsioonioperatsioon nendes võrkudes maatriksväljundite 2D massiivi iga filter, mis tähendab, et kui need on virnastatud, on konvolutsioonikihi väljundiks 3D massiiv või tensor.

Qualcomm reklaamis ka nende "uut ja ainulaadset" sügavõppe ribalaiuse tihendamine tehnikat, mida ilmselt saab tihendage andmeid kadudeta umbes 50%, teisaldades omakorda poole andmetest ja vabastades ribalaiuse teiste kiibistiku osade jaoks. Samuti peaks see säästma energiat, vähendades seda andmeedastusvõimet, kuigi meile ei antud mingeid arve ja andmete tihendamine peaks samuti olema väike energiakulu.

Ribalaiuse osas toetab Snapdragon 865 LPDDR5 mälu, mis toob kasu ka tehisintellekti jõudlusele, kuna suurendab ressursside ja sisendandmete edastamise kiirust. Lisaks riistvarale on Qualcomm uus AI mudeli tõhususe tööriistakomplekt teeb arendajatele kättesaadavaks mudeli lihtsa tihendamise ja sellest tuleneva energiasäästu. Närvivõrkudel on sageli palju üleliigseid parameetreid; näiteks võivad need muuta peidetud kihid vajalikust laiemaks. Üks laval arutatud tehisintellekti tööriistakomplekti funktsioone on selline mudeli tihendamine, kusjuures kaks viidatud meetodit on ruumiline ainsusväärtuste lagunemine (SVD) ja Bayesi tihendamine, mõlemad mis kärbivad tõhusalt närvivõrku, vabanedes üleliigsetest sõlmedest ja kohandades mudeli struktuuri kui nõutud. Teine laval esitatud mudeli tihendamise tehnika on seotud kvantiseerimisega ja see hõlmab kaaluparameetrite ja aktiveerimissõlmede arvutuste arvulise täpsuse muutmist.

Närvivõrgu kaalude arvuline täpsus viitab sellele, kas arvutamiseks kasutatavad arvväärtused salvestatakse, edastatakse ja töödeldakse 64, 32, 16 (poole täpsusega) või 8-bitiste väärtustena. Väiksema numbrilise täpsuse kasutamine (näiteks INT8 versus FP32) vähendab üldist mälukasutust ja andmeedastuskiirust, võimaldades suuremat ribalaiust ja kiiremaid järeldusi. Paljud tänapäeva süvaõpperakendused on järelduste tegemiseks lülitunud 8-bitistele täppismudelitele, mis võib tunduda üllatav: kas suurem numbriline täpsus ei võimaldaks klassifitseerimisel või regressioonil "täpsemaid" ennustusi ülesandeid? Mitte tingimata; Suurem numbriline täpsus, eriti järelduste tegemisel, võib kuluda raisku, kuna närvivõrgud on treenitud toime tulema mürarikaste sisenditega või väikesed häired kogu treeningu jooksul ja viga antud väärtuse (FP) madalama biti esituses on ühtlaselt "juhuslik" piisav. Teatud mõttes käsitleb võrk arvutuste madalat täpsust teise müraallikana ja ennustused jäävad kasutatavaks. Kui heuristilised selgitajad kõrvale jätta, siis on tõenäoline, et mudeli halvasti kvantiseerimisel koguneb teile täpsustrahv võtmata arvesse mõningaid olulisi kaalutlusi, mistõttu tehakse palju uuringuid teema

Tagasi Qualcommi AI tööriistakomplekti juurde: selle kaudu nad pakuvad andmevaba kvantimine, mis võimaldab mudeleid kvantifitseerida ilma andmete või parameetrite peenhäälestuseta, saavutades samas erinevate ülesannete puhul peaaegu originaalse mudeli jõudluse. Põhimõtteliselt kohandab see kvantiseerimiseks kaaluparameetreid ja korrigeerib madalama täpsusega kaaludele üleminekul tekkinud nihkeviga. Arvestades kvantiseerimisest saadavat kasu, lihtsustaks API-kutsega protseduuri automatiseerimine mudeli tootmist ja juurutamist ning Qualcommi nõudeid. rohkem kui neli korda suurem jõudlus vati kohta kvantiseeritud mudeli käitamisel.

Kuid jällegi, see pole šokeeriv: kvantimismudelid võivad pakkuda tohutuid ribalaiuse ja salvestuse eeliseid. Mudeli teisendamine INT8-ks ei vähenda mitte ainult ribalaiust 4 korda, vaid ka kiiremaid täisarvude arvutusi (olenevalt riistvarast). Seega pole mõtet, et riistvaraliselt kiirendatud lähenemisviisid nii kvantiseerimisele kui ka arvulisele arvutamisele annaksid tohutu jõudluse kasvu. Tema blogisNäiteks Google'i Pete Warden kirjutas, et Qualcommi ja Tensorflow meeskondade koostöö võimaldab 8-bitistel mudelitel töötada seitse korda kiireminiHVX DSP-l kui CPU-l. Lihtsalt kasutatava kvantimise potentsiaali on raske üle hinnata, eriti arvestades seda, kuidas Qualcomm on keskendunud INT8 jõudlusele.

Snapdragon 865 ARM-põhine Kryo CPU on endiselt AI-mootori oluline komponent. Kuigi eelmistes lõikudes käsitletud riistvarakiirendus on eelistatavam, mõnikord me ei saa vältida rakendusi, mis neid plokke korralikult ära ei kasuta, mille tulemuseks on protsessor tagavara. Varem oli ARM kasutusele võtnud spetsiaalsed käsukomplektid, mille eesmärk oli kiirendada maatriksi- ja vektoripõhiseid arvutusi. ARMv7 protsessorites nägime kasutusele ARM NEON, SIMD arhitektuuri laiendus, mis võimaldab DSP-laadseid juhiseid. Ja ARMv8.4-A mikroarhitektuuriga nägime, et tutvustati spetsiaalselt punktitoodete jaoks mõeldud juhiseid.

Kõik need postitatud jõudluse kasvud on seotud paljude töökoormustega, mida kirjeldasime eelmises jaotises, kuid tasub ka meeles pidada, et need Snapdragon 865 versiooniuuendused on ainult uusimad Qualcommi AI võimaluste täiustused. 2017. aastal dokumenteerisime nende tehisintellekti võimaluste kolmekordistamist Hexagon 685 DSP ja muude kiibistiku värskendustega. Eelmisel aastal tutvustasid nad oma tensor kiirendit ja integreeritud tuge mittelineaarsusfunktsioonidele (nagu eelmainitud ReLU!) riistvara tasemel. Samuti kahekordistasid nad vektorkiirendite arvu ja parandasid skalaartöötlusüksuse jõudlust 20%. Sidudes kõike seda protsessoripoolsete täiustustega, nagu need kiiremad punktitoote toimingud tänu ARM-ile ja GPU täiendavad ALU-d, on Qualcomm lõpuks kolmekordistunud ka töötlemata AI võimalused.

Praktilised eelised ja laiendatud kasutusvõimalused

Kõik need uuendused on viinud Snapdragon 865 tehisintellekti võimekuseni viis korda rohkem kui kahe aasta taguse ajaga, kuid võib-olla kõige olulisem on see, et täiustustega kaasnes ka parem jõudlus millivati ​​kohta, mis on mobiili jaoks kriitiline mõõdik seadmeid. 2019. aasta Snapdragoni tippkohtumisel andis Qualcomm meile mõned võrdlusalused, mis võrdlesid oma tehisintellekti mootorit kahe konkurendiga erinevates klassifikatsioonivõrkudes. Näib, et need arvud kogutakse platvormideülese võrdlusuuringu rakenduse AIMarki abil, mis võimaldab võrrelda Apple'i A-seeria ja Huawei HiSilicon protsessoritega. Qualcomm väidab, et need tulemused kasutavad kogu tehisintellekti mootorit ja me peame ootama, kuni see jõuab veel põhjalik võrdlusuuringud, et iga komponendi mõju õigesti lahutada ja teha kindlaks, kuidas need testid olid läbi viidud. Näiteks, kas ettevõtte B tulemused näitavad CPU varu? Minu teada ei kasuta AIMark praegu näiteks Kirin 990 NPU-d meie Mate 30 Pro seadmetes. Kuid see toetab Snapdragoni närvitöötlemismootorit, seega kasutab see kindlasti Qualcommi AI-mootorit; Kuna tegemist on sisetestimisega, pole selge, kas võrdlusalus kasutab konkurentide jaoks õigeid teeke või SDK-d.

Samuti tuleb öelda, et Qualcomm võrdleb tõhusalt Snapdragon 865 AI-töötlusvõimalusi varem välja kuulutatud või välja antud kiibistikuga. On väga tõenäoline, et tema konkurendid toovad järgmises tsüklis kaasa samasuguse mõjuga jõudluse täiustused ja kui see juhul, siis hoiaks Qualcomm krooni vaid umbes pool aastat alates hetkest, kui Snapdragon 865 seadmed riiulitele jõuavad. Sellegipoolest näitavad need siiski, milliseid konarusi võime Snapdragon 865-lt oodata. Qualcomm on eelseisvate väljaannete jõudluse täiustuste ja võrdlustulemuste edastamisel üldiselt olnud väga täpne.

Kõik nendes võrdlusnäitajates esitatud võrgud klassifitseerivad pilte sellistest andmebaasidest nagu ImageNet, võtavad need vastu sisenditena ja väljastavad ühe sadadest kategooriatest. Jällegi toetuvad nad sama tüüpi operatsioonidele, mida kirjeldasime teises jaotises, kuigi nende arhitektuur on palju keerulisemad kui need näited ja neid on nende avaldamise ajal peetud tipptasemel lahendusteks. Parimal juhul teeb nende lähim konkurent vähem kui poole vähem järeldusi sekundis.

Energiatarbimise osas pakkus Qualcomm järeldusi vattide kohta, et näidata AI-töötluse mahtu antud võimsuse korral. Parimal juhul (MobileNet SSD) suudab Snapdragon AI Engine pakkuda sama energiaeelarve juures topeltarvu järeldusi.

Toide on eriti oluline mobiilseadmete jaoks. Mõelge näiteks närvivõrgupõhisele Snapchati filtrile. Tõepoolest, arvutinägemise torujuhe, mis eraldab näoteavet ja rakendab maski või sisendit Transformatsioon peab vedeliku saamiseks toimuma ainult kiirusega 30 või 60 lõpuleviimist sekundis kogemusi. Toores tehisintellekti jõudluse suurendamine võimaldaks teil võtta kõrgema eraldusvõimega sisendeid ja väljastada parema välimusega filtreid, kuid see võib Samuti on parem lihtsalt leppida HD-eraldusvõimega, et kiirendada üleslaadimist ning vähendada energiatarbimist ja termilist drosselit. Paljudes rakendustes ei ole "kiirem" tingimata "parem" ja seejärel saab energiatõhususe paranemisest kasu lõigata.

Snapdragoni tippkohtumise 2. päeval astus lavale Snapchati inseneridirektor Yurii Monastyrshyn, et näidata, kuidas nende uusimaid sügavaid õppimispõhiseid filtreid kiirendab oluliselt Hexagon Direct NN, kasutades Snapdragonil Hexagon 695 DSP-d 865.

Peale selle, kuna arendajad saavad juurdepääsu lihtsamatele närvivõrgu rakendustele ja rohkem rakendusi hakkab kasutama AI tehnikaid, samaaegsed kasutusjuhtumid on rohkem tähelepanu keskpunktis, kuna nutitelefon peab hakkama saama mitme paralleelsed AI torujuhtmed korraga (kas ühe rakenduse jaoks, mis töötleb erinevatest allikatest pärit sisendsignaale või nii palju rakendusi, mis töötavad eraldi seadmes). Kuigi me näeme arvestatavat energiatõhususe kasvu DSP-s, GPU-s ja CPU-s, käsitleb Qualcomm Sensing Hub alati aktiivseid kasutusjuhtumeid, et kuulata käivitavaid sõnu väga väikese energiatarbimisega. See võimaldab jälgida heli-, video- ja andurivooge alla 1 mA voolutugevusel, võimaldades seadmel lisaks tuttavatele digitaalse assistendi märksõnadele tuvastada teatud helisignaale (nt beebi nuttu). Sellega seoses võimaldab Snapdragon 865 tuvastada mitte ainult märksõna, vaid ka seda, kes seda räägib, tuvastada volitatud kasutaja ja tegutseda vastavalt.

Rohkem AI-d Edge-seadmetes

Need täiustused võivad lõppkokkuvõttes anda teie kasutajakogemusele käegakatsutavat kasu. teenused, mis hõlmavad tõlkimist, objektide tuvastamist ja märgistamist, kasutusennustusi või üksuste soovitusi, loomuliku keele mõistmine, kõne sõelumine ja nii edasi aitavad kiiremini töötada ja tarbida vähem võimsus. Suurem arvutuseelarve võimaldab luua ka uusi kasutusjuhtumeid ja -kogemusi ning teisaldada varem pilves toimunud protsesse teie seadmesse. Kuigi tehisintellekti kui terminit on minevikus kasutatud kahtlasel, petlikul ja isegi ekslikul viisil (isegi originaalseadmete tootjate poolt), paljud teie teenused, mida täna naudite, toetuvad lõpuks mingil kujul masinõppe algoritmidele teine.

Kuid peale Qualcommi on ka teised kiibistikutootjad seda kiiresti itereerinud ja täiustanud. Näiteks 990 5G tõi kaasa 2+1 NPU südamiku disaini, mille tulemuseks on Kirin 980 jõudlus kuni 2,5 korda ja Apple A12 kaks korda parem. Kui protsessor välja kuulutati, näidati, et see pakub kuni kaks korda rohkem kaadreid (järeldusi) sekundis Snapdragon 855-st INT8 MobileNetis, mida on Qualcommi pakutavate tulemustega raske võrrelda. Apple A13 Bionic pakkus aga väidetavalt eelkäijaga võrreldes kuus korda kiiremat maatriksikorrutamist ja parandas selle kaheksatuumalise närvimootori konstruktsiooni. Peame ootama, kuni saame Snapdragon 865 kommertsseadmetel selle praeguste ja tulevaste konkurentidega korralikult testida, kuid see on selge, et konkurents selles valdkonnas ei jää kunagi paigale, kuna kolm ettevõtet on investeerinud oma tehisintellekti täiustamiseks palju ressursse esitus.