Come Qualcomm ha apportato enormi miglioramenti all'intelligenza artificiale sullo Snapdragon 865

click fraud protection

Qualcomm ha fatto enormi passi avanti nelle prestazioni dell'intelligenza artificiale con il nuovo SoC Snapdragon 865. Analizziamo i cambiamenti apportati da Qualcomm per accelerare il machine learning.

Sembra che non possiamo passare un giorno senza vedere "intelligenza artificiale" nelle notizie, e la scorsa settimana non ha fatto eccezione, in gran parte grazie allo Snapdragon Tech Summit. Ogni anno, Qualcomm svela la miriade di miglioramenti apportati al suo DSP Hexagon e al motore AI di Qualcomm, un termine che usano per l'intera piattaforma di elaborazione eterogenea - CPU, GPU e DSP - quando parlano di intelligenza artificiale carichi di lavoro. Alcuni anni fa, l’insistenza di Qualcomm nell’allontanare la conversazione dai tradizionali argomenti di discussione, come i miglioramenti delle prestazioni della CPU anno dopo anno, sembrava un po’ strana. Eppure, nel 2019 e con lo Snapdragon 865, vediamo che il computing eterogeneo è effettivamente al timone della spinta del mobile computing, poiché l’intelligenza artificiale e i carichi di lavoro con accelerazione hardware sembrano farsi strada in un'ampia gamma di casi d'uso e applicazioni, dai social media alle attività quotidiane Servizi.

Lo Snapdragon 865 porta con sé il motore AI di quinta generazione di Qualcomm e con esso arrivano succosi miglioramenti in termini di prestazioni ed efficienza energetica, ma c'è da aspettarselo. In un mare di specifiche, dati sulle prestazioni, termini ingegneristici fantasiosi e noiose parole d'ordine di marketing, è facile perdere di vista il vero significato di questi miglioramenti. Cosa descrivono? Perché questi aggiornamenti sono così significativi per coloro che implementano l’intelligenza artificiale nelle proprie app oggi e, cosa forse ancora più importante, per coloro che intendono farlo in futuro?

In questo articolo, faremo un tour accessibile ma approfondito del motore AI di Qualcomm, esaminando la sua storia, i suoi componenti e gli aggiornamenti dello Snapdragon 865 e, soprattutto, Perché O Come ognuno di questi ha contribuito all'esperienza smartphone odierna, dai filtri divertenti agli assistenti digitali.

Hexagon DSP e Qualcomm AI Engine: quando il branding fa la differenza

Anche se non ho potuto partecipare allo Snapdragon Tech Summit di questa settimana, ho comunque partecipato a tutti gli altri dal 2015. Se ricordi, Quello è stato l'anno del caos che è stato lo Snapdragon 810, e così i giornalisti in quel loft del Chelsea a New York City erano ansiosi di scoprire come lo Snapdragon 820 avrebbe riscattato l'azienda. Ed era un ottimo chipset, va bene: prometteva sani miglioramenti delle prestazioni (senza alcuna limitazione) tornando ai core personalizzati allora collaudati per cui Qualcomm era noto. Eppure ricordo anche un annuncio molto sottile che, in retrospettiva, avrebbe dovuto ricevere più attenzione: il DSP Hexagon 680 di seconda generazione e le sue estensioni Hexagon Vector a istruzione singola, dati multipli (SIMD) o HVX. Forse se gli ingegneri non avessero dato un nome a questa caratteristica, avrebbe ricevuto l’attenzione che meritava.

Questo coprocessore consente ai thread hardware dell'unità DSP scalare di accedere ai "contesti" HVX (file di registro) per ampie capacità di elaborazione vettoriale. Ha consentito lo scarico di carichi di lavoro di calcolo significativi dalla CPU o GPU assetata di energia al DSP ad alta efficienza energetica in modo che le attività di imaging e visione artificiale vengano eseguite con prestazioni sostanzialmente migliorate per milliwatt. Sono perfetti per applicare operazioni identiche su elementi vettoriali contigui (originariamente solo numeri interi), rendendoli adatti ai carichi di lavoro di visione artificiale. In passato abbiamo scritto un articolo approfondito su DSP e HVX, notando che l'architettura HVX si presta bene alla parallelizzazione e, ovviamente, all'elaborazione di grandi vettori di input. All'epoca, Qualcomm promosse sia il DSP che l'HVX quasi esclusivamente descrivendone i miglioramenti porterebbe alla visione artificiale carichi di lavoro come il rilevatore d'angolo Harris e altre finestre scorrevoli metodi.

È stato solo con l’avvento del deep learning nelle applicazioni mobili di consumo che il DSP, il suo vettore le unità di elaborazione (e ora un acceleratore tensore) si sposerebbero con l’intelligenza artificiale e le reti neurali particolare. Ma guardando indietro, ha perfettamente senso: l'architettura del processore di segnale digitale (DSP), originariamente progettata per la gestione dei dati digitalizzati ingressi di segnali del mondo reale o analogici, si presta a molti degli stessi carichi di lavoro di molti algoritmi di apprendimento automatico e neurali reti. Ad esempio, i DSP sono personalizzati per kernel di filtro, operazioni di convoluzione e correlazione, calcoli a 8 bit, un sacco di operazioni di algebra lineare (prodotti vettoriali e matriciali) e di moltiplicazione-accumulo (MAC), tutte più efficienti quando parallelizzato. Il tempo di esecuzione di una rete neurale dipende anche fortemente dalla moltiplicazione di grandi vettori, matrici e/o tensori, quindi è naturale che i vantaggi prestazionali del DSP si traducano perfettamente in architetture di rete neurale BENE. Riprenderemo questo argomento a breve!

Negli anni successivi, Qualcomm ha continuato a sottolineare di non offrire Appena chipset, ma piattaforme mobili, e che non si concentrano Appena sul miglioramento di componenti particolari, ma fornendo un calcolo "eterogeneo". Nel 2017, hanno rilasciato il loro SDK Snapdragon Neural Processing Engine (per l'accelerazione del runtime) sulla rete di sviluppatori Qualcomm e all'inizio del 2018 ha annunciato il motore di intelligenza artificiale di Qualcomm per consolidare i suoi numerosi componenti hardware (CPU, GPU, DSP) e software compatibili con l'intelligenza artificiale in un unico nome. Con questa utile nomenclatura, sono stati in grado di pubblicizzare in modo chiaro i miglioramenti delle prestazioni dell'IA sia sullo Snapdragon 855 che sullo Snapdragon 855. Snapdragon 865, in grado di indicare comodamente il numero di trilioni di operazioni al secondo (TOPS) e la percentuale su base annua miglioramenti. Sfruttando i miglioramenti generazionali di CPU, GPU e DSP, tutti incentrati sull'intelligenza artificiale aggiornamenti: l'azienda è in grado di pubblicare parametri di riferimento impressionanti rispetto alla concorrenza, che esamineremo in breve. Grazie ai recenti sforzi di marketing dell’azienda e alla messaggistica unificata e coerente sull’informatica eterogenea, il marchio AI sta finalmente guadagnando terreno tra giornalisti e appassionati di tecnologia.

Demistificazione delle reti neurali: una banale pila di algebra lineare

Per districare un sacco di termini tecnici che incontreremo più avanti nell’articolo, abbiamo bisogno di una breve introduzione cos'è una rete neurale E quello che ti serve per renderlo più veloce. Voglio esaminare molto brevemente alcuni dei fondamenti matematici delle reti neurali, evitando quanto più gergo e notazione possibile. Lo scopo di questa sezione è semplicemente quello di identificare cosa sta facendo una rete neurale, fondamentalmente: le operazioni aritmetiche esegue, piuttosto che la base teorica che giustifica dette operazioni (che è ben più complicata!). Sentiti libero di procedere alla sezione successiva se vuoi passare direttamente agli aggiornamenti del motore AI di Qualcomm.

“La matematica vettoriale è il fondamento del deep learning.” – Travis Lanier, Direttore senior della gestione del prodotto presso Qualcomm allo Snapdragon Tech Summit 2017

Di seguito troverai un tipico diagramma di rete neurale feedforward completamente connessa. In realtà, il diagramma fa sembrare l'intero processo un po' più complicato di quanto non sia (almeno finché non ci si abitua). Calcoleremo un passaggio in avanti, che in definitiva è ciò che una rete fa ogni volta che produce un inferenza, un termine che incontreremo anche più avanti nell'articolo. Per il momento ci occuperemo solo della macchina e delle sue parti, con brevi spiegazioni di ogni componente.

Una rete neurale è costituita da sequenziali strati, ciascuno composto da diversi "neuroni" (rappresentati come cerchi nel diagramma) collegati da pesi (raffigurato come linee nel diagramma). In termini generali, esistono tre tipi di strati: il strato di ingresso, che accetta l'input grezzo; strati nascosti, che calcola le operazioni matematiche dal livello precedente e il strato di uscita, che fornisce le previsioni finali. In questo caso abbiamo solo un livello nascosto, con tre unità nascoste. IL ingresso è costituito da un vettore, un array o un elenco di numeri di una particolare dimensione o lunghezza. Nell’esempio avremo un input bidimensionale, diciamo [1.0, -1.0]. Ecco, il produzione della rete è costituito da un numero scalare o singolo (non da una lista). Ad ogni unità nascosta è associato un insieme di pesi e un termine di pregiudizio, mostrato accanto e sotto ciascun nodo. Per calcolare il somma ponderata output di un'unità, ciascun peso viene moltiplicato per ciascun input corrispondente, quindi i prodotti vengono sommati. Quindi, aggiungeremo semplicemente il termine bias a quella somma di prodotti, ottenendo l'output del neurone. Ad esempio, con il nostro input di [1.0,-1.0], la prima unità nascosta avrà un output di 1.0*0.3 + (-1.0) * 0.2 + 1.0 = 1.1. Semplice, vero?

Il passaggio successivo nel diagramma rappresenta un funzione di attivazione, ed è ciò che ci permetterà di produrre il vettore di output di ogni strato nascosto. Nel nostro caso, utilizzeremo il molto popolare ed estremamente semplice unità lineare rettificata O ReLU, che prenderà un numero in input e restituirà (i) zero, se quel numero è negativo o zero (ii) il numero in input stesso, se il numero è positivo. Per esempio, ReLU(-0,1) = 0, Ma ReLU(0,1) = 0,1. Seguendo l'esempio del nostro input come it si propaga attraverso quella prima unità nascosta, l'output di 1.1 che abbiamo calcolato verrebbe passato alla funzione di attivazione, ottenendo ReLU(1.1)=1.1. Il livello di output, in questo esempio, funzionerà proprio come un'unità nascosta: moltiplicherà gli output delle unità nascoste rispetto ai suoi pesi, quindi aggiungerà il suo termine di polarizzazione di 0.2. L'ultima funzione di attivazione, il funzione passo, trasformerà gli input positivi in ​​1 e i valori negativi in ​​0. Sapendo come opera ciascuna delle operazioni nella rete, possiamo scrivere il calcolo completo della nostra inferenza come segue:

Questo è tutto ciò che c'è da sapere sul calcolo feedforward della nostra rete neurale. Come puoi vedere, il le operazioni consistono quasi interamente in prodotti e somme di numeri. La nostra funzione di attivazione RiLU(x) può essere implementato anche molto facilmente, ad esempio semplicemente chiamando massimo (x, 0), in modo tale che restituisca x ogni volta che l'input è maggiore di 0, ma altrimenti restituisce 0. Notare che passo (x) può essere calcolato in modo simile. Esistono molte funzioni di attivazione più complicate, come ad esempio funzione sigmoidale o il tangente iperbolica, che comportano calcoli interni diversi e sono più adatti a scopi diversi. Un'altra cosa che puoi già iniziare a notare è che anche noi può eseguire i calcoli delle tre unità nascoste e le relative applicazioni ReLU in parallelo, poiché i loro valori non sono necessari contemporaneamente fino a quando non calcoliamo la loro somma ponderata nel nodo di output.

Ma non dobbiamo fermarci qui. Sopra, puoi vedere lo stesso calcolo, ma questa volta rappresentato invece con operazioni di moltiplicazione di matrici e vettori. Per arrivare a questa rappresentazione, "aumentiamo" il nostro vettore di input aggiungendovi un 1.0 (tonalità più chiara), in modo tale che quando inseriamo il nostro pesi e la nostra polarizzazione (tonalità più chiara) nella matrice come mostrato sopra, la moltiplicazione risultante produce la stessa unità nascosta uscite. Quindi, possiamo applicare ReLU sul vettore di output, in termini di elementi, e quindi "aumentare" l'output ReLU per moltiplicarlo per i pesi e il bias del nostro livello di output. Questa rappresentazione semplifica notevolmente la notazione, poiché i parametri (pesi e bias) di un intero livello nascosto possono essere nascosti sotto una singola variabile. Ma la cosa più importante per noi è che questo sia chiaro i calcoli interni della rete sono essenzialmente moltiplicazioni di matrici e vettori o prodotti scalari. Dato che la dimensione di questi vettori e matrici si adatta alla dimensionalità dei nostri input e al numero di parametri nella nostra rete, la maggior parte del tempo di esecuzione verrà spesa per eseguire questo tipo di calcoli. Un mucchio di algebra lineare!

Il nostro esempio di giocattolo è, ovviamente, molto portata limitata. In pratica, i moderni modelli di deep learning possono avere decine se non centinaia di livelli nascosti e milioni di parametri associati. Invece del nostro esempio di input vettoriale bidimensionale, possono accogliere vettori con migliaia di voci, in una varietà di forme, come matrici (come immagini a canale singolo) o tensori (RGB a tre canali immagini). Inoltre, non c'è nulla che impedisca alla nostra rappresentazione matriciale di accogliere più vettori di input contemporaneamente, aggiungendo righe al nostro input originale. Le reti neurali possono anche essere “cablate” in modo diverso rispetto alla nostra rete neurale feedforward o eseguire diverse funzioni di attivazione. Esiste un vasto zoo di architetture e tecniche di rete, ma alla fine, loro soprattutto suddividerlo nelle stesse operazioni aritmetiche parallele che troviamo nel nostro esempio del giocattolo, solo su una scala molto più ampia.

Esempio visivo di strati di convoluzione che operano su un tensore. (Credito immagine: Verso la scienza dei dati)

Ad esempio, il popolare reti neurali convoluzionali (CNN) di cui probabilmente hai letto non sono "completamente connessi" come la nostra rete fittizia. I “pesi” o parametri nascosti strati convoluzionali può essere pensato come una sorta di filtro, una finestra scorrevole applicata in sequenza a piccole porzioni di un input come mostrato sopra - questa "convoluzione" è in realtà solo un prodotto di punti scorrevoli! Questa procedura dà come risultato quello che spesso viene chiamato a mappa delle caratteristiche. I livelli di pooling riducono la dimensione di un input o dell’output di un livello convoluzionale, calcolando il valore massimo o medio di piccole porzioni dell’immagine. Il resto della rete è solitamente costituito da livelli completamente connessi, come quelli nel nostro esempio, e da funzioni di attivazione come ReLU. Questo viene spesso utilizzato per l'estrazione di caratteristiche nelle immagini in cui le mappe delle caratteristiche dei primi livelli convoluzionali possono "rilevare" modelli come linee o bordi e i livelli successivi possono rilevare caratteristiche più complicate come facce o complesse forme.

Tutto ciò che è stato detto lo è strettamente limitato all’inferenzao valutare una rete neurale dopo che i suoi parametri sono stati trovati formazione che è una procedura molto più complicata. E ancora una volta, abbiamo escluso molte spiegazioni. In realtà, ciascuno dei componenti della rete è incluso per uno scopo. Ad esempio, quelli di voi che hanno studiato l'algebra lineare possono facilmente osservarlo senza il funzioni di attivazione non lineari, la nostra rete si semplifica in un modello lineare con predittività molto limitata capacità.

Un motore AI aggiornato sullo Snapdragon 865: un riepilogo dei miglioramenti

Con questa pratica comprensione dei componenti di una rete neurale e delle loro operazioni matematiche, possiamo iniziare a capire esattamente perché l’accelerazione hardware è così importante. Nell'ultima sezione possiamo osservare che la parallelizzazione è vitale per velocizzare la rete ci permette, ad esempio, di calcolare diversi prodotti scalari paralleli corrispondenti a ciascun neurone Attivazione. Ciascuno di questi prodotti scalari è a sua volta costituito da operazioni di moltiplicazione-addizione sui numeri, solitamente con precisione a 8 bit nel caso di applicazioni mobili, che devono avvenire il più rapidamente possibile. Il motore AI offre vari componenti per scaricare queste attività a seconda delle considerazioni sulle prestazioni e sull'efficienza energetica dello sviluppatore.

Un diagramma di una CNN per il popolare set di dati MNIST, mostrato sul palco dello Snapdragon Summit di quest'anno. L'unità di elaborazione vettoriale si adatta bene ai livelli completamente connessi, come nel nostro esempio simulato. Nel frattempo, il processore tensore gestisce gli strati convoluzionali e di pooling che elaborano lo scorrimento multiplo kernel in parallelo, come nel diagramma sopra, e ogni strato convoluzionale potrebbe produrre molte funzionalità separate mappe.

Per prima cosa diamo un'occhiata alla GPU, di cui solitamente parliamo nel contesto dei giochi 3D. Il mercato consumer dei videogiochi stimola da decenni lo sviluppo dell’hardware di elaborazione grafica, ma perché le GPU sono così importanti per le reti neurali? Per cominciare, masticano enormi elenchi di coordinate 3D dei vertici del poligono contemporaneamente per tenere traccia di uno stato del mondo di gioco. La GPU deve anche eseguire gigantesche operazioni di moltiplicazione delle matrici per convertire (o mappare) questi 3D coordina su coordinate planari 2D, sullo schermo e gestisce anche le informazioni sul colore dei pixel in parallelo. Per finire, offrono un'elevata larghezza di banda della memoria per gestire gli enormi buffer di memoria per le bitmap delle texture sovrapposte alla geometria del gioco. I suoi vantaggi in termini di parallelizzazione, larghezza di banda della memoria e capacità di algebra lineare risultanti soddisfano i requisiti prestazionali delle reti neurali.

La linea di GPU Adreno ha quindi un ruolo importante da svolgere nel motore AI di Qualcomm e, sul palco, Qualcomm ha dichiarato che questo componente aggiornato nello Snapdragon 865 consente il doppio delle capacità in virgola mobile E il doppio del numero di TOPS rispetto alla generazione precedente, il che è sorprendente dato che hanno registrato un aumento delle prestazioni solo del 25% per il rendering grafico. Tuttavia, per questa versione, l'azienda vanta un Aumento del 50% del numero di unità logiche aritmetiche (ALU), anche se come al solito non hanno rivelato le frequenze delle loro GPU. Qualcomm ha anche elencato la precisione mista Istruzioni, che è proprio quello che sembra: diversa precisione numerica tra le operazioni in un unico metodo computazionale.

Il DSP Hexagon 698 è il luogo in cui vediamo gran parte dei miglioramenti prestazionali offerti dallo Snapdragon 865. Quest’anno, l’azienda non ha comunicato miglioramenti nelle estensioni vettoriali del proprio DSP (le cui prestazioni sono quadruplicate rispetto alle 855 dell’anno scorso), né nelle unità scalari. Tuttavia, notano che per il Tensor Accelerator di questo blocco hanno raggiunto i risultati quattro volte i TOP rispetto alla versione introdotta lo scorso anno nell'Hexagon 695 DSP, pur essendo in grado di offrire Efficienza energetica migliore del 35%.. Questo è un grosso problema considerando la prevalenza delle architetture di rete neurale convoluzionale nei moderni casi d’uso dell’intelligenza artificiale che vanno dal rilevamento di oggetti immagine al riconoscimento vocale automatico. Come spiegato in precedenza, l'operazione di convoluzione in queste reti produce una matrice 2D di output della matrice per ciascun filtro, il che significa che quando impilati insieme, l'output di uno strato di convoluzione è un array 3D o tensore.

Qualcomm ha anche promosso i suoi prodotti “nuovi e unici” compressione della larghezza di banda del deep learning tecnica, che a quanto pare può comprimere i dati senza perdite di circa il 50%, spostando a sua volta metà dei dati e liberando larghezza di banda per altre parti del chipset. Dovrebbe anche risparmiare energia riducendo la velocità di trasmissione dei dati, anche se non ci sono stati forniti dati e dovrebbe esserci un piccolo costo energetico anche per la compressione dei dati.

Per quanto riguarda la larghezza di banda, lo Snapdragon 865 supporta Memoria LPDDR5, che andrà a vantaggio anche delle prestazioni dell’intelligenza artificiale poiché aumenterà la velocità con cui vengono trasferite le risorse e i dati di input. Oltre l'hardware, le novità di Qualcomm Kit di strumenti per l'efficienza dei modelli di intelligenza artificiale mette a disposizione degli sviluppatori la semplice compressione dei modelli e i conseguenti risparmi in termini di efficienza energetica. Le reti neurali hanno spesso un gran numero di parametri “ridondanti”; ad esempio, potrebbero rendere gli strati nascosti più ampi del necessario. Una delle funzionalità dell'AI Toolkit discusse sul palco è quindi compressione del modello, con due dei metodi citati che sono la decomposizione spaziale in valori singolari (SVD) e la compressione bayesiana, entrambi di che eliminano efficacemente la rete neurale eliminando i nodi ridondanti e adattando la struttura del modello come necessario. L'altra tecnica di compressione del modello presentata sul palco riguarda la quantizzazione e comporta la modifica della precisione numerica dei parametri di peso e dei calcoli dei nodi di attivazione.

La precisione numerica dei pesi della rete neurale si riferisce al fatto che i valori numerici utilizzati per il calcolo siano archiviati, trasferiti ed elaborati come valori a 64, 32, 16 (mezza precisione) o 8 bit. L'utilizzo di una precisione numerica inferiore (ad esempio, INT8 rispetto a FP32) riduce l'utilizzo complessivo della memoria e le velocità di trasferimento dei dati, consentendo una larghezza di banda maggiore e inferenze più veloci. Molte delle odierne applicazioni di deep learning sono passate a modelli di precisione a 8 bit per l’inferenza, il che potrebbe sembrare sorprendente: una maggiore precisione numerica non consentirebbe previsioni più “accurate” nella classificazione o nella regressione compiti? Non necessariamente; una maggiore precisione numerica, in particolare durante l'inferenza, può essere sprecata poiché le reti neurali sono addestrate a far fronte a input rumorosi o comunque piccoli disturbi durante l'addestramento e l'errore sulla rappresentazione in bit inferiore di un dato valore (FP) è uniformemente "casuale" Abbastanza. In un certo senso, la bassa precisione dei calcoli viene trattata dalla rete come un’altra fonte di rumore e le previsioni rimangono utilizzabili. A parte gli esplicatori euristici, è probabile che si accumuli una penalità di precisione quando si quantizza in modo pessimo un modello senza tenere conto di alcune considerazioni importanti, motivo per cui molte ricerche si concentrano sul soggetto

Torniamo al toolkit AI di Qualcomm: attraverso di esso offrono quantizzazione senza dati, consentendo di quantizzare i modelli senza la regolazione fine dei dati o dei parametri, ottenendo comunque prestazioni del modello quasi originali in varie attività. In sostanza, adatta i parametri di peso per la quantizzazione e corregge l'errore di bias introdotto quando si passa a pesi di precisione inferiore. Considerati i vantaggi derivanti dalla quantizzazione, l’automazione della procedura tramite una chiamata API semplificherebbe la produzione e l’implementazione del modello, e Qualcomm afferma più di quattro volte la prestazione per watt quando si esegue il modello quantizzato.

Ma ancora una volta, questo non è scioccante: i modelli di quantizzazione possono offrire enormi vantaggi in termini di larghezza di banda e archiviazione. La conversione di un modello in INT8 non solo garantisce una riduzione di 4 volte della larghezza di banda, ma anche il vantaggio di calcoli interi più rapidi (a seconda dell'hardware). È ovvio, quindi, che gli approcci con accelerazione hardware sia alla quantizzazione che al calcolo numerico produrrebbero enormi miglioramenti delle prestazioni. Sul suo blog, ad esempio, Pete Warden di Google ha scritto che una collaborazione tra i team Qualcomm e Tensorflow consente ai modelli a 8 bit di funzionare fino a sette volte più velocesul DSP HVX che sulla CPU. È difficile sopravvalutare il potenziale di una quantizzazione facile da usare, soprattutto considerando il modo in cui Qualcomm si è concentrata sulle prestazioni INT8.

La CPU Kryo basata su ARM dello Snapdragon 865 è ancora un componente importante del motore AI. Anche se l'accelerazione hardware discussa nei paragrafi precedenti è preferibile, a volte capita non è possibile evitare applicazioni che non sfruttino adeguatamente questi blocchi, con conseguente CPU ricaderci. In passato, ARM aveva introdotto set di istruzioni specifici volti ad accelerare i calcoli basati su matrici e vettori. Nei processori ARMv7 abbiamo visto l'introduzione di ARM NEON, un'estensione dell'architettura SIMD che consente istruzioni simili a DSP. E con la microarchitettura ARMv8.4-A, abbiamo visto l'introduzione di un'istruzione specifica per i prodotti punto.

Tutti questi miglioramenti prestazionali pubblicati si riferiscono a molti dei carichi di lavoro descritti nella sezione precedente, ma vale anche la pena tenere presente che questi aggiornamenti dello Snapdragon 865 sono solo l'ultimo miglioramenti nelle capacità di intelligenza artificiale di Qualcomm. Nel 2017, abbiamo documentato la triplicazione delle capacità IA con il DSP Hexagon 685 e altri aggiornamenti del chipset. L'anno scorso hanno introdotto il loro acceleratore tensore e il supporto integrato per le funzioni di non linearità (come il già citato ReLU!) a livello hardware. Hanno inoltre raddoppiato il numero di acceleratori vettoriali e migliorato del 20% le prestazioni dell’unità di elaborazione scalare. Abbinando tutto questo a miglioramenti sul lato CPU, come quelle operazioni di prodotto scalare più veloci per gentile concessione di ARM e le ALU aggiuntive nella GPU, Qualcomm alla fine triplicato anche funzionalità di intelligenza artificiale grezza.

Guadagni pratici e casi d'uso estesi

Tutti questi aggiornamenti hanno portato a cinque volte le capacità AI dello Snapdragon 865 rispetto a soli due anni fa, ma forse la cosa più importante è che i miglioramenti sono arrivati ​​anche con migliori prestazioni per milliwatt, un parametro fondamentale per i dispositivi mobili dispositivi. Allo Snapdragon Summit 2019, Qualcomm ci ha fornito alcuni benchmark confrontando il suo motore AI con due concorrenti su varie reti di classificazione. Queste cifre sembrano essere raccolte utilizzando AIMark, un'applicazione di benchmarking multipiattaforma, che consente confronti con i processori della serie A di Apple e HiSilicon di Huawei. Qualcomm afferma che questi risultati utilizzano l'intero motore AI e dovremo aspettare ancora benchmarking approfondito per distinguere adeguatamente l'effetto di ciascun componente e determinare come sono stati questi test condotto. Ad esempio, i risultati dell'azienda B indicano il fallback della CPU? Per quanto ne so, AIMark attualmente non sfrutta la NPU del Kirin 990 sulle nostre unità Mate 30 Pro, ad esempio. Ma supporta il motore di elaborazione neurale Snapdragon, quindi trarrà sicuramente vantaggio dal motore AI di Qualcomm; dato che si tratta di test interni, non è esplicitamente chiaro se il benchmark stia utilizzando correttamente le librerie o l'SDK giusti per i suoi concorrenti.

Va anche detto che Qualcomm sta effettivamente confrontando le capacità di elaborazione AI dello Snapdragon 865 con i chipset precedentemente annunciati o rilasciati. È molto probabile che i suoi concorrenti apporteranno miglioramenti prestazionali di impatto simile nel prossimo ciclo, e se così sarà In questo caso, Qualcomm manterrebbe la corona solo per circa sei mesi dal momento in cui i dispositivi Snapdragon 865 arriveranno sugli scaffali. Detto questo, questi sono ancora indicativi del tipo di miglioramenti che possiamo aspettarci dallo Snapdragon 865. Qualcomm è stata generalmente molto accurata nel comunicare i miglioramenti delle prestazioni e i risultati dei benchmark delle prossime versioni.

Tutte le reti presentate in questi benchmark classificano immagini da database come ImageNet, ricevendole come input e producendo una delle centinaia di categorie. Ancora una volta, si basano sullo stesso tipo di operazioni descritte nella seconda sezione, sebbene le loro architetture siano numerose più complicati di questi esempi e sono stati considerati soluzioni all’avanguardia al momento della pubblicazione. Nel migliore dei casi, il concorrente più vicino fornisce meno della metà del numero di inferenze al secondo.

In termini di consumo energetico, Qualcomm ha offerto deduzioni per watt per mostrare la quantità di elaborazione AI possibile in una determinata quantità di potenza. Nel migliore dei casi (MobileNet SSD), il motore AI Snapdragon può offrire il doppio del numero di inferenze con lo stesso budget energetico.

L'alimentazione è particolarmente importante per i dispositivi mobili. Pensa, ad esempio, a un filtro Snapchat basato su rete neurale. Realisticamente, la pipeline di visione artificiale estrae le informazioni facciali e applica una maschera o un input la trasformazione deve essere eseguita solo a una velocità di 30 o 60 completamenti al secondo per ottenere un fluido esperienza. L’aumento delle prestazioni dell’IA grezza ti consentirebbe di ricevere input a risoluzione più elevata e di produrre filtri dall’aspetto migliore, ma potrebbe inoltre è semplicemente preferibile accontentarsi della risoluzione HD per caricamenti più rapidi e ridurre il consumo energetico e la limitazione termica. In molte applicazioni, “più veloce” non è necessariamente “migliore” e si possono quindi sfruttare i vantaggi di una migliore efficienza energetica.

Durante il secondo giorno dello Snapdragon Summit, il direttore tecnico senior di Snapchat Yurii Monastyrshyn è salito sul palco per mostrare come i loro ultimi filtri basati sul deep learning sono notevolmente accelerati da Hexagon Direct NN utilizzando il DSP Hexagon 695 su Snapdragon 865.

Oltre a ciò, man mano che gli sviluppatori ottengono l'accesso a implementazioni di reti neurali più semplici e sempre più applicazioni iniziano a impiegare tecniche di intelligenza artificiale, i casi di utilizzo della concorrenza saranno maggiormente sotto i riflettori poiché lo smartphone dovrà gestire più pipeline AI parallele contemporaneamente (per una singola applicazione che elabora segnali di input da varie fonti o per tutte le applicazioni eseguite separatamente sul dispositivo). Anche se vediamo notevoli guadagni in termini di efficienza energetica su DSP, GPU e CPU di elaborazione, Qualcomm Sensing Hub gestisce casi d'uso sempre attivi per ascoltare le parole trigger con un consumo energetico molto basso. Consente di monitorare audio, video e feed di sensori a meno di 1 mA di corrente, consentendo al dispositivo di individuare particolari segnali sonori (come un bambino che piange), oltre alle familiari parole chiave dell'assistente digitale. A questo proposito, lo Snapdragon 865 consente di rilevare non solo la parola chiave ma anche chi la sta pronunciando, per identificare un utente autorizzato e agire di conseguenza.

Più intelligenza artificiale sui dispositivi Edge

Questi miglioramenti possono in definitiva tradursi in vantaggi tangibili per la tua esperienza utente. Servizi che implicano traduzione, riconoscimento ed etichettatura di oggetti, previsioni di utilizzo o consigli su articoli, la comprensione del linguaggio naturale, l'analisi del parlato e così via otterranno il vantaggio di operare più velocemente e consumare meno energia. Disporre di un budget di elaborazione più elevato consente inoltre di creare nuovi casi d'uso ed esperienze e di spostare sul dispositivo i processi che in precedenza si svolgevano nel cloud. Sebbene il termine AI sia stato utilizzato in passato in modi dubbi, ingannevoli e persino errati (anche dagli OEM), molti dei servizi che utilizzi oggi si basano in qualche modo su algoritmi di apprendimento automatico un altro.

Ma oltre a Qualcomm, anche altri produttori di chipset hanno rapidamente ripetuto e migliorato su questo fronte. Ad esempio, il 990 5G ha portato un design core 2+1 NPU che ha portato a prestazioni fino a 2,5 volte superiori al Kirin 980 e doppie a quelle dell'Apple A12. Quando fu annunciato il processore, fu dimostrato che offriva fino al doppio dei fotogrammi (inferenze) al secondo dello Snapdragon 855 su INT8 MobileNet, che è difficile da quadrare con i risultati forniti da Qualcomm. L'Apple A13 Bionic, d'altra parte, avrebbe offerto una moltiplicazione della matrice sei volte più veloce rispetto al suo predecessore e migliorato il design del motore neurale a otto core. Dovremo aspettare fino a quando non potremo testare adeguatamente lo Snapdragon 865 su dispositivi commerciali rispetto ai suoi concorrenti attuali e futuri, ma è chiaro che la concorrenza in questo ambito non si ferma mai poiché le tre società hanno investito moltissime risorse per migliorare la propria intelligenza artificiale prestazione.