Kā Qualcomm veica milzīgus AI uzlabojumus Snapdragon 865

click fraud protection

Qualcomm veica milzīgus lēcienus AI veiktspējā ar jauno Snapdragon 865 SoC. Mēs analizējam izmaiņas, ko Qualcomm veica, lai paātrinātu mašīnmācīšanos.

Šķiet, ka mēs nevaram iztikt nevienu dienu, ja ziņās neredzēsim “mākslīgo intelektu”, un, pateicoties Snapdragon Tech Summit, šī pagājušā nedēļa nebija izņēmums. Katru gadu Qualcomm iepazīstina ar daudzajiem uzlabojumiem, ko tas nodrošina savā Hexagon DSP un Qualcomm AI dzinējā, termins, ko viņi izmanto visai savai neviendabīgajai skaitļošanas platformai — CPU, GPU un DSP — runājot par AI darba slodzes. Pirms dažiem gadiem Qualcomm uzstājība virzīt sarunu prom no tradicionālajiem sarunu punktiem, piemēram, CPU veiktspējas uzlabojumiem katru gadu, šķita nedaudz dīvaina. Tomēr 2019. gadā un ar Snapdragon 865 mēs redzam, ka neviendabīga skaitļošana patiešām ir viņu mobilās skaitļošanas virzības stūrī, jo AI un ar aparatūru paātrinātas darba slodzes, šķiet, iekļūst daudzos lietošanas gadījumos un lietojumprogrammās, sākot no sociālajiem medijiem līdz ikdienas lietošanai. pakalpojumus.

Snapdragon 865 piedāvā Qualcomm 5. paaudzes AI dzinēju, un līdz ar to ir ievērojami uzlabojumi veiktspējā un jaudas efektivitātes ziņā, taču tas ir sagaidāms. Specifikāciju, veiktspējas skaitļu, izdomātu inženiertehnisko terminu un nogurdinošu mārketinga modrību jūrā ir viegli aizmirst, ko šie uzlabojumi patiesībā nozīmē. Ko viņi apraksta? Kāpēc šie jauninājumi ir tik nozīmīgi tiem, kas šodien ievieš AI savās lietotnēs, un, iespējams, vēl svarīgāk, tiem, kas vēlas to darīt nākotnē?

Šajā rakstā mēs apskatīsim pieejamu, taču rūpīgu Qualcomm AI Engine, izpētot tā vēsturi, sastāvdaļas un Snapdragon 865 jauninājumus, un, pats galvenais, kāpēc vai katrs no tiem ir veicinājis mūsdienu viedtālruņu pieredzi, sākot no smieklīgiem filtriem līdz digitālajiem palīgiem.

Hexagon DSP un Qualcomm AI dzinējs: kad zīmolam ir nozīme

Lai gan es nevarēju apmeklēt šīs nedēļas Snapdragon Tech Summit, kopš 2015. gada esmu apmeklējis katru otro. Ja atceries, ka gads bija karstā nekārtība, kas bija Snapdragon 810, un tāpēc žurnālisti šajā Chelsea bēniņos Ņujorkā vēlējās uzzināt, kā Snapdragon 820 atpirks uzņēmumu. Un tas bija lielisks mikroshēmojums, labi: tas solīja veselīgus veiktspējas uzlabojumus (bez bremzēšanas), atgriežoties pie toreiz izmēģinātajiem un patiesajiem pielāgotajiem kodoliem, ar kuriem Qualcomm bija pazīstams. Tomēr es atceros arī ļoti smalku paziņojumu, kam, retrospektīvi skatoties, vajadzēja pievērst lielāku uzmanību: otrās paaudzes Hexagon 680 DSP un tā viena instrukcija, vairāku datu (SIMD) sešstūra vektora paplašinājumi vai HVX. Iespējams, ja inženieri nebūtu nosaukuši funkciju, tai būtu pievērsta pelnītā uzmanība.

Šis kopprocesors ļauj skalārā DSP vienības aparatūras pavedieniem piekļūt HVX “kontekstiem” (reģistra failiem), lai nodrošinātu plašas vektoru apstrādes iespējas. Tas ļāva izkraut ievērojamas skaitļošanas slodzes no jaudas izsalkušā CPU vai GPU uz energoefektīvs DSP, lai attēlveidošanas un datorredzes uzdevumi darbotos ar ievērojami uzlabotu veiktspēju uz milivatu. Tie ir lieliski piemēroti identisku darbību pielietošanai blakus esošajiem vektoru elementiem (sākotnēji tikai veseliem skaitļiem), padarot tos par piemērotiem datora redzes darba slodzēm. Iepriekš esam uzrakstījuši padziļinātu rakstu par DSP un HVX, atzīmējot, ka HVX arhitektūra ir piemērota paralelizācijai un, protams, lielu ievades vektoru apstrādei. Tajā laikā Qualcomm reklamēja gan DSP, gan HVX gandrīz tikai, aprakstot to uzlabojumus. radīs datora redzes slodzes, piemēram, Harisa stūra detektoru un citus bīdāmos logus metodes.

DSP, tā vektors, parādījās tikai tad, kad parādījās dziļa apmācība patērētāju mobilajās lietojumprogrammās apstrādes bloki (un tagad tenzoru paātrinātājs) tiks savienoti ar AI un neironu tīkliem, īpaši. Bet, atskatoties atpakaļ, tas ir pilnīgi loģiski: digitālā signāla procesora (DSP) arhitektūra, kas sākotnēji bija paredzēta digitalizētai apstrādei. reālās pasaules vai analogā signāla ieejas, ir piemērotas daudzām tādām pašām slodzēm kā daudzi mašīnmācīšanās algoritmi un neironu tīkliem. Piemēram, DSP ir pielāgoti filtru kodoliem, konvolūcijas un korelācijas operācijām, 8 bitu aprēķiniem, daudziem lineārās algebras (vektora un matricas produkti) un reizināšanas-akumulācijas (MAC) darbības, kas ir visefektīvākās, ja paralēli. Neironu tīkla izpildlaiks ir arī ļoti atkarīgs no lielu vektoru, matricu un/vai tenzoru reizināšanas, tāpēc ir tikai dabiski, ka DSP veiktspējas priekšrocības precīzi izpaužas neironu tīklu arhitektūrā kā labi. Īsumā apskatīsim šo tēmu vēlreiz!

Turpmākajos gados Qualcomm turpināja uzsvērt, ka viņi nepiedāvā vienkārši mikroshēmas, bet mobilās platformas, un ka viņi nekoncentrējas vienkārši par konkrētu komponentu uzlabošanu, bet nodrošinot "neviendabīgu" aprēķinu. 2017. gadā viņi izlaida savu Snapdragon Neural Processing Engine SDK (izpildlaika paātrināšanai) Qualcomm izstrādātāju tīklā, un 2018. gada sākumā viņi paziņoja par Qualcomm mākslīgā intelekta dzinēju, lai apvienotu vairākas ar AI spējīgas aparatūras (CPU, GPU, DSP) un programmatūras komponentus vienā nosaukums. Izmantojot šo noderīgo nomenklatūru, viņi varēja glīti reklamēt savus AI veiktspējas uzlabojumus gan Snapdragon 855, gan Snapdragon 865, kas spēj ērti norādīt triljonu operāciju skaitu sekundē (TOPS) un procentuālo attiecību pret gadu. uzlabojumi. CPU, GPU un DSP paaudžu uzlabojumu izmantošana — tie visi ir vērsti uz AI jauninājumi - uzņēmums spēj publicēt iespaidīgus etalonus pret konkurentiem, kurus mēs apskatīsim drīzumā. Pateicoties uzņēmuma nesenajiem mārketinga centieniem un vienotiem, konsekventiem ziņojumiem par neviendabīgu skaitļošanu, viņu mākslīgā intelekta zīmols beidzot kļūst arvien populārāks žurnālistu un tehnoloģiju entuziastu vidū.

Neironu tīklu demistificēšana: ikdienišķa lineārās algebras kaudze

Lai izjauktu daudz žargona, ar kuru mēs saskarsimies vēlāk rakstā, mums ir nepieciešams īss ievads par kas ir neironu tīkls un kas nepieciešams, lai to padarītu ātrāku. Es vēlos ļoti īsi apskatīt dažus neironu tīklu matemātiskos pamatus, izvairoties no pēc iespējas vairāk žargona un apzīmējumu. Šīs sadaļas mērķis ir vienkārši noteikt, ko dara neironu tīkls, būtībā: aritmētiskās darbības tā izpilda, nevis teorētiskā bāze, kas attaisno minētās darbības (tas ir daudz sarežģītāk!). Jūtieties brīvi pāriet uz nākamo sadaļu, ja vēlaties pāriet tieši uz Qualcomm AI Engine jauninājumiem.

"Vektormatemātika ir dziļas mācīšanās pamats." – Treviss Lanjē, Qualcomm produktu pārvaldības vecākais direktors 2017. gada Snapdragon tehnoloģiju samitā

Zemāk jūs atradīsiet ļoti tipisku uz priekšu pilnībā savienota neironu tīkla diagrammu. Patiesībā diagramma liek visam procesam izskatīties nedaudz sarežģītāk nekā tas ir (vismaz līdz brīdim, kad esat pieradis). Mēs aprēķināsim pāreju uz priekšu, kas galu galā ir tas, ko tīkls dara ikreiz, kad tas rada secinājums, ar šo terminu mēs saskarsimies arī vēlāk rakstā. Šobrīd mēs runāsim tikai par mašīnu un tās daļām, sniedzot īsus paskaidrojumus par katru sastāvdaļu.

Neironu tīkls sastāv no secīgiem slāņi, katrs sastāv no vairākiem "neironiem" (shēmā attēloti kā apļi), kurus savieno svari (diagrammā attēlotas kā līnijas). Vispārīgi runājot, ir trīs veidu slāņi: ievades slānis, kas ņem neapstrādāto ievadi; slēptie slāņi, kas aprēķina matemātiskās darbības no iepriekšējā slāņa, un izvades slānis, kas sniedz galīgās prognozes. Šajā gadījumā mums ir tikai viens slēptais slānis ar trim slēptās vienības. The ievade sastāv no vektora, masīva vai noteikta izmēra vai garuma skaitļu saraksta. Piemērā mums būs, teiksim, divdimensiju ievade [1.0, -1.0]. Lūk, izvade tīkla daļa sastāv no skalāra vai viena skaitļa (nevis saraksta). Katra slēptā vienība ir saistīta ar kopu svari un a neobjektivitātes termins, parādīts blakus un zem katra mezgla. Lai aprēķinātu svērtā summa vienības izvade, katrs svars tiek reizināts ar katru atbilstošo ievadi un pēc tam produkti tiek saskaitīti. Pēc tam mēs vienkārši pievienosim novirzes terminu šai produktu summai, kā rezultātā tiks iegūta neirona izvade. Piemēram, ar mūsu ieguldījumu [1.0,-1.0], pirmās slēptās vienības izvade būs 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Vienkārši, vai ne?

Nākamais solis diagrammā attēlo an aktivizācijas funkcija, un tas ļaus mums izveidot katra slēptā slāņa izejas vektoru. Mūsu gadījumā mēs izmantosim ļoti populāro un ārkārtīgi vienkāršo rektificēta lineāra vienība vai ReLU, kas izmantos ievades skaitli un izvadīs (i) nulli, ja šis skaitlis ir negatīvs, vai nulle (ii) pašu ievades skaitli, ja skaitlis ir pozitīvs. Piemēram, ReLU(-0,1) = 0, bet ReLU(0,1) = 0,1. Sekojot mūsu ievades piemēram izplatās caur šo pirmo slēpto vienību mūsu aprēķinātā 1.1 izvade tiks nodota aktivizācijas funkcijai, tādējādi iegūstot ReLU(1.1)=1.1. Šajā piemērā izvades slānis darbosies tāpat kā slēpta vienība: tas reizinās slēpto vienību izvadi ar savu svaru un pēc tam pievienos savu novirzes termiņu 0.2. Pēdējā aktivizēšanas funkcija, soļu funkcija, pārvērtīs pozitīvos ievades datus par 1 un negatīvās vērtības par 0. Zinot, kā darbojas katra no tīkla operācijām, mēs varam pierakstīt pilnīgu mūsu secinājuma aprēķinu šādi:

Tas ir viss, kas ir mūsu pārejošā neironu tīkla aprēķinos. Kā redzat, operācijas gandrīz pilnībā sastāv no produktiem un skaitļu summām. Mūsu aktivizācijas funkcija ReLU(x) var ieviest arī ļoti vienkārši, piemēram, vienkārši piezvanot maks. (x, 0), lai tas atgriež x ikreiz, kad ievades vērtība ir lielāka par 0, bet pretējā gadījumā atgriež 0. Pieraksti to solis (x) var aprēķināt līdzīgi. Pastāv daudzas sarežģītākas aktivizācijas funkcijas, piemēram, sigmoidālā funkcija vai hiperboliskais tangenss, kas ietver dažādus iekšējos aprēķinus un ir labāk piemēroti dažādiem mērķiem. Vēl viena lieta, ko jūs jau varat sākt pamanīt, ir tā, ka arī mēs var paralēli palaist trīs slēpto vienību aprēķinus un to ReLU lietojumprogrammas, jo to vērtības nav vajadzīgas vienlaikus, līdz mēs aprēķinām to svērto summu izvades mezglā.

Bet mums ar to nav jāapstājas. Iepriekš jūs varat redzēt to pašu aprēķinu, bet šoreiz tā vietā attēlots ar matricas un vektora reizināšanas operācijām. Lai iegūtu šo attēlojumu, mēs “palielinām” savu ievades vektoru, pievienojot tam 1.0 (gaišāku nokrāsu), lai, ievietojot mūsu svaru un mūsu novirzi (gaišāku nokrāsu) matricā, kā parādīts iepriekš, iegūtā reizināšana iegūst to pašu slēpto vienību izejas. Pēc tam mēs varam lietot ReLU izvades vektorā elementāri un pēc tam “palielināt” ReLU izvadi, lai reizinātu to ar mūsu izvades slāņa svaru un novirzi. Šis attēlojums ievērojami vienkāršo pierakstīšanu, jo visa slēptā slāņa parametrus (svarus un novirzes) var ievietot zem viena mainīgā. Bet vissvarīgākais mums ir tas, ka tas to skaidri parāda tīkla iekšējie aprēķini būtībā ir matricu un vektoru reizināšanas vai punktu produkti. Ņemot vērā to, kā šo vektoru un matricu lielums mainās atkarībā no mūsu ievades dimensijas un parametru skaita mūsu tīklā, lielākā daļa izpildlaika tiks pavadīta, veicot šāda veida aprēķinus. Lineārās algebras ķekars!

Mūsu rotaļlietu piemērs, protams, ir ļoti ierobežota darbības joma. Praksē mūsdienu dziļās mācīšanās modeļos var būt desmitiem, ja ne simtiem slēptu slāņu un miljoniem saistītu parametru. Mūsu divdimensiju vektora ievades piemēra vietā viņi var uzņemt vektorus ar tūkstošiem ierakstu, dažādās formās, piemēram, matricās (piemēram, viena kanāla attēli) vai tensoros (trīs kanālu RGB attēli). Nekas arī neliedz mūsu matricas attēlojumam vienlaikus uzņemt vairākus ievades vektorus, pievienojot rindas mūsu sākotnējai ievadei. Neironu tīklus var arī “pieslēgt” citādi nekā mūsu pārsūtīto neironu tīklu vai izpildīt dažādas aktivizācijas funkcijas. Ir plašs tīkla arhitektūru un paņēmienu zoodārzs, bet galu galā tie pārsvarā sadalīt līdz tām pašām paralēlām aritmētiskajām darbībām, kuras atrodam mūsu rotaļlietas piemērā, tikai daudz lielākā mērogā.

Vizuāls piemērs konvolūcijas slāņiem, kas darbojas uz tensora. (Attēla kredīts: Ceļā uz datu zinātni)

Piemēram, populārais konvolucionālie neironu tīkli (CNN) par kurām, iespējams, esat lasījis, nav “pilnībā savienotas” kā mūsu viltotais tīkls. Slēptie “svari” vai parametri konvolucionālie slāņi var uzskatīt par sava veida filtru, slīdošu logu, kas tiek lietots secīgi maziem ievades plankumiem, kā parādīts iepriekš — šī "konvolūcija" patiesībā ir tikai slīdošā punkta produkts! Šīs procedūras rezultātā tiek iegūts tas, ko bieži sauc par a objektu karte. Apvienojot slāņus, tiek samazināts ievades vai konvolucionālā slāņa izvades lielums, aprēķinot attēla mazo plankumu maksimālo vai vidējo vērtību. Pārējā tīkla daļa parasti sastāv no pilnībā savienotiem slāņiem, piemēram, mūsu piemērā, un aktivizēšanas funkcijām, piemēram, ReLU. To bieži izmanto objektu ieguvei attēlos, kur agrīno konvolūcijas slāņu objektu kartes var "atklāt" raksti, piemēram, līnijas vai malas, un vēlākie slāņi var noteikt sarežģītākus objektus, piemēram, sejas vai kompleksus formas.

Viss teiktais ir strikti aprobežojas ar secinājumiem, vai neironu tīkla novērtēšanu pēc tam, kad ir atrasti tā parametri apmācību kas ir daudz sarežģītāka procedūra. Un atkal mēs esam izslēguši daudzus skaidrojumus. Patiesībā katrs tīkla komponents ir iekļauts noteiktam mērķim. Piemēram, tie no jums, kuri ir pētījuši lineāro algebru, var viegli novērot, ka bez nelineāras aktivizācijas funkcijas, mūsu tīkls tiek vienkāršots līdz lineāram modelim ar ļoti ierobežotu prognozēšanas iespēju jaudu.

Jaunināts AI dzinējs Snapdragon 865 — uzlabojumu kopsavilkums

Izmantojot šo ērto izpratni par neironu tīkla komponentiem un to matemātiskajām darbībām, mēs varam sākt saprast, kāpēc aparatūras paātrinājums ir tik svarīgs. Pēdējā sadaļā mēs varam novērot, ka paralēlizācija ir ļoti svarīga, lai paātrinātu tīkla darbību ļauj mums, piemēram, aprēķināt vairākus paralēlus punktu produktus, kas atbilst katram neironam aktivizēšana. Katrs no šiem punktu produktiem pats par sevi sastāv no skaitļu reizināšanas operācijām, parasti ar 8 bitu precizitāti mobilo lietojumprogrammu gadījumā, kurām jānotiek pēc iespējas ātrāk. AI Engine piedāvā dažādus komponentus šo uzdevumu izkraušanai atkarībā no izstrādātāja veiktspējas un jaudas efektivitātes apsvērumiem.

CNN diagramma populārajai MNIST datu kopai, kas parādīta šī gada Snapdragon sammitā. Vektoru apstrādes bloks ir labi piemērots pilnībā savienotiem slāņiem, kā tas ir mūsu imitācijas piemērā. Tikmēr tensoru procesors apstrādā konvolucionālos un apvienošanas slāņus, kas apstrādā vairākas slīdēšanas kodoli paralēli, tāpat kā diagrammā iepriekš, un katrs konvolucionālais slānis var izvadīt daudzas atsevišķas funkcijas kartes.

Vispirms apskatīsim GPU, par kuru mēs parasti runājam 3D spēļu kontekstā. Videospēļu patērētāju tirgus gadu desmitiem ir veicinājis grafikas apstrādes aparatūras attīstību, bet kāpēc GPU ir tik svarīgi neironu tīkliem? Iesācējiem viņi vienlaikus pārlūko milzīgus daudzstūru virsotņu 3D koordinātu sarakstus, lai izsekotu spēles pasaules stāvoklim. GPU ir jāveic arī milzīgas matricas reizināšanas darbības, lai pārveidotu (vai kartētu) šos 3D koordinē 2D plaknē, ekrāna koordinātas, kā arī apstrādā pikseļu krāsu informāciju paralēli. Turklāt tie piedāvā lielu atmiņas joslas platumu, lai apstrādātu milzīgos atmiņas buferus tekstūras bitkartēm, kas pārklātas uz spēles ģeometriju. Tā priekšrocības paralelizēšanā, atmiņas joslas platumā un no tā izrietošajās lineārās algebras spējās atbilst neironu tīklu veiktspējas prasībām.

Tādējādi Adreno GPU līnijai ir liela loma Qualcomm AI dzinējā, un uz skatuves Qualcomm paziņoja, ka šis atjauninātais Snapdragon 865 komponents ļauj divreiz vairāk peldošā komata iespēju un divreiz vairāk TOPS salīdzinot ar iepriekšējo paaudzi, kas ir pārsteidzoši, ņemot vērā to, ka grafikas renderēšanas veiktspēja ir palielinājusies tikai par 25%. Tomēr šajā izlaidumā uzņēmums lepojas ar a Aritmētisko loģisko vienību (ALU) skaita pieaugums par 50%, lai gan, kā parasti, viņi nav atklājuši savas GPU frekvences. Qualcomm uzskaitīja arī jauktas precizitātes instrukcijas, kas ir tieši tā, kā tas izklausās: atšķirīga skaitliskā precizitāte operācijās ar vienu skaitļošanas metodi.

Hexagon 698 DSP ir vieta, kur mēs redzam lielu daļu no Snapdragon 865 piedāvātajiem veiktspējas ieguvumiem. Šogad uzņēmums nav paziņojis par uzlabojumiem ne DSP vektoru paplašinājumos (kuru veiktspēja ir četrkāršojusies salīdzinājumā ar pagājušā gada 855), ne arī to skalārajām vienībām. Tomēr viņi atzīmē, ka šī bloka Tensor Accelerator viņi ir sasnieguši četras reizes pārsniedz TOP salīdzinot ar versiju, kas pagājušajā gadā tika ieviesta Hexagon 695 DSP, vienlaikus spējot arī piedāvāt Par 35% labāka jaudas efektivitāte. Tas ir liels darījums, ņemot vērā konvolucionālo neironu tīklu arhitektūru izplatību mūsdienu AI lietošanas gadījumos, sākot no attēla objektu noteikšanas līdz automātiskai runas atpazīšanai. Kā paskaidrots iepriekš, konvolūcijas darbība šajos tīklos rada 2D matricu izvadu masīvu katrs filtrs, kas nozīmē, ka, saliekot kopā, konvolūcijas slāņa izvade ir 3D masīvs vai tenzors.

Qualcomm arī reklamēja savu "jauno un unikālo" dziļas mācīšanās joslas platuma saspiešana tehniku, kas acīmredzot var bez zudumiem saspiest datus par aptuveni 50%, savukārt pārvietojot pusi datu un atbrīvojot joslas platumu citām mikroshēmojuma daļām. Tam vajadzētu arī ietaupīt enerģiju, samazinot šo datu caurlaidspēju, lai gan mums netika sniegti nekādi skaitļi, un arī datu saspiešanai vajadzētu būt nelielām enerģijas izmaksām.

Runājot par joslas platumu, Snapdragon 865 atbalsta LPDDR5 atmiņa, kas arī uzlabos AI veiktspēju, jo palielinās resursu un ievades datu pārsūtīšanas ātrumu. Papildus aparatūrai, Qualcomm jaunums AI modeļa efektivitātes rīkkopa padara izstrādātājiem pieejamu vieglu modeļa saspiešanu un līdz ar to enerģijas efektivitātes ietaupījumu. Neironu tīkliem bieži ir liels skaits “lieku” parametru; piemēram, tie var padarīt slēptos slāņus platākus, nekā tiem nepieciešams. Tāda ir viena no uz skatuves apspriestajām AI rīkkopas funkcijām modeļa saspiešana, kur divas no minētajām metodēm ir telpiskā vienskaitļa vērtību sadalīšana (SVD) un Bajeza saspiešana, abas kas efektīvi apgriež neironu tīklu, atbrīvojoties no liekajiem mezgliem un pielāgojot modeļa struktūru kā nepieciešams. Cita modeļa saspiešanas tehnika, kas tiek prezentēta uz skatuves, ir saistīta ar kvantēšanu, un tas ietver svara parametru un aktivizācijas mezglu aprēķinu skaitliskās precizitātes maiņu.

Neironu tīklu svaru skaitliskā precizitāte attiecas uz to, vai aprēķiniem izmantotās skaitliskās vērtības tiek saglabātas, pārsūtītas un apstrādātas kā 64, 32, 16 (puse precizitāte) vai 8 bitu vērtības. Izmantojot zemāku skaitlisko precizitāti (piemēram, INT8 pret FP32), tiek samazināts kopējais atmiņas lietojums un datu pārsūtīšanas ātrums, ļaujot iegūt lielāku joslas platumu un ātrākus secinājumus. Daudzas mūsdienu dziļās mācīšanās lietojumprogrammas ir pārgājušas uz 8 bitu precizitātes modeļiem, lai izdarītu secinājumus, kas varētu izklausīties pārsteidzoši: vai lielāka skaitliskā precizitāte neļautu "precīzāk" prognozēt klasifikāciju vai regresiju uzdevumi? Nav nepieciešams; augstāka skaitliskā precizitāte, īpaši secinājumu izdarīšanas laikā, var tikt izniekota, jo neironu tīkli ir apmācīti tikt galā ar trokšņainām ievadēm vai tik un tā ir nelieli traucējumi treniņa laikā, un kļūda noteiktās (FP) vērtības apakšējā bita attēlojumā ir vienmērīgi “gadījuma rakstura” pietiekami. Savā ziņā tīkls aprēķinu zemo precizitāti uzskata par vēl vienu trokšņa avotu, un prognozes joprojām ir izmantojamas. Neņemot vērā heiristiskos skaidrojumus, visticamāk, jūs uzkrāsiet sodu par precizitāti, nepareizi kvantējot modeli neņemot vērā dažus svarīgus apsvērumus, tāpēc daudz tiek pētīts priekšmets

Atpakaļ uz Qualcomm AI rīkkopu: caur to viņi piedāvā kvantēšana bez datiem, kas ļauj kvantificēt modeļus bez datu vai parametru precizēšanas, vienlaikus nodrošinot gandrīz oriģinālo modeļa veiktspēju dažādos uzdevumos. Būtībā tas pielāgo svara parametrus kvantēšanai un koriģē novirzes kļūdu, kas rodas, pārejot uz zemākas precizitātes svariem. Ņemot vērā kvantifikācijas sniegtās priekšrocības, procedūras automatizācija API izsaukuma ietvaros vienkāršos modeļa ražošanu un izvietošanu, kā arī Qualcomm prasības. vairāk nekā četras reizes pārsniedz veiktspēju uz vatu palaižot kvantizēto modeli.

Bet atkal, tas nav šokējoši: kvantēšanas modeļi var piedāvāt milzīgus joslas platuma un uzglabāšanas priekšrocības. Modeļa pārveidošana par INT8 ne tikai samazina joslas platumu 4x, bet arī nodrošina ātrāku veselu skaitļu aprēķinu (atkarībā no aparatūras). Tāpēc ir skaidrs, ka ar aparatūru paātrinātas pieejas gan kvantēšanai, gan skaitliskajai aprēķināšanai dos milzīgu veiktspējas pieaugumu. Viņa emuārāPiemēram, Google Pīts Vordens rakstīja, ka Qualcomm un Tensorflow komandu sadarbība ļauj 8 bitu modeļiem darboties līdz septiņas reizes ātrākuz HVX DSP nekā uz CPU. Ir grūti pārvērtēt viegli lietojamas kvantēšanas iespējas, jo īpaši ņemot vērā to, kā Qualcomm ir koncentrējies uz INT8 veiktspēju.

Snapdragon 865 ARM balstītais Kryo CPU joprojām ir svarīga AI dzinēja sastāvdaļa. Lai gan aparatūras paātrinājums, kas apspriests iepriekš minētajās rindkopās, ir vēlams, dažreiz mēs nevar izvairīties no lietojumprogrammām, kas pareizi neizmanto šo bloku priekšrocības, kā rezultātā CPU atkāpties. Iepriekš ARM bija ieviesis īpašas instrukciju kopas, kuru mērķis bija paātrināt uz matricām un vektoriem balstītus aprēķinus. ARMv7 procesoros tika ieviests ARM NEON — SIMD arhitektūras paplašinājums, kas nodrošina DSP līdzīgas instrukcijas. Un, izmantojot ARMv8.4-A mikroarhitektūru, mēs redzējām, ka tika ieviesta instrukcija, kas īpaši paredzēta punktproduktiem.

Visi šie publicētie veiktspējas uzlabojumi attiecas uz daudzām darba slodzēm, kuras aprakstījām iepriekšējā sadaļā, taču ir arī vērts paturēt prātā, ka šie Snapdragon 865 jauninājumi ir tikai jaunākais Qualcomm AI iespēju uzlabojumi. 2017. gadā mēs dokumentējām viņu mākslīgā intelekta iespēju trīskāršošanos, izmantojot Hexagon 685 DSP un citus mikroshēmojumu atjauninājumus. Pagājušajā gadā viņi ieviesa savu tensora paātrinātāju un integrētu atbalstu nelinearitātes funkcijām (piemēram, iepriekšminētajam ReLU!) Aparatūras līmenī. Viņi arī dubultoja vektoru paātrinātāju skaitu un uzlaboja skalārās apstrādes vienības veiktspēju par 20%. Savienojot to visu ar uzlabojumiem CPU pusē, piemēram, ātrākām punktu produktu darbībām, ko nodrošina ARM, un papildu ALU GPU, Qualcomm galu galā. trīskāršojies neapstrādātas AI iespējas.

Praktiski ieguvumi un paplašinātas lietošanas iespējas

Visu šo jauninājumu rezultātā Snapdragon 865 AI iespējas ir piecas reizes lielākas nekā tikai pirms diviem gadiem, taču Iespējams, vissvarīgākais ir tas, ka uzlabojumi tika veikti arī ar labāku veiktspēju uz milivatu, kas ir būtisks rādītājs mobilajām ierīcēm ierīces. 2019. gada Snapdragon augstākā līmeņa sanāksmē Qualcomm sniedza mums dažus etalonus, salīdzinot savu mākslīgā intelekta dzinēju ar diviem konkurentiem dažādos klasifikācijas tīklos. Šķiet, ka šie skaitļi tiek apkopoti, izmantojot AIMark, starpplatformu salīdzinošās novērtēšanas lietojumprogrammu, kas ļauj salīdzināt ar Apple A sērijas un Huawei HiSilicon procesoriem. Qualcomm apgalvo, ka šie rezultāti izmanto visu AI dzinēju, un mums būs jāgaida līdz vairāk rūpīga salīdzinošā novērtēšana, lai pareizi atdalītu katra komponenta ietekmi un noteiktu šo testu norisi veikta. Piemēram, vai uzņēmuma B rezultāti norāda uz CPU atkāpšanos? Cik es zinu, AIMark pašlaik neizmanto Kirin 990 NPU priekšrocības mūsu Mate 30 Pro ierīcēs. Bet tas atbalsta Snapdragon neironu apstrādes dzinēju, tāpēc tas noteikti izmantos Qualcomm AI Engine priekšrocības; Tā kā tā ir iekšēja testēšana, nav skaidrs, vai etalons pareizi izmanto konkurentiem atbilstošās bibliotēkas vai SDK.

Jāsaka arī, ka Qualcomm efektīvi salīdzina Snapdragon 865 AI apstrādes iespējas ar iepriekš izziņotajām vai izlaistajām mikroshēmām. Ļoti iespējams, ka tā konkurenti nākamajā ciklā nodrošinās tikpat ietekmīgus veiktspējas uzlabojumus, un, ja tas ir gadījumā Qualcomm turētu kroni tikai aptuveni pusgadu no brīža, kad Snapdragon 865 ierīces nonāks plauktos. Tomēr tie joprojām liecina par izciļņiem, ko varam sagaidīt no Snapdragon 865. Qualcomm parasti ir bijis ļoti precīzs, paziņojot par veiktspējas uzlabojumiem un gaidāmo laidienu etalonu rezultātiem.

Visi šajos etalonos parādītie tīkli klasificē attēlus no tādām datu bāzēm kā ImageNet, saņem tos kā ievades datus un izvada vienu no simtiem kategoriju. Atkal viņi paļaujas uz tiem pašiem operāciju veidiem, kurus mēs aprakstījām otrajā sadaļā, lai gan to arhitektūra ir daudz sarežģītāki nekā šie piemēri, un to publicēšanas laikā tie tika uzskatīti par modernākajiem risinājumiem. Labākajā gadījumā viņu tuvākais konkurents nodrošina mazāk nekā uz pusi mazāk secinājumu skaita sekundē.

Runājot par enerģijas patēriņu, Qualcomm piedāvāja secinājumus par vatiem, lai parādītu iespējamo AI apstrādes apjomu noteiktā jaudas daudzumā. Labākajā gadījumā (MobileNet SSD) Snapdragon AI Engine var piedāvāt divreiz vairāk secinājumu ar tādu pašu enerģijas budžetu.

Jauda ir īpaši svarīga mobilajām ierīcēm. Padomājiet, piemēram, par neironu tīkla Snapchat filtru. Reāli, datorredzes cauruļvads iegūst sejas informāciju un uzliek masku vai ievadi transformācijai ir jānotiek tikai ar ātrumu 30 vai 60 pabeigšanas sekundē, lai iegūtu šķidrumu pieredze. Neapstrādātā AI veiktspējas palielināšana ļautu jums iegūt augstākas izšķirtspējas ievadi un izvadīt labāk izskatīgus filtrus, taču tas varētu Tāpat ir vēlams samierināties ar HD izšķirtspēju, lai ātrāk augšupielādētu un samazinātu enerģijas patēriņu un termisko droseli. Daudzās lietojumprogrammās “ātrāks” ne vienmēr ir “labāks”, un pēc tam tiek izmantotas uzlabotas enerģijas efektivitātes priekšrocības.

Snapdragon samita 2. dienā Snapchat inženierzinātņu vecākais direktors Yurii Monastyrshyn kāpa uz skatuves, lai parādītu, kā viņu jaunākos dziļās mācīšanās filtrus ievērojami paātrina Hexagon Direct NN, izmantojot Snapdragon Hexagon 695 DSP 865.

Papildus tam, jo izstrādātāji iegūst piekļuvi vienkāršākām neironu tīklu ieviešanām un arvien vairāk lietojumprogrammu sāk izmantot mākslīgā intelekta paņēmienus, vienlaicīgas lietošanas gadījumi tiks vairāk uzmanības centrā, jo viedtālrunim būs jāapstrādā vairāki paralēli AI konveijeri uzreiz (vai nu vienai lietojumprogrammai, kas apstrādā ievades signālus no dažādiem avotiem vai tik daudz lietojumprogrammu, kas darbojas atsevišķi ierīcē). Lai gan mēs redzam ievērojamus enerģijas efektivitātes uzlabojumus, izmantojot skaitļošanas DSP, GPU un CPU, Qualcomm Sensing Hub vienmēr apstrādā lietošanas gadījumus, lai klausītos palaišanas vārdus ar ļoti zemu enerģijas patēriņu. Tas ļauj uzraudzīt audio, video un sensoru plūsmas, ja strāva ir mazāka par 1 mA, ļaujot ierīcei pamanīt konkrētus skaņas signālus (piemēram, mazuļa raudāšanu), papildus pazīstamajiem digitālā asistenta atslēgvārdiem. Šajā sakarā Snapdragon 865 ļauj noteikt ne tikai atslēgvārdu, bet arī to, kas ar to runā, identificēt autorizētu lietotāju un attiecīgi rīkoties.

Vairāk AI Edge ierīcēs

Šie uzlabojumi galu galā var radīt taustāmus ieguvumus jūsu lietotāja pieredzei. Pakalpojumi, kas ietver tulkošanu, objektu atpazīšanu un marķēšanu, lietošanas prognozes vai vienumu ieteikumus, dabiskās valodas izpratne, runas parsēšana un tā tālāk gūs priekšrocības, darbojoties ātrāk un patērējot mazāk jauda. Lielāks aprēķinu budžets ļauj arī izveidot jaunus lietošanas gadījumus un pieredzi, kā arī pārvietot procesus, kas agrāk notika mākonī, uz jūsu ierīci. Lai gan AI kā termins pagātnē ir izmantots apšaubāmos, maldinošos un pat kļūdainos veidos (pat oriģinālo iekārtu ražotāji), daudzi no jūsu pakalpojumiem, kas jums patīk šodien, galu galā paļaujas uz mašīnmācīšanās algoritmiem kaut kādā veidā vai cits.

Taču ne tikai Qualcomm, citi mikroshēmojumu veidotāji ir arī ātri atkārtojuši un uzlabojuši šo jomu. Piemēram, 990 5G piedāvāja 2+1 NPU kodola dizainu, kas nodrošina līdz pat 2,5 reizēm lielāku veiktspēju nekā Kirin 980 un divreiz labāku Apple A12. Kad procesors tika paziņots, tika parādīts, ka tas piedāvā līdz pat divreiz vairāk kadru (secinājumu) sekundē Snapdragon 855 INT8 MobileNet, ko ir grūti saskaņot ar Qualcomm sniegtajiem rezultātiem. No otras puses, Apple A13 Bionic piedāvāja sešas reizes ātrāku matricas reizināšanu salīdzinājumā ar savu priekšgājēju un uzlaboja tā astoņu kodolu neironu dzinēja dizainu. Mums būs jāgaida, līdz varēsim pareizi pārbaudīt Snapdragon 865 komerciālajās ierīcēs pret tā pašreizējiem un nākamajiem konkurentiem, taču tas ir skaidrs, ka konkurence šajā jomā nekad nepaliek mierā, jo trīs uzņēmumi ir ieguldījuši daudz resursu, lai uzlabotu savu AI sniegumu.