Un modo più facile per realizzare potenti applicazioni Edge IA

Progettare un dispositivo semplice basato su sensori per Internet delle cose (IoT) non è complicato, ma costruirne uno connesso che sia in grado di gestire l'apprendimento automatico (ML) sull'edge è tutta un'altra storia. Una famiglia di processori, una scheda di sviluppo e il relativo software di NXP Semiconductors sono progettati per superare le sfide chiave in termini di funzionalità, prestazioni e sviluppo, per un'implementazione più rapida delle capacità sofisticate di intelligenza artificiale (IA) sull'edge in applicazioni industriali e IoT.

I progettisti hanno già iniziato a sfruttare soluzioni di Edge IA in grado di eseguire l'inferenza ML su dispositivi a basso consumo senza fare affidamento su risorse basate sul cloud. In genere, funzioni come il rilevamento delle parole di attivazione, l'analisi dei modelli di dati dei sensori e il rilevamento di oggetti base possono essere gestite da processori ad alta efficienza energetica che eseguono modelli ML creati con strumenti e strutture di ottimizzazione. I problemi sorgono quando si tenta di sfruttare le risorse del processore per affrontare problemi più complessi, in particolare quelli che richiedono una risposta in tempo reale o quasi.

Come un processore multicore può accelerare di molto l'inferenza ML

NXP Semiconductors affronta le sfide di funzionalità e prestazioni di questi progetti emergenti di Edge IA in tempo reale con la sua famiglia di processori per applicazioni i.MX 93 (Figura 1).

Figura 1: Con la loro combinazione di risorse di elaborazione, sistema di sicurezza, memoria e set completo di clock, timer, opzioni di connettività e interfacce, i processori per applicazioni i.MX 93 forniscono la base per i progetti di Edge IA. (Immagine per gentile concessione di NXP Semiconductors)

Questi dispositivi sono dotati di un ricco set di funzionalità, fra cui opzioni multimediali, di memoria, di interfacce e di connettività, e offrono una valida combinazione di risorse di elaborazione:

  • Fino a due core del processore per applicazioni (AP) ARM Cortex-A55 ad alte prestazioni per l'elaborazione di applicazioni basate su Linux
  • Una piattaforma ARM Cortex-M33 a bassissimo consumo per l'elaborazione dei controlli in tempo reale a bassa latenza
  • Un'unità di elaborazione neurale (NPU) microNPU ARM Ethos-U65 per un'esecuzione efficiente dell'inferenza ML
  • L'enclave sicura EdgeLock integrata (ESE) di NXP fornisce una radice di attendibilità per l'avvio e la gestione sicuri delle chiavi, funzioni crittografiche al volo e altre funzionalità richieste per proteggere le applicazioni edge

Utilizzando le funzionalità di questi processori, è possibile partizionare grandi applicazioni di Edge IA in parti gestibili: invece di rubare cicli dal codice dell'applicazione in esecuzione sui core Cortex-A55, la NPU si fa carico dell'esecuzione di algoritmi della rete neurale ad alta intensità di calcolo. Separatamente, il core Cortex-M33 continua a dedicarsi ad attività sensibili alla latenza, come l'acquisizione dei dati dei sensori o il controllo dei processi, mentre l'ESE si occupa di proteggere il sistema, il codice software e i dati critici. Come mostrato di seguito, la capacità della NPU di liberare i core Cortex-A55 dal lavoro di inferenza ML è vitale per le applicazioni di Edge IA che richiedono una reattività quasi in tempo reale.

Come una scheda hardware e un software accelerano lo sviluppo delle applicazioni

Sebbene le funzionalità e le prestazioni del processore siano fattori fondamentali, lo sviluppo efficace delle applicazioni di Edge IA dipende dalla capacità di acquisire rapidamente familiarità con le potenzialità del processore e di sviluppare software efficaci in tempi brevi. La combinazione della scheda di sviluppo FRDM-IMX93 di NXP (Figura 2) e delle relative risorse di sviluppo software offre tutto l'occorrente per iniziare a creare applicazioni.

Figura 2: La scheda di sviluppo FRDM-IMX93 integra un processore per applicazioni i.MX 93 e diversi chip di supporto per offrire un sistema completo per lo sviluppo. (Immagine per gentile concessione di NXP Semiconductors)

La scheda FRDM-IMX93 è stata progettata per semplificare lo sviluppo di applicazioni che utilizzano la famiglia di processori i.MX 93. Nonostante misuri solo 105 × 65 mm, la scheda include 2 GB di memoria ad accesso casuale dinamica (DRAM) 4X a doppia velocità di trasmissione dati a basso consumo (LPDDR4X), una scheda multimediale embedded 5.1 da 32 GB (eMMC5.1), un circuito integrato di gestione dell'alimentazione (PMIC), un modulo radio ricetrasmittente che fornisce Wi-Fi 6, Bluetooth 5.4 e una rete personale wireless 802.15.4 e altri chip di supporto richiesti. Le basette, i connettori e l'interfaccia di debug della scheda consentono di aggiungere facilmente schede di espansione per eseguire il debug del sistema.

La scheda offre diverse opzioni di configurazione, ma è pronta per essere utilizzata in modalità predefinita. Una volta che display e mouse sono stati collegati e che la scheda riceve alimentazione tramite il cavo USB in dotazione, viene avviata dall'eMMC, che viene fornita pre-flashata con un'immagine demo binaria Linux NXP.

Le applicazioni predefinite accelerano l'implementazione Edge IA

Il vero punto di forza della scheda di sviluppo FRDM-IMX 93 risiede nel suo software e negli strumenti associati. Il pacchetto software GoPoint per i processori per applicazioni i.MX di NXP, incluso nell'immagine demo predefinita, fornisce una serie di applicazioni di esempio accessibili tramite l'interfaccia utente grafica (GUI) GoPoint. Quando l'utente avvia un'applicazione, GoPoint lo guida attraverso tutti i passaggi di configurazione richiesti, come specificare la videocamera come sorgente video.

Per molti di noi, è forse altrettanto interessante il fatto che il repository di applicazioni di esempio di NXP contenga il codice sorgente Python completo per ogni applicazione GoPoint. Inoltre, nella documentazione per ogni applicazione vengono descritti l'architettura software, i modelli ML utilizzati e la configurazione dell'avvio. Ad esempio, nella documentazione per l'applicazione di apprendimento automatico a basso consumo i.MX 93 GoPoint viene illustrato il flusso di esecuzione tra i core Cortex-A55 e Cortex-M33, mostrando come Cortex-M33 svolga il lavoro pesante del rilevamento delle parole di attivazione, finché non si attiva Linux su Cortex-A33 per avvisare l'utente.

L'applicazione del sistema di monitoraggio del conducente (DMS) GoPoint di NXP dimostra un altro concetto importante: come intrecciare l'esecuzione di più modelli per rilevare diversi stati in un'applicazione più complessa. Dopo aver richiamato questa applicazione, selezionare la sorgente della videocamera e il processore di inferenza (ad esempio il processore per applicazioni o NPU), quindi eseguirlo. Durante l'esecuzione, viene visualizzato lo stato corrente del soggetto della videocamera (conducente), che indica se è distratto, assonnato, sbadiglia, sta fumando o usando un cellulare (Figura 3).

Figura 3: In esecuzione su un processore per applicazioni i.MX 93, un'applicazione GoPoint di esempio esegue l'inferenza su più modelli ML per rilevare diversi stati del conducente con una latenza di pochi millisecondi. (Immagine per gentile concessione di NXP Semiconductors)

Un'informazione alquanto interessante nel repository di ogni applicazione sono i dati sulle prestazioni, che mostrano la capacità della NPU di abilitare applicazioni Edge IA più efficaci. Nell'applicazione DMS, ad esempio, NXP ha riscontrato che l'esecuzione dell'inferenza di rilevamento di fumo/telefonata basata su CPU con un thread richiede 407,963 ms. L'esecuzione con due thread riduce il tempo di inferenza a 303,159 ms, ma il vero vantaggio è dato dall'impiego della NPU, in cui l'inferenza abbatte i tempi a soli 23,008 ms.

Conclusione

La capacità di un processore per applicazioni i.MX 93 a basso consumo di eseguire attività di inferenza consistenti con latenza quasi in tempo reale dischiude numerose possibilità per soluzioni di Edge IA in applicazioni industriali e IoT. Utilizzando la scheda di sviluppo e il software associati, è possibile realizzare queste applicazioni in modo rapido ed efficace.

Informazioni su questo autore

Image of Stephen Evanczuk

Stephen Evanczuk ha più di 20 anni di esperienza come autore sull'industria elettronica e ha scritto su una vasta gamma di argomenti tra cui hardware, software, sistemi e applicazioni, incluso l'IoT. Ha ricevuto un Ph.D. in neuroscienze sulle reti neuronali e ha lavorato nel settore aerospaziale su sistemi di sicurezza ampiamente distribuiti e sui metodi di accelerazione algoritmica. Attualmente, quando non scrive articoli su tecnologia e ingegneria, lavora su applicazioni di deep learning per i sistemi di riconoscimento e di raccomandazione.

More posts by Stephen Evanczuk
 TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum