Upload
cefriel
View
591
Download
2
Tags:
Embed Size (px)
DESCRIPTION
La presentazione fatta il 21 giugno 2012 durante l'evento Embedded - IC & Automation Fortronic
Citation preview
Evoluzione dei Sistemi Embedded: Verso architetture multi-core
21 Giugno 2012 Centro Congressi Milanofiori - Milano
Embedded - IC & Automation Fortronic
Carlo Brandolese
Patrick Bellasi
CEFRIEL – Politecnico di Milano
Evoluzione dei Sistemi Embedded: Verso architetture multi-core by CEFRIEL-Politecnico di Milano is
licensed under a Creative Commons Attribution - Noncommercial - No Derivative Works 3.0 Unported
License.
2
Multi-Core in Ambito Embedded
Ci stanno già andando... non perdiamo la corsa!
© CEFRIEL – Politecnico di Milano 2012
© CEFRIEL – Politecnico di Milano 2012
3
Multi-Core in Ambito Embedded Che Vantaggi Offre?
Non solo miglioramento delle prestazioni...
… diverse ottimizzazioni progettuali
riduzione di componenti e TCO e.g. disponibilità di GPU integrate con processori general-purpose
=> no display processor esterno, migliori prestazioni
integrazione di più funzionalità e.g. sfruttando alcuni cores interni per funzionalità specifiche
=> eliminazione di DPS o FPGA esterni
riduzione di “form-factor” e dei consumi => riduzione o eliminazione di dissipatori
=> in ambito mobile: batterie e packaging più piccoli
© CEFRIEL – Politecnico di Milano 2012
4
Multi-Core in Ambito Embedded A che punto siamo?
La scelta di una archiettura è fondamentale influenza direttamente le prestazioni del sistema
oltre che la sue funzionalità, e.g. componenti, I/O, consumi energetici...
Soluzioni multi-core si stanno affermando sempre più prospettiva di maggiori prestazioni grazie al parallelismo
Esistono diverse sfumature possibili Multi-core asimmetrici
ogni core esegue indipendentemente
interazione di applicationi real-time e non
Multi-core simmetrico multipli threads gestiti da un singolo SO che alloca le risorse condivise
Virtualizzazione un “ipervisore” isola ed alloca le risorse a diversi run-time
consente l'integrazione di real-time, general purpose e software legacy
© CEFRIEL – Politecnico di Milano 2012
5
Multi-Core in Ambito Embedded Cosa Sono i Multi-Cores Asimmetrici (AMP)?
Gestione “manuale”
delle risorse condivise
Ogni core ha un suo OS ogni core esegue indipendentemente
integrazione di applicazioni legacy
mix Real-Time e General-purpose
comunicazione IPC fra cores
Svantaggi Time-to-market
Impattato dalla gestione delle risorse condivise che
aumenta la complessità del codice
Scalabilità limitata dall'aumento di complessità
Prestazioni probabile sotto-utilizzazione dei core
intense comunicazioni fra cores
© CEFRIEL – Politecnico di Milano 2012
6
Multi-Core in Ambito Embedded Cosa Sono i Multi-Cores Simmetrici (SMP)?
Unico OS che gestisce tutti i cores Scalabilità
è possibile migliorare le prestazioni
“semplicemente” aumentando i cores
Prestazioni Il bilanciamento del carico consente di sfruttare al
massimo i cores
semplici privitive di gestione dei threads
Time-to-market gestione delle risorse condivise a carico dell'OS
conseguente riduzione di complessità
sia di design che di codice
Svantaggi le applicazioni debbono essere scritte
“bene” per sfruttare il parallelismo
Le risorse condivise vengono gestite in
modo trasparente dal Sistema
Operativo
© CEFRIEL – Politecnico di Milano 2012
7
Multi-Core in Ambito Embedded Lightway vs Full-Virtualization
A volte serve sia AMP che SMP coesistenza di OS diversi
e.g. RTOS e General-Purpose OS
parallelizzaione spinta delle applicazioni
La virtualizzzazion garantisce la
flessibilità dell'SMP e il controllo
dell'AMP
Lightway virtualization sfrutta servizi dell'OS per creare “containers”
isolamento applicazioni, assegnamento risorse
Full virtualization richiede un monitor hardware
supporta molteplici OS indipendenti ciascuno vede solo parte delle risorse
Le risorse condivise vengono
partizionate (dinamicamente) fra le
diverse applicazioni
© CEFRIEL – Politecnico di Milano 2012
8
Multi-Core in Ambito Embedded Quali Solozioni Vanno per la Maggiore?
Molte piattaforme embedded attuali sono basate su
architetture multi-core asimmetriche diversi processori integrati all'interno dello stesso chip, o sistema
L'avvento dei System-on-Chip (SoC) ha favorito questo
tipo di soluzioni
Architetture specializzate vengono impiegate per
supportare funzionalità specifiche elaborazione di dati multimediali (Audio/Video DSP)
accellerazione e rendering grafico (GPU)
© CEFRIEL – Politecnico di Milano 2012
9
Multi-Core in Ambito Embedded Dalle Board ai SoC... fino a PSoC ed FPGA
© CEFRIEL – Politecnico di Milano 2012
10
Multi-Core in Ambito Embedded Dentro un OMAP5 (Texas Instuments)
Samsung Galaxy S3
© CEFRIEL – Politecnico di Milano 2012
11
Multi-Core in Ambito Embedded Dentro un U9500 (ST-Ericsson)
Nokia Lumia 800
© CEFRIEL – Politecnico di Milano 2012
12
Multi-Core in Ambito Embedded Abbiamo Davvvero Bisogno di Tante Prestazioni?
La disponibilità di architetture parallele consente lo
sviluppo di nuove classi di applicazioni
Le elaborazione multimediali in generale possono
beneficiare di queste nuove architetture grandi quantità di dati da processare (e.g. video in FullHD)
stringenti vincoli temporali (e.g. elevati framerates)
I dispositivi portatili sono sempre più poli-funzionali
Nuove classi di applicazioni stanno emergendo
come richieste di mercato
© CEFRIEL – Politecnico di Milano 2012
13
Multi-Core in Ambito Embedded
Quali Nuove Applicazioni Possiamo Aspettarci?
Nuove forme di interazione “uomo-macchina”
Google Glass Project
Augmented Reality
© CEFRIEL – Politecnico di Milano 2012
14
Multi-Core in Ambito Embedded
Quali Nuove Applicazioni Possiamo Aspettarci?
Diffusione della Computer Vision
Businness
Intelligence
Controllo
di Accessi
Monitorazzio
& Sicurezza
Assistenza alla
guida
© CEFRIEL – Politecnico di Milano 2012
15
Multi-Core in Ambito Embedded Quali Caratteristiche Hanno Queste Applicazioni?
Esempio: Scalable Video Coding (SVC) singolo stream video in ingresso
diverse possibili configurazioni di decodifica
Framerate
Qualità
Risoluzione
A diversi profili di decodifica corrispondono diversi
rapporti qualità vs prestazioni richieste
© CEFRIEL – Politecnico di Milano 2012
16
Multi-Core in Ambito Embedded Quali Caratteristiche Hanno Queste Applicazioni?
Esempio: Scalable Video Coding (SVC) Elevata complessità computazionale...
… ma anche elevato livello di parallelismo
Tuttavia spesso questi sono solo alcuni passi
di applicazioni complete...
© CEFRIEL – Politecnico di Milano 2012
17
Multi-Core in Ambito Embedded Quali Caratteristiche Hanno Queste Applicazioni?
Diverse fasi di elaborazione ciascuna con diverso grado di
parallelismo e requisiti di risore
computazionali
si prestano ad essere eseguite in
concorrenza fra loro
Si prestano ed essere
programmate seguendo “nuovi”
paradigmi di programmazione
Stream-Processing
© CEFRIEL – Politecnico di Milano 2012
18
Multi-Core in Ambito Embedded Quali Scenari Computazionali?
Sistemi multi-core molteplici unità di elaborazione
sia simmetriche che asimmetriche
Applicazioni complesse significativi carichi computazionali
variabilità dei requisiti in termini di risorse anche a run-time, i.e. cambiano durante l'esecuzione
composte da sequenze di attività parallelizzabili
Sistemi polifunzionali diversi carichi di lavoro (mixed workload)
diversi requisiti funzionali... e.g. tempistiche, qualità
… che possono anche modificarsi a run-time
© CEFRIEL – Politecnico di Milano 2012
19
Evoluzioni Architetturali
Tanti grossi: bene... molti piccoli: meglio!
© CEFRIEL – Politecnico di Milano 2012
20
far-lotti
in-lotto
fra-chip
in-chip
22nm
4nm
Evoluzioni Architetturali Future Quali Sono le Prossime Sfide?
Fattori Tecnologici e Produttivi i “transistor” di nuova generazione hanno
dimensioni in scala “atomica”
le variazioni in fase di produzione
divengono sempre più significative
non è più possibile differenziare i prodotti
in funzione del lotto di produzione
differenze di misurano addirittura
all'interno del singolo chip Imoatto su prestazioni e consumi energetici
Richiesta di maggiore flessibilità...
© CEFRIEL – Politecnico di Milano 2012
21
[Ramacher09]
Esempio: produzione
di dispositivi multistandard
Evoluzioni Architetturali Future Come Supportare La Flessibiltià?
Progettare e produrre HW custom è costoso oltre certi livelli di integrazione non è più conveniente
Spinta verso “architetture programmabili”
Vantaggi Manutenibilità post-produzione
Supporto per applicazioni diverse sia presenti che future
Riduzione di costi e tempi di produzione
da SW ad-hoc su HW ad-hoc...
… a SW ad-hoc su HW generico
© CEFRIEL – Politecnico di Milano 2012
22
Evoluzioni Architetturali Future Come si Confrontano Con le Soluzioni Attuali?
Rappresentano una nuova classe di dispositivi
Architetture
programmabili
Gops/mm^2 @ 32nm
© CEFRIEL – Politecnico di Milano 2012
23
Computation
Fabric
Multi-Core
Computation
Cluster
Evoluzioni Architetturali Future Come si Presentano Queste Nuove Architetture?
Da HW ad-hoc ad HW generico Accelleratori Specializzati
Accelleratore Programmabile
© CEFRIEL – Politecnico di Milano 2012
24
Evoluzioni Architetturali Future Come Possiamo Sfruttarle?
Esempio: Software Defined Radio (SDR)
Approccio
“classico”
Approccio
“ri-programmabile”
© CEFRIEL – Politecnico di Milano 2012
25
Evoluzioni Architetturali Future Che Sfide Si Presentano a Livello Software?
Sviluppo di codice parallelizzato
Nuovi paradigmi di programmazione a supporto dello svilupppo di SW parallelizzato
in grado di astrarre dallo specifico target “write one run anywhere”
Programmazione “a componenti” riutilizzabili moduli SW autonomi e parallelizzabili (filters)
con interfaccie ben definite e quindi componibili (pipeline)
Ambienti di sviluppo descrizione ad alto livello delle applicazioni
simulazione ed ottimizazione per lo specifico target
suppporto a diversi modelli di ptrogrammazione parallela
© CEFRIEL – Politecnico di Milano 2012
26
Evoluzioni Architetturali Future Quali Paradigmi di Programmazione? (1/3)
Proprietari e/o per specifiche piattaforme
Fractal definito da OW2 Consortium
middleware modulare ed estensibile
agnostico al linguaggio (e.g. C, Java, .NET)
Native Programming Model sviluppato da STMicroelectronics
collezione di primitive di
decomposizione-composizione
Thread Building Blocks (TBB) proposta di Intel
principalment orientata ad HPC
supporta solo su x86
http://fractal.ow2.org
http://threadingbuildingblocks.org
© CEFRIEL – Politecnico di Milano 2012
27
Evoluzioni Architetturali Future Quali Paradigmi di Programmazione? (2/3)
OpenCL: “lo” standard Industriale
© CEFRIEL – Politecnico di Milano 2012
28
Evoluzioni Architetturali Future Quali Paradigmi di Programmazione? (3/3)
standard aperto per la
programmazione parallela
di sistemi eterogenei
OpenCL in pillole linguaggio (C99-based) per scrivere kernels
i.e. “funzioni” da eseguire su un device OpenCL
parallelismo a livello di dati e task
API per controllar la piattaforma architettura “astratta” di riferimento
http://www.khronos.org/opencl
configura la
piattaforma
Copia dati
da elaborare
Esecuzione parallela
su più cores
Copia dei
risultati
© CEFRIEL – Politecnico di Milano 2012
29
Evoluzioni Architetturali Future Che Sfide Si Presentano a Sistema Operativo?
Gestione Dinamica delle Risorse
Identificare un compromesso ottimale fra
esigenze prestazionali (QoS) delle applicazioni e
disponibilità delle risorse
Risorse HW condivise, diverse classi di applicazioni sofisticati dispositivi many-core di nuova generazione
variabilità di processo ed a run-time
risorse condivise fra applicazioni in competizione
Necessità di efficaci ma semplici supporti SW in grado di adattarsi a diversi modi d'uso, a run-time
adeguati al supporto di applicazioni sia best-effort che critiche
© CEFRIEL – Politecnico di Milano 2012
30
Evoluzioni Architetturali Future Che Supporto Ci Si Aspetta dalla GDR? (1/2)
Astrazione dalle risorse
Assegnare opportunamente le risorse
al fine di ottimizzare l'uso della piattaforma
Considerando fenomeni di variazione di processo
hot-spots e rotture
variazioni del carico
Possibili strategia? 1. assegnamento di “risorse virtuali”
2. mapping su risorse fisiche a run-time gestendo opportunamente i fenomeni di variabilità
Assiste
nza alla
guida
Workloads Critici
Glass
Project
Workloads Best-Effort
Run-Time
Resources
Manager
Richiesta Risorse
Assegnazione Risorse
© CEFRIEL – Politecnico di Milano 2012
31
Tutto cambia... per rimanere simile!
Conclusioni
© CEFRIEL – Politecnico di Milano 2012
32
Evoluzioni Architetturali Future Come si Possono Sfruttare i Many-Cores?
Con lo stesso principio dei LEGO
“raccogliere, mettere insieme”
dal Danese “leg godt” = “giocare bene”
© CEFRIEL – Politecnico di Milano 2012
33
Conclusioni Perchè Abbiamo “Un Data-Server In Tasca”?
L'embedded va verso architetture many-core molte unità di calcolo, “sostanzialmente” simili
applicazioni complesse decomposte in moduli parallelizzabili
Le funzionalità di un dispositivo sono polimorfiche dipendono da come lo si programma
possono cambiare a run-time adattandosi quindi agli scenario d'uso
Tutto ciò è molto simile a quello
che già avviene in ambito HPC
Barcelona Supercomputing Centre
10.240 processors
Tilera Tile-Gx100
100 cores indipendenti
Barcelona Supercomputing Centre
cambia solo il “fattore si scala”
stessi benefici ma “portabili”
© CEFRIEL – Politecnico di Milano 2012
34
Grazie per l'attenzione
© CEFRIEL – Politecnico di Milano 2012