Hur Qualcomm gjorde enorma förbättringar av AI på Snapdragon 865

click fraud protection

Qualcomm gjorde enorma hopp i AI-prestanda med den nya Snapdragon 865 SoC. Vi analyserar förändringarna som Qualcomm gjorde för att påskynda maskininlärning.

Det verkar som om vi inte kan gå en dag utan att se "artificiell intelligens" i nyheterna, och den senaste veckan var inget undantag till en liten del tack vare Snapdragon Tech Summit. Varje år avslöjar Qualcomm den uppsjö av förbättringar de tillför sin Hexagon DSP och Qualcomm AI Engine, en term de använder för hela sin heterogena datorplattform - CPU, GPU och DSP - när de pratar om AI arbetsbelastningar. För några år sedan verkade Qualcomms insisterande på att flytta konversationen bort från traditionella diskussionspunkter, som förbättringar av CPU-prestanda från år till år, lite udda. Men under 2019 och med Snapdragon 865 ser vi att heterogen datoranvändning verkligen är vid rodret för deras mobila datoransträngning, eftersom AI och hårdvaruaccelererade arbetsbelastningar verkar smyga sig in i en bredd av användningsfall och applikationer, från sociala medier till vardagliga tjänster.

Snapdragon 865 ger Qualcomms 5:e generationens AI-motor, och med den kommer saftiga förbättringar i prestanda och effekteffektivitet - men det är att vänta. I ett hav av specifikationer, prestationssiffror, snygga tekniska termer och tröttsamma marknadsföringsbuzzwords är det lätt att tappa ur sikte vad dessa förbättringar faktiskt betyder. Vad beskriver de? Varför är dessa uppgraderingar så meningsfulla för dem som implementerar AI i sina appar idag, och kanske ännu viktigare, för dem som vill göra det i framtiden?

I den här artikeln tar vi en lättillgänglig men ändå grundlig rundtur i Qualcomm AI Engine genom att gå igenom dess historia, dess komponenter och Snapdragon 865:s uppgraderingar, och viktigast av allt, Varför eller hur var och en av dessa har bidragit till dagens smartphone-upplevelse, från roliga filter till digitala assistenter.

Hexagon DSP och Qualcomm AI Engine: När varumärke gör skillnad

Även om jag inte kunde delta i veckans Snapdragon Tech Summit, har jag ändå deltagit i varannan sedan 2015. Om du minns, den där var året för den heta röran som var Snapdragon 810, och så journalister på Chelsea-loftet i New York City var ivriga att ta reda på hur Snapdragon 820 skulle lösa företaget. Och det var ett fantastiskt chipset, okej: det lovade sunda prestandaförbättringar (utan någon begränsning) genom att gå tillbaka till de då beprövade anpassade kärnorna som Qualcomm var känd för. Men jag minns också ett mycket subtilt tillkännagivande som i efterhand borde ha fått mer uppmärksamhet: andra generationens Hexagon 680 DSP och dess enda instruktion, multipla data (SIMD) Hexagon Vector eXtensions, eller HVX. Om ingenjörer inte hade namngett funktionen, skulle den kanske ha fått den uppmärksamhet den förtjänade.

Denna samprocessor tillåter den skalära DSP-enhetens hårdvarutrådar att komma åt HVX "kontexter" (registerfiler) för breda vektorbehandlingsmöjligheter. Det möjliggjorde avlastning av betydande beräkningsbelastningar från den kraftkrävande CPU: n eller GPU: n till energieffektiv DSP så att bilder och datorseende uppgifter skulle köras med avsevärt förbättrad prestanda per milliwatt. De är perfekta för att tillämpa identiska operationer på sammanhängande vektorelement (ursprungligen bara heltal), vilket gör dem till en bra passform för datorseende arbetsbelastningar. Vi har skrivit en djupgående artikel om DSP och HVX tidigare, och noterar att HVX-arkitekturen lämpar sig väl för parallellisering och, uppenbarligen, bearbetning av stora indatavektorer. Vid den tiden marknadsförde Qualcomm både DSP och HVX nästan uteslutande genom att beskriva förbättringarna de skulle ge datorseende arbetsbelastningar som Harris hörndetektor och andra skjutbara fönster metoder.

Det var inte förrän tillkomsten av djupinlärning i konsumentmobilapplikationer som DSP, dess vektor bearbetningsenheter (och nu en tensoraccelerator) skulle gifta sig med AI och neurala nätverk, i särskild. Men när jag ser tillbaka är det helt logiskt: arkitekturen för digital signalprocessor (DSP), ursprungligen designad för att hantera digitaliserad verkliga eller analoga signalingångar, lämpar sig för många av samma arbetsbelastningar som många maskininlärningsalgoritmer och neural nätverk. Till exempel är DSP: er skräddarsydda för filterkärnor, faltnings- och korrelationsoperationer, 8-bitars beräkningar, massor av linjär algebra (vektor- och matrisprodukter) och multiplicera-ackumulera (MAC) operationer, alla mest effektiva när parallelliserad. Ett neuralt nätverks körtid är också starkt beroende av att multiplicera stora vektorer, matriser och/eller tensorer, så det är bara naturligt att DSP: s prestandafördelar snyggt översätts till neurala nätverksarkitekturer som väl. Vi kommer att återkomma till detta ämne i korthet!

Under de efterföljande åren fortsatte Qualcomm att betona att de inte erbjuder det bara chipsets, men mobila plattformar, och att de inte fokuserar bara på att förbättra specifika komponenter, men leverera "heterogen" beräkning. Under 2017 släppte de sin Snapdragon Neural Processing Engine SDK (för körtidsacceleration) på Qualcomm Developer Network, och i början av 2018 tillkännagav Qualcomm Artificial Intelligence Engine för att konsolidera deras flera AI-kapabla hårdvara (CPU, GPU, DSP) och mjukvarukomponenter under en enda namn. Med denna användbara nomenklatur kunde de snyggt annonsera sina AI-prestandaförbättringar på både Snapdragon 855 och Snapdragon 865, som bekvämt kan beskriva antalet biljoner operationer per sekund (TOPS) och procentandel från år till år förbättringar. Utnyttja generationsförbättringarna i CPU, GPU och DSP - som alla ser sin egen AI-fokuserade uppgraderingar - företaget kan lägga upp imponerande riktmärken mot konkurrenter, som vi kommer att gå igenom inom kort. Med företagets senaste marknadsföringsinsatser och enhetliga, konsekventa meddelanden om heterogena datorer, vinner deras AI-varumärke äntligen dragkraft bland journalister och teknikentusiaster.

Avmystifierande neurala nätverk: En vardaglig hög med linjär algebra

För att reda ut en massa jargong vi kommer att stöta på senare i artikeln behöver vi en kort primer på vad ett neuralt nätverk är och vad du behöver för att göra det snabbare. Jag vill mycket kort gå igenom några av de matematiska grunderna för neurala nätverk och undvika så mycket jargong och notation som möjligt. Syftet med detta avsnitt är helt enkelt att identifiera vad ett neuralt nätverk gör, i grunden: de aritmetiska operationerna den utför snarare än den teoretiska grunden som motiverar nämnda operationer (det är mycket mer komplicerat!). Fortsätt gärna till nästa avsnitt om du vill hoppa direkt till Qualcomm AI Engine-uppgraderingarna.

"Vektormatematik är grunden för djupinlärning." – Travis Lanier, Senior Director of Product Management på Qualcomm vid 2017 Snapdragon Tech Summit

Nedan hittar du ett mycket typiskt feedforward fullt anslutet neurala nätverksdiagram. I verkligheten gör diagrammet att hela processen ser lite mer komplicerad ut än den är (åtminstone tills du vänjer dig). Vi kommer att beräkna ett framåtpass, vilket i slutändan är vad ett nätverk gör närhelst det producerar en slutledning, en term som vi också kommer att stöta på längre fram i artikeln. För närvarande kommer vi bara att syssla med maskinen och dess delar, med korta förklaringar av varje komponent.

Ett neuralt nätverk består av sekventiellt skikten, var och en består av flera "neuroner" (avbildade som cirklar i diagrammet) förbundna med vikter (avbildad som linjer i diagrammet). Generellt sett finns det tre typer av lager: den ingångslager, som tar den råa input; dolda lager, som beräknar matematiska operationer från föregående lager, och utgångsskikt, som ger de slutliga förutsägelserna. I det här fallet har vi bara ett dolt lager, med tre dolda enheter. De inmatning består av en vektor, matris eller lista med tal av en viss dimension eller längd. I exemplet kommer vi att ha en tvådimensionell ingång, låt oss säga [1.0, -1.0]. Här, den produktion av nätverket består av ett skalärt eller enstaka nummer (inte en lista). Varje dold enhet är associerad med en uppsättning av vikter och a bias term, visas bredvid och under varje nod. För att beräkna vägd summa output av en enhet multipliceras varje vikt med varje motsvarande ingång, och sedan adderas produkterna. Sedan lägger vi helt enkelt biastermen till summan av produkter, vilket resulterar i utmatningen av neuronen. Till exempel med vår input av [1.0,-1.0], kommer den första dolda enheten att ha en utgång på 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Enkelt, eller hur?

Nästa steg i diagrammet representerar en aktiveringsfunktion, och är det som gör att vi kan producera utdatavektorn för varje gömt lager. I vårt fall kommer vi att använda det mycket populära och extremt enkla likriktad linjär enhet eller ReLU, som kommer att ta ett inmatat tal och mata ut antingen (i) noll, om det numret är negativt eller noll (ii) själva inmatningstalet, om talet är positivt. Till exempel, ReLU(-0,1) = 0, men ReLU(0,1) = 0,1. Följer exemplet med vår input som den fortplantar sig genom den första dolda enheten skulle utdata på 1.1 som vi beräknade skickas till aktiveringsfunktionen, vilket ger ReLU(1.1)=1.1. Utdatalagret, i det här exemplet, kommer att fungera precis som en dold enhet: det kommer att multiplicera de dolda enheternas utdata mot dess vikter, och sedan addera dess biasterm av 0.2. Den sista aktiveringsfunktionen, den stegfunktion, omvandlar positiva ingångar till 1 och negativa värden till 0. Genom att veta hur var och en av operationerna i nätverket fungerar, kan vi skriva ner den fullständiga beräkningen av vår slutledning enligt följande:

Det är allt som finns i vår feedforward-beräkning av neurala nätverk. Som du kan se Verksamheten består nästan uteslutande av produkter och summor av siffror. Vår aktiveringsfunktion ReLU(x) kan också implementeras väldigt enkelt, till exempel genom att helt enkelt ringa max (x, 0), så att den returnerar x när inmatningen är större än 0, men annars returnerar den 0. Anteckna det steg (x) kan beräknas på liknande sätt. Det finns många mer komplicerade aktiveringsfunktioner, såsom sigmoidal funktion eller den hyperbolisk tangent, med olika interna beräkningar och bättre lämpade för olika ändamål. En annan sak du redan kan börja lägga märke till är att vi också kan köra de tre dolda enheternas beräkningar och deras ReLU-applikationer parallellt, eftersom deras värden inte behövs samtidigt fram tills vi beräknar deras viktade summa vid utgångsnoden.

Men vi behöver inte stanna där. Ovan kan du se samma beräkning, men denna gång representerad med matris- och vektormultiplikationsoperationer istället. För att komma fram till denna representation "förstärker" vi vår indatavektor genom att lägga till en 1.0 till den (ljusare nyans), så att när vi sätter vår vikter och vår bias (ljusare nyans) i matrisen som visas ovan, den resulterande multiplikationen ger samma dolda enhet utgångar. Sedan kan vi applicera ReLU på utgångsvektorn, elementmässigt, och sedan "förstärka" ReLU-utgången för att multiplicera den med vikterna och biasen för vårt utgångsskikt. Denna representation förenklar notation avsevärt, eftersom parametrarna (vikter och fördomar) för ett helt dolt lager kan stoppas under en enda variabel. Men viktigast av allt för oss, det klargör det nätverkets inre beräkningar är väsentligen matris- och vektormultiplikation eller punktprodukter. Med tanke på hur storleken på dessa vektorer och matriser skalas med dimensionaliteten hos våra indata och antalet parametrar i vårt nätverk, kommer den mesta körtiden att läggas på att göra den här typen av beräkningar. Ett gäng linjär algebra!

Vårt leksaksexempel är naturligtvis mycket begränsad i omfattning. I praktiken kan moderna modeller för djupinlärning ha tiotals om inte hundratals dolda lager och miljontals associerade parametrar. Istället för vårt tvådimensionella vektorinmatningsexempel kan de ta in vektorer med tusentals poster, i en mängd olika former, såsom matriser (som enkanalsbilder) eller tensorer (trekanals RGB bilder). Det finns heller inget som hindrar vår matrisrepresentation från att ta in flera indatavektorer samtidigt, genom att lägga till rader till vår ursprungliga indata. Neurala nätverk kan också "kopplas" annorlunda än vårt neurala nätverk för feedforward, eller utföra olika aktiveringsfunktioner. Det finns ett stort zoo av nätverksarkitekturer och tekniker, men i slutändan, de för det mesta bryta ner till samma parallella aritmetiska operationer som vi hittar i vårt leksaksexempel, bara i mycket större skala.

Visuellt exempel på faltningslager som verkar på en tensor. (Bildkredit: Mot datavetenskap)

Till exempel den populära konvolutionella neurala nätverk (CNN) som du förmodligen har läst om är inte "fullständigt uppkopplade" som vårt skennätverk. "Vikterna" eller parametrarna för dess dolda konvolutionerande lager kan ses som ett slags filter, ett glidande fönster som appliceras sekventiellt på små fläckar av en ingång som visas ovan -- denna "falsning" är egentligen bara en glidpunktsprodukt! Denna procedur resulterar i vad som ofta kallas en funktionskarta. Poolande lager minskar storleken på en indata eller ett faltningslagers utdata genom att beräkna det maximala eller genomsnittliga värdet för små fläckar i bilden. Resten av nätverket består vanligtvis av helt anslutna lager, som de i vårt exempel, och aktiveringsfunktioner som ReLU. Detta används ofta för funktionsextraktion i bilder där tidiga faltningslagers funktionskartor kan "upptäcka" mönster som linjer eller kanter och senare lager kan upptäcka mer komplicerade egenskaper som ansikten eller komplexa former.

Allt som har sagts är strikt begränsad till slutledning, eller utvärdera ett neuralt nätverk efter att dess parametrar har hittats igenom Träning vilket är ett mycket mer komplicerat förfarande. Och återigen, vi har uteslutit många förklaringar. I verkligheten ingår var och en av nätverkets komponenter för ett ändamål. Till exempel, de av er som har studerat linjär algebra kan lätt observera det utan icke-linjära aktiveringsfunktioner, förenklar vårt nätverk till en linjär modell med mycket begränsad prediktivitet kapacitet.

En uppgraderad AI-motor på Snapdragon 865 - En sammanfattning av förbättringar

Med denna praktiska förståelse av komponenterna i ett neuralt nätverk och deras matematiska operationer kan vi börja förstå exakt varför hårdvaruacceleration är så viktigt. I det sista avsnittet kan vi observera att parallellisering är avgörande för att påskynda nätverket givet det tillåter oss till exempel att beräkna flera parallella punktprodukter som motsvarar varje neuron aktivering. Var och en av dessa punktprodukter består i sig av multiplicera-add-operationer på siffror, vanligtvis med 8-bitars precision när det gäller mobilapplikationer, som måste ske så snabbt som möjligt. AI Engine erbjuder olika komponenter för att avlasta dessa uppgifter beroende på prestanda och energieffektivitetsöverväganden hos utvecklaren.

Ett diagram över ett CNN för den populära MNIST-datauppsättningen, som visas på scenen vid årets Snapdragon Summit. Vektorbehandlingsenheten passar bra för de helt anslutna lagren, som i vårt skenexempel. Under tiden hanterar tensorprocessorn faltnings- och poolskikten som bearbetar flera glidningar kärnor parallellt, som i diagrammet ovan, och varje faltningslager kan mata ut många separata funktioner Kartor.

Låt oss först titta på GPU: n, som vi vanligtvis pratar om i samband med 3D-spel. Konsumentmarknaden för videospel har stimulerat utvecklingen av grafikbearbetningshårdvara i decennier, men varför är GPU: er så viktiga för neurala nätverk? Till att börja med tuggar de igenom massiva listor med 3D-koordinater för polygonhörn på en gång för att hålla reda på en världstillstånd i spelet. GPU: n måste också utföra gigantiska matrismultiplikationsoperationer för att konvertera (eller mappa) dessa 3D koordinater till 2D-planar, koordinater på skärmen och hanterar även färginformationen för pixlar i parallell. Till råga på allt erbjuder de hög minnesbandbredd för att hantera de enorma minnesbuffertar för texturbitmappar som överlagras på geometrin i spelet. Dess fördelar i parallellisering, minnesbandbredd och resulterande linjär algebra-kapacitet matchar prestandakraven för neurala nätverk.

Adreno GPU-linjen har alltså en stor roll att spela i Qualcomm AI Engine, och på scenen uppgav Qualcomm att denna uppdaterade komponent i Snapdragon 865 möjliggör dubbelt så mycket flyttalskapacitet och dubbelt så många TOPS jämfört med föregående generation, vilket är överraskande med tanke på att de bara postade en prestandahöjning på 25 % för grafikåtergivning. Ändå, för den här utgåvan har företaget en 50 % ökning av antalet aritmetiska logiska enheter (ALU), men som vanligt har de inte avslöjat sina GPU-frekvenser. Qualcomm listade också blandad precision instruktioner, vilket är precis vad det låter som: olika numerisk precision över operationer i en enda beräkningsmetod.

Hexagon 698 DSP är där vi ser en stor del av prestandavinsterna som Snapdragon 865 erbjuder. I år har företaget inte kommunicerat förbättringar i deras DSP: s vektorextensions (vars prestanda fyrdubblades jämfört med förra årets 855), och inte heller deras skalära enheter. De noterar dock att de har uppnått detta blocks Tensor Accelerator fyra gånger topparna jämfört med versionen som introducerades förra året i Hexagon 695 DSP, samtidigt som den också kan erbjuda 35 % bättre energieffektivitet. Detta är en stor sak med tanke på förekomsten av konvolutionella neurala nätverksarkitekturer i moderna AI-användningsfall, allt från bildobjektdetektering till automatisk taligenkänning. Som förklarats ovan producerar faltningsoperationen i dessa nätverk en 2D-array av matrisutgångar för varje filter, vilket betyder att när de staplas ihop är utdata från ett faltningslager en 3D-matris eller tensor.

Qualcomm marknadsförde också deras "nya och unika" djupinlärningsbandbreddskomprimering teknik, vilket tydligen kan komprimera data förlustfritt med cirka 50 %, i sin tur flyttar hälften av datan och frigör bandbredd för andra delar av chipsetet. Det borde också spara ström genom att minska datagenomströmningen, även om vi inte fick några siffror och det borde finnas en liten energikostnad för att komprimera data också.

När det gäller bandbredd stöder Snapdragon 865 LPDDR5 minne, vilket också kommer att gynna AI-prestanda eftersom det kommer att öka hastigheten med vilken resurser och indata överförs. Utöver hårdvara, Qualcomms nya AI Model Efficiency Toolkit gör enkel modellkomprimering och resulterande energieffektivitetsbesparingar tillgängliga för utvecklare. Neurala nätverk har ofta ett stort antal "redundanta" parametrar; till exempel kan de göra dolda lager bredare än de behöver vara. En av AI Toolkit-funktionerna som diskuteras på scenen är alltså modellkompression, där två av de citerade metoderna är spatial singular value decomposition (SVD) och bayesiansk komprimering, båda av som effektivt beskär det neurala nätverket genom att bli av med redundanta noder och justera modellstrukturen som nödvändig. Den andra modellkompressionstekniken som presenteras på scenen relaterar till kvantisering, och det innebär att ändra den numeriska precisionen för viktparametrar och aktiveringsnodsberäkningar.

Den numeriska precisionen för neurala nätverksvikter hänvisar till om de numeriska värdena som används för beräkning lagras, överförs och bearbetas som 64, 32, 16 (halvprecision) eller 8-bitars värden. Genom att använda lägre numerisk precision (till exempel INT8 jämfört med FP32) minskar den totala minnesanvändningen och dataöverföringshastigheterna, vilket möjliggör högre bandbredd och snabbare slutsatser. Många av dagens djupinlärningsapplikationer har bytt till 8-bitars precisionsmodeller för slutledning, vilket kanske låter överraskande: skulle inte högre numerisk noggrannhet möjliggöra mer "exakta" förutsägelser i klassificering eller regression uppgifter? Inte nödvändigtvis; högre numerisk precision, särskilt under slutledning, kan slösas bort eftersom neurala nätverk tränas för att klara av bullriga insignaler eller små störningar under träningen i alla fall, och felet på den lägre bitrepresentationen av ett givet (FP) värde är enhetligt "slumpmässigt" tillräckligt. På sätt och vis behandlas den låga precisionen av beräkningarna av nätverket som en annan bruskälla, och förutsägelserna förblir användbara. Bortsett från heuristiska förklaringar, är det troligt att du kommer att få ett noggrannhetsstraff när du uselaktig kvantifierar en modell utan att ta hänsyn till några viktiga överväganden, vilket är anledningen till att mycket forskning går in på ämne

Tillbaka till Qualcomm AI Toolkit: Genom det erbjuder de datafri kvantisering, vilket gör att modeller kan kvantiseras utan data eller parameterfinjustering samtidigt som man fortfarande uppnår nästan originalmodellprestanda för olika uppgifter. I huvudsak anpassar den viktparametrar för kvantisering och korrigerar för bias-felet som introduceras när man byter till vikter med lägre precision. Med tanke på fördelarna med kvantisering skulle automatisering av proceduren under ett API-anrop förenkla modellproduktion och implementering, och Qualcomm hävdar mer än fyra gånger prestanda per watt när du kör den kvantiserade modellen.

Men återigen, detta är inte chockerande: kvantiseringsmodeller kan erbjuda enorma bandbredds- och lagringsfördelar. Att konvertera en modell till INT8 ger dig inte bara en 4x minskning av bandbredden, utan också fördelen med snabbare heltalsberäkningar (beroende på hårdvaran). Det är alltså en självklarhet att hårdvaruaccelererade tillvägagångssätt för både kvantiseringen och den numeriska beräkningen skulle ge enorma prestandavinster. På hans blogg, till exempel, Googles Pete Warden skrev att ett samarbete mellan Qualcomm- och Tensorflow-teamen gör det möjligt för 8-bitarsmodeller att köra upp till sju gånger snabbarepå HVX DSP än på CPU. Det är svårt att överskatta potentialen med lättanvänd kvantisering, särskilt med tanke på hur Qualcomm har fokuserat på INT8-prestanda.

Snapdragon 865:s ARM-baserade Kryo CPU är fortfarande en viktig komponent i AI-motorn. Även om hårdvaruaccelerationen som diskuteras i ovanstående stycken är att föredra, ibland vi kan inte undvika applikationer som inte korrekt drar fördel av dessa block, vilket resulterar i CPU Retirera. Tidigare har ARM introducerat specifika instruktionsuppsättningar som syftar till att accelerera matris- och vektorbaserade beräkningar. I ARMv7-processorer såg vi introduktionen av ARM NEON, en SIMD-arkitekturförlängning som möjliggör DSP-liknande instruktioner. Och med ARMv8.4-A-mikroarkitekturen såg vi introduktionen av en instruktion specifikt för dot-produkter.

Alla dessa publicerade prestandavinster relaterar till många av de arbetsbelastningar vi beskrev i föregående avsnitt, men det är också värt att komma ihåg att dessa Snapdragon 865-uppgraderingar är bara det senaste förbättringar av Qualcomms AI-kapacitet. Under 2017 dokumenterade vi deras tredubbling av AI-kapacitet med Hexagon 685 DSP och andra chipsetuppdateringar. Förra året introducerade de sin tensoraccelerator, och integrerat stöd för icke-linjäritetsfunktioner (som ovannämnda ReLU!) på hårdvarunivå. De fördubblade också antalet vektoracceleratorer och förbättrade den skalära bearbetningsenhetens prestanda med 20 %. Genom att para ihop allt detta med förbättringar på CPU-sidan, som de snabbare dot-produktoperationerna med tillstånd av ARM, och de extra ALU: erna i GPU: er, kommer Qualcomm slutligen tredubblats även rå AI-kapacitet.

Praktiska vinster och utökade användningsfall

Alla dessa uppgraderingar har lett till fem gånger så mycket AI-kapacitet på Snapdragon 865 jämfört med för bara två år sedan, men kanske viktigast av allt, förbättringarna kom också med bättre prestanda per milliwatt, ett kritiskt mått för mobiler enheter. På Snapdragon Summit 2019 gav Qualcomm oss några riktmärken som jämförde deras AI Engine med två konkurrenter på olika klassificeringsnätverk. Dessa siffror ser ut att samlas in med hjälp av AIMark, en plattformsoberoende applikation för benchmarking, som möjliggör jämförelser med Apples A-serie och Huaweis HiSilicon-processorer. Qualcomm hävdar att dessa resultat använder hela AI-motorn, och vi får vänta tills mer grundlig benchmarking för att korrekt reda ut effekten av varje komponent och bestämma hur dessa tester var genomfördes. Indikerar till exempel resultaten från företag B CPU-fallback? Så vitt jag är medveten om har AIMark för närvarande inte fördel av Kirin 990:s NPU på våra Mate 30 Pro-enheter, till exempel. Men det stöder Snapdragon Neural Processing Engine, så det kommer säkert att dra fördel av Qualcomm AI Engine; eftersom det är intern testning är det inte uttryckligen klart om riktmärket använder rätt bibliotek eller SDK för sina konkurrenter.

Det måste också sägas att Qualcomm effektivt jämför Snapdragon 865:s AI-bearbetningsförmåga med tidigare tillkännagivna eller släppta styrkretsar. Det är mycket troligt att dess konkurrenter kommer att ge liknande slagkraftiga prestandaförbättringar i nästa cykel, och om det är fallet, då skulle Qualcomm bara hålla kronan i cirka ett halvår från det ögonblick som Snapdragon 865-enheterna hamnade på hyllorna. Som sagt, dessa är fortfarande indikativa för den typ av stötar vi kan förvänta oss från Snapdragon 865. Qualcomm har generellt sett varit mycket noggrann när de kommunicerat prestandaförbättringar och benchmarkresultat för kommande releaser.

Alla nätverk som presenteras i dessa riktmärken klassificerar bilder från databaser som ImageNet, tar emot dem som indata och matar ut en av hundratals kategorier. Återigen, de förlitar sig på samma typer av operationer som vi beskrev i det andra avsnittet, även om deras arkitekturer är mycket mer komplicerade än dessa exempel och de har betraktats som toppmoderna lösningar vid tidpunkten för publicering. I de bästa fallen ger deras närmaste konkurrent mindre än hälften av antalet slutsatser per sekund.

När det gäller strömförbrukning, erbjöd Qualcomm slutsatser per watt-siffror för att visa hur mycket AI-bearbetning som är möjlig i en given mängd kraft. I de bästa fallen (MobileNet SSD) kan Snapdragon AI Engine erbjuda dubbelt så många slutsatser under samma effektbudget.

Ström är särskilt viktig för mobila enheter. Tänk till exempel på ett neuralt nätverksbaserat Snapchat-filter. Realistiskt sett extraherar datorseendet ut ansiktsinformation och applicerar en mask eller indata transformationen behöver bara köras med en hastighet av 30 eller 60 slutföranden per sekund för att uppnå en vätska erfarenhet. Ökad rå AI-prestanda skulle göra det möjligt för dig att ta indata med högre upplösning och mata ut snyggare filter, men det kanske Det är också helt enkelt att föredra att nöja sig med HD-upplösning för snabbare uppladdningar och minska strömförbrukningen och termisk strypning. I många applikationer är "snabbare" inte nödvändigtvis "bättre", och man får då skörda fördelarna av förbättrad energieffektivitet.

Under dag 2 av Snapdragon Summit intog Sr. Director of Engineering på Snapchat Yurii Monastyrshyn scenen för att visa hur deras senaste djupinlärningsbaserade filter accelereras kraftigt av Hexagon Direct NN med hjälp av Hexagon 695 DSP på Snapdragon 865.

Dessutom, eftersom utvecklare får tillgång till enklare implementeringar av neurala nätverk och fler applikationer börjar använda AI-tekniker, kommer samtidiga användningsfall att ta mer av rampljuset eftersom smarttelefonen kommer att behöva hantera flera parallella AI-pipelines på en gång (antingen för en enda applikation som bearbetar insignaler från olika källor eller så många applikationer som körs separat på enheten). Medan vi ser respektabla energieffektivitetsvinster över dator-DSP, GPU och CPU, hanterar Qualcomm Sensing Hub alltid användningsfall för att lyssna efter triggerord vid mycket låg strömförbrukning. Det möjliggör övervakning av ljud-, video- och sensorflöden vid under 1mA ström, vilket gör att enheten kan upptäcka särskilda ljudsignaler (som en baby som gråter), ovanpå de välkända digitala assistent-nyckelorden. På den noten gör Snapdragon 865 det möjligt att upptäcka inte bara nyckelordet utan också vem som talar det, för att identifiera en auktoriserad användare och agera därefter.

Mer AI på Edge-enheter

Dessa förbättringar kan i slutändan översättas till påtagliga fördelar för din användarupplevelse. Tjänster som involverar översättning, objektigenkänning och märkning, användningsförutsägelser eller artikelrekommendationer, naturlig språkförståelse, talanalys och så vidare kommer att få fördelen av att arbeta snabbare och konsumera mindre kraft. Att ha en högre beräkningsbudget möjliggör också skapandet av nya användningsfall och upplevelser, och flytta processer som brukade äga rum i molnet till din enhet. Medan AI som term har använts på tvivelaktiga, vilseledande och till och med felaktiga sätt tidigare (även av OEM-tillverkare), många av dina tjänster som du gillar idag förlitar sig i slutändan på maskininlärningsalgoritmer i någon form eller annan.

Men bortom Qualcomm har andra chipsettillverkare snabbt itererat och förbättrat även på denna front. Till exempel kom 990 5G med en 2+1 NPU-kärndesign, vilket resulterade i upp till 2,5 gånger prestanda hos Kirin 980, och dubbelt så mycket som Apple A12. När processorn tillkännagavs visades den erbjuda upp till två gånger så många bilder (slutledningar) per sekund av Snapdragon 855 på INT8 MobileNet, vilket är svårt att överensstämma med resultaten från Qualcomm. Apple A13 Bionic, å andra sidan, erbjöd sig enligt uppgift sex gånger snabbare matrismultiplikation jämfört med sin föregångare och förbättrade sin åttakärniga neurala motordesign. Vi måste vänta tills vi kan testa Snapdragon 865 ordentligt på kommersiella enheter mot dess nuvarande och framtida konkurrenter, men det är klart att konkurrensen i det här utrymmet aldrig stannar kvar eftersom de tre företagen har satsat massor av resurser på att förbättra sin AI prestanda.