Google ha presentato la piattaforma aperta Coral NPU (Neural Processing Unit), che offre un acceleratore hardware open-source per modelli di machine learning e un toolkit software per il suo utilizzo con i principali motori di intelligenza artificiale. Coral può essere utilizzato come base per creare sistemi a bassa potenza su chip (SoC), adatti per applicazioni nell'Internet delle Cose, nell'edge computing e nelle schede di raccolta dati dai sensori, così come in dispositivi indossabili per consumatori a consumo energetico ultra-basso, come cuffie, occhiali per realtà aumentata e smartwatch. I risultati del progetto sono distribuiti con licenza Apache 2.0.
Coral NPU è progettato per eseguire applicazioni AI in modalità portatile con un consumo energetico minimo. La configurazione base del Coral NPU offre una prestazione di 512 miliardi di operazioni al secondo (GOPS) con un consumo di solo pochi milliwatt. L'NPU è concepito per una flessibile modifica dell'architettura a seconda delle esigenze dei produttori di SoC. Il primo produttore a iniziare la produzione di chip basati su Coral NPU sarà Synaptics, che ha annunciato una gamma di processori per dispositivi IoT Astra SL2610, inclusa la sottosistema Torq NPU, realizzata sulla base dell'architettura Coral NPU.
Tra le applicazioni tipiche del Coral NPU vi è l'uso dell'AI per l'elaborazione di immagini e suoni, interazione con l'utente e conteggio del contesto. Ad esempio, sugli dispositivi possono essere eseguiti modelli di linguaggio di grandi dimensioni e applicazioni per il riconoscimento facciale e degli oggetti, ricerca visiva, riconoscimento vocale, traduzione in tempo reale, trascrizione della voce, estrazione di parole chiave dal parlato, controllo dei gesti e dei comandi vocali, determinazione dell'attività dell'utente (camminare, correre, dormire) e del tipo di ambiente (casa, strada).
L'NPU utilizza un'architettura a 32 bit del set di istruzioni RISC-V RV32IMF_Zve32x, bus AXI4, pipeline di elaborazione delle istruzioni a quattro stadi con dispatch ordinato, completamento non ordinato delle istruzioni, dispatch scalare a quattro thread e dispatch vettoriale a due thread. Il processore supporta operazioni SIMD per l'elaborazione simultanea di vettori a 128 bit ed è dotato di 8 KB di memoria ITCM per le istruzioni e 32 KB di memoria DTCM per i dati.

L'NPU include tre componenti di elaborazione che lavorano insieme:
- Il nucleo per calcoli scalari è un front-end RISC-V leggero programmato in C, che gestisce il flusso di dati verso i nuclei principali e utilizza un modello di "esecuzione fino al completamento" per garantire funzionalità simili ai tradizionali CPU con consumo energetico estremamente ridotto.
- Coprocessore SIMD vettoriale che supporta le estensioni vettoriali del set di istruzioni RISC-V (RVV v1.0) e consente di eseguire simultaneamente più operazioni su grandi volumi di dati.
- Coprocessore matriciale che esegue in modo efficiente operazioni di moltiplicazione-adizione combinata (MAC), progettato per accelerare le operazioni di base delle reti neurali.

Per gli sviluppatori di applicazioni è stato preparato un set di compilatori per modelli AI (IREE e TFLM), un compilatore per programmi in C e un simulatore. È supportata la compilazione di modelli utilizzati in applicazioni AI basate sui framework TensorFlow, JAX e PyTorch. Il modello viene compilato in una rappresentazione intermedia universale, che viene poi trasformata tramite LLVM in un set di istruzioni RISC-V a basso livello supportato nel Coral NPU.

Fonte: opennet.ru
