Neural Processing Unit (NPU)
Un'unità di elaborazione neurale (NPU) è un processore progettato per i calcoli delle reti neurali, che esegue in modo efficiente modelli quantizzati su telefoni, PC e telecamere.
Un'unità di elaborazione neurale (NPU) è un processore progettato per eseguire reti neurali, basato su grandi array di unità multiply-accumulate alimentate dalla memoria on-chip. La maggior parte delle NPU è costituita da blocchi integrati in un system-on-chip accanto a CPU e GPU, dove eseguono inferenze per funzioni di fotocamera, voce e visione consumando una frazione dell'energia richiesta dagli altri due processori. Nel 2017, il Kirin 970 di Huawei e l'A11 Bionic di Apple, il cui Neural Engine era valutato a 600 miliardi di operazioni al secondo, hanno portato le NPU nei telefoni; in seguito sono arrivati l'NPU Hexagon di Qualcomm, l'NPU di Intel nei processori portatili Core Ultra a partire da dicembre 2023 e i chip Ryzen AI di AMD. I PC Copilot+ di Microsoft richiedono una NPU con prestazioni superiori a 40 trilioni di operazioni al secondo (TOPS). Il termine comprende anche i chip per data center: Huawei chiama NPU i propri acceleratori per data center Ascend e li usa per addestrare modelli di grandi dimensioni.
Differenze tra NPU, CPU e GPU#
L'inferenza di deep learning è dominata da moltiplicazioni di matrici e convoluzioni su dati prevedibili; perciò una NPU elimina gran parte della logica di controllo e della cache necessarie a una CPU per il codice generale, nonché la flessibilità che una GPU mantiene per la grafica. Dedica i transistor così risparmiati ad array di calcolo a funzione fissa e mantiene pesi e attivazioni nella memoria locale, perché spostare i dati consuma più energia che elaborarli. Le NPU calcolano anche a precisione ridotta, soprattutto INT8 e FP16: per questo un modello di solito deve essere sottoposto a quantizzazione prima di essere eseguito su una NPU e le prestazioni delle NPU sono indicate in TOPS INT8. L'Edge TPU Coral di Google, per esempio, raggiunge 4 TOPS a 2 TOPS per watt.
- CPU: esegue qualsiasi codice, gestisce le operazioni non supportate da una NPU ed è il più lento dei tre nelle operazioni su grandi matrici.
- GPU: processore parallelo programmabile che addestra ed esegue modelli in virgola mobile con throughput elevato, ma consuma più energia di una NPU.
- TPU: famiglia di acceleratori per matrici di Google. Le TPU cloud addestrano ed eseguono modelli nei data center; l'Edge TPU è una NPU a tutti gli effetti, anche se non nel nome.
- Chip neuromorfici: elaborano impulsi provenienti da reti neurali a impulsi e sono adatti ai sensori attivati da eventi; adottano un modello di calcolo diverso dalle operazioni dense su matrici delle NPU.
Eseguire un modello su una NPU#
Una NPU esegue un programma compilato, non un grafo PyTorch o ONNX. Un compilatore del produttore converte la rete, in anticipo o al caricamento da parte del runtime, spesso la quantizza in INT8 usando immagini di calibrazione, di solito fissa la forma dell'input e mappa ogni livello sull'hardware. I livelli non supportati dalla NPU vengono affidati a CPU o GPU, e ogni passaggio copia tensori da un processore all'altro:
Ogni fallback aggiunge trasferimenti e costringe un processore ad aspettare l'altro; perciò le architetture per dispositivi edge privilegiano operatori standard come convoluzioni, attivazioni della famiglia ReLU e pooling. I runtime come ONNX Runtime, Core ML di Apple, LiteRT di Google e OpenVINO di Intel gestiscono questa suddivisione e scelgono la NPU quando è presente.
Dove vengono usate le NPU#
Gli smartphone usano le NPU per la fotografia computazionale, il riconoscimento vocale sul dispositivo, il riconoscimento facciale e la traduzione in tempo reale, mantenendo immagini e audio sul dispositivo per tutelare la riservatezza dei dati. Sui PC con IA, Windows Studio Effects esegue sulla NPU la sfocatura dello sfondo, la correzione del contatto visivo e l'inquadratura automatica durante le videochiamate, lasciando libere CPU e GPU. Nell'IA edge, le NPU di Rockchip, Hailo e DEEPX eseguono il rilevamento degli oggetti in telecamere di sicurezza, droni e robot senza connessione di rete.
Ultralytics YOLO26 esporta nei formati compilati richiesti da queste NPU tramite la modalità di esportazione, tra cui OpenVINO per le NPU Intel, Core ML per l'Apple Neural Engine, QNN per l'NPU Hexagon di Qualcomm, RKNN per Rockchip e il formato .om per Huawei Ascend. Si addestra anche sulle NPU Ascend, selezionate con device="npu:0" o device="npu:0,1" per l'addestramento su più NPU.










