EO_493

EDA/SW/T&M 62 - ELETTRONICA OGGI 493 - APRILE 2021 NEURAL NETWORKS rametrici, il cui scopo è ottenere l’invarianza spaziale riducendo la risoluzione delle mappe funzionali. I li- velli di pooling più spesso usati sono le operazioni di massimo e di media. Vincoli di sistema I sistemi embedded condividono alcuni vincoli con al- tri sistemi digitali. Tuttavia, ci sono esigenze e requisiti specifici che hanno più importanza per questi disposi- tivi che nel caso di server o desktop. In questa sezione tali vincoli vengono illustrati pensando agli algoritmi di apprendimento automatico. Consumo energetico L’obiettivo progettuale è quello di ridurre al minimo il consumo di energia conservando l’affidabilità e l’ef- ficienza del sistema. I sistemi embedded supportano sofisticate modalità di rispar- mio energetico con stati deep-sleep per ridurre il consumo di energia. Queste con- sistono nel riattivare solo periodicamente il sistema per eseguire attività specifiche e poi tornare allo stato di sospensione. Per- tanto, più lungo è il task e più elevata è la frequenza di riattivazione, maggiore sarà il tempo totale che il sistema trascorre in modalità ad alto consumo. Nel caso delle NN, la complessità del modello e il sovrac- carico di calcolo sono correlati al tempo necessario per completare il funziona- mento diretto. Memoria La dimensione di memoria è un parametro importante per le piattaforme embedded che spesso dispongono solo di dimensioni di memo- ria limitate. La memoria non volatile, in genere sotto forma di dispositivo flash su chip o connessa attra- verso un’interfaccia SPI, viene utilizzata per archiviare un codice dell’applicazione. La memoria volatile viene utilizzata per archiviare le variabili e caricare il codi- ce per l’esecuzione (tranne che con l’esecuzione sul posto). Un sistema raramente esegue solo algoritmi di apprendimento automatico, ma deve ospitare altri componenti tra cui stack di rete, sistema operativo, driver e buffer. Il tempo di accesso alla memoria e la cache del processore hanno un impatto significativo sulle prestazioni complessive di un sistema. L’unità di elaborazione centrale (CPU) può essere limitata, se è in attesa di istruzioni o dati. A seconda dell’architettu- ra, i processori embedded possono avere dimensioni di cache limitate. La connettività di rete è stata la chia- ve per lo sviluppo dell’IoT (Internet of Things). In un tipico sistema di machine learning, i dispositivi edge (ovvero quelli situati ai margini della rete) raccolgo- no e traslano i dati nel cloud, dove sono ulteriormente analizzati. Tuttavia, non sempre ciò è possibile o consi- gliato, perché determinate posizioni potrebbero avere una copertura di rete limitata. In alcuni casi può essere ragionevole elaborare i dati localmente e inviare solo i risultati finali, per ridurre l’utilizzazione della rete.Vale anche la pena notare che risvegliare un sistema, sta- bilire una connessione con un cloud e inviare dati per ricevere una risposta potrebbe richiedere più energia di quanto sarebbe necessario per elaborare i dati lo- calmente. Prestazioni In genere, un maggior numero di livelli NN si tradu- ce in una maggiore capacità e precisione del modello. Tuttavia, la ricerca viene condotta per costruire mo- delli altamente ottimizzati in termini di prestazioni e requisiti di memoria, che sono ancora molto accurati. Il tempo di inferenza, vale a dire il tempo necessario per calcolare una stima o una classificazione, dipende fortemente dalla frequenza di base, dal parallelismo e dal set di istruzioni. Maggiore è la frequenza, minore è il tempo di inferenza. In molti casi, oggi, l’accesso alla memoria viene indicato spesso come il collo di bottiglia che penalizza le prestazioni delle reti NN e causa l’arresto delle unità di elaborazione o degli ac- celeratori durante l’attesa per il riconoscimento o il caricamento dei dati. La memoria cache è la più vicina

RkJQdWJsaXNoZXIy Mzg4NjYz