AI non è un compito singolare – Anche le operazioni di base possono richiedere più motori di intelligenza artificiale
L’intelligenza artificiale ha molte applicazioni e ogni applicazione può avere molteplici compiti: l’intelligenza artificiale non è singolare.
Un grosso equivoco sull’intelligenza artificiale (AI) è che si tratti di un singolo compito o soluzione, specialmente nei dispositivi periferici. Molte aziende implicano che se si desidera l’intelligenza artificiale nel telefono, nell’auto o in qualsiasi altra cosa, è sufficiente un singolo motore di intelligenza artificiale. Sfortunatamente, l’elaborazione AI non è così semplice. Anche la funzione AI più elementare, come rispondere a una query vocale, può richiedere il completamento di più attività. Di conseguenza, per completare ciascuna attività sono necessari più motori di intelligenza artificiale o unità di elaborazione oppure i motori esistenti devono essere in grado di supportare più attività, il che richiede la riprogrammazione tra le attività per ciascun modello di intelligenza artificiale specifico.
Quando parliamo di AI, oltre il 90% di tutta l’elaborazione AI cloud e il 99% di elaborazione AI edge su dispositivi sono processi di inferenza – l’esecuzione di un task su un modello di rete neurale addestrato. Ciò significa che il modello utilizzato è già preprogrammato per essere eseguito su una qualche forma di unità di elaborazione, ad esempio un’unità di elaborazione centrale (CPU), un’unità di elaborazione grafica (GPU), un processore di segnale digitale (DSP), un gate gate programmabile sul campo (FPGA) ), Elaboratore di segnali di immagine (ISP), Unità di elaborazione video (VPU) o un’unità di elaborazione neurale personalizzata (NPU). Le mie scuse per il sovraccarico di acronimo, ma essenzialmente il modello di rete neurale deve essere eseguito su una qualche forma di un circuito logico. Per eseguire più modelli contemporaneamente o in rapida successione, è necessario disporre di più motori di elaborazione o di un circuito complesso che può essere diviso in più unità, ad esempio un FPGA.
Se si considera che anche l’elaborazione dell’audio e dell’immagine, le funzioni AI più comuni, possono richiedere più attività, è una sfida eseguirle con una sola unità di elaborazione. L’elaborazione audio, ad esempio, può richiedere il filtraggio e la cancellazione del rumore, l’elaborazione del linguaggio naturale, il riconoscimento cognitivo e il ragionamento per la risposta o reazione appropriata. Ogni attività può trarre vantaggio dall’utilizzo dell’elaborazione AI e deve essere eseguita simultaneamente o in sovrapposizione per fornire un tempo di risposta accettabile, che in genere è in alcuni 10 secondi di millisecondi per una ragionevole qualità del servizio e inferiore a 10 millisecondi per ciò che sarebbe considerato reale interazione temporale.
Lo stesso vale per la visione artificiale, che può comportare la rilevazione di oggetti, il riconoscimento di oggetti, il movimento di oggetti e la determinazione del percorso, oltre a determinare un’azione da intraprendere. Se, ad esempio, la visione artificiale viene utilizzata in un sistema di sicurezza domestica, il sistema potrebbe dover decidere quando informare le autorità e le autorità da notificare.
Ora considera quanto sia difficile quando hai più funzioni all’interno di una piattaforma. Uno smartphone può utilizzare l’elaborazione AI per un numero qualsiasi di funzioni, tra cui gestione della batteria, miglioramento dell’audio, cancellazione del rumore, front-end di un assistente virtuale, realtà aumentata, elaborazione delle immagini, elaborazione video, elaborazione del segnale per migliorare la connettività, sicurezza e come qualsiasi host di funzioni integrate in altre applicazioni caricate sul telefono. Quindi, quando un fornitore System-on-Chip (SoC) mobile o OEM afferma di avere in una NPU integrata, chiedo quale funzione stanno utilizzando l’NPU per e quando? Oggi, la maggior parte utilizza la NPU solo per una funzione, ma promuove la NPU come IA sul chip o sullo smartphone come forma di marketing. Mentre potrebbe essere possibile eseguire alcune funzioni mentre altre sono inattive,
Lo sviluppo di sistemi di guida autonomi per automobili è ancora più difficile perché l’elaborazione dei dati da più sistemi di sensori e l’esecuzione di funzioni di controllo deve essere eseguita simultaneamente e con ridondanza per soddisfare gli standard di sicurezza come ISO 26262 e Federal Motor Vehicle Standard (FMVSS). Ciò richiede più unità di elaborazione AI in una forma o nell’altra per eseguire ciascuna funzione. In alcuni casi, queste funzioni possono essere distribuite tra unità di elaborazione, come DSP per l’elaborazione dei segnali, GPU o ISP per l’elaborazione delle immagini, NPU ottimizzate per funzioni specifiche, FPGA programmate per una varietà di compiti o anche attività simultanee, o anche per scopi generali CPU. Inoltre, il sistema di guida autonomo può disporre di più unità per più attività e per ridondanza.
In un precedente articolo, ho menzionato che non esiste una singola soluzione AI perché non ci sono due carichi di lavoro uguali. Ciò crea un’opportunità per un’ampia varietà di soluzioni di elaborazione AI. Tuttavia, la seconda parte di questo è che all’interno di ogni funzione AI possono essere più attività che richiedono più unità di elaborazione AI.
Ogni chip e ogni sistema dovrebbero essere considerati una soluzione di elaborazione eterogenea con più motori per eseguire funzioni per le quali sono più adatti, specialmente quando si tratta di AI. Le CPU da sole non saranno mai una soluzione ottimale per l’elaborazione di più task AI. I SoC con più motori di accelerazione sono ideali per carichi di lavoro ben definiti e gli FPGA sono i migliori per la riconfigurabilità a causa di carichi di lavoro multipli o requisiti in evoluzione. Tuttavia, tutti questi possono essere combinati in un’unica soluzione SoC o multichip.
I leader nell’IA, dal silicio ai sistemi, saranno quelli che padroneggiano il calcolo eterogeneo per eseguire più task AI in tempo reale.