POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC...

14
POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC Valutazione di ImpulseC nell’ambito di co-design e nell’ambito di co-design e riconfigurabilità dinamica riconfigurabilità dinamica Relatore: Prof. Anna Antola Relatore: Prof. Anna Antola Correlatore: Ing. Marco Domenico Correlatore: Ing. Marco Domenico Santambrogio Santambrogio

Transcript of POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC...

Page 1: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

POLITECNICO DI MILANO

Marco Fracassi Matr. 665268

Pamela Gotti Matr. 663638

Valutazione di ImpulseC Valutazione di ImpulseC nell’ambito di co-design enell’ambito di co-design ericonfigurabilità dinamicariconfigurabilità dinamica

Relatore: Prof. Anna AntolaRelatore: Prof. Anna Antola

Correlatore: Ing. Marco Domenico SantambrogioCorrelatore: Ing. Marco Domenico Santambrogio

Page 2: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

2

SommarioSommario

•Obiettivi

•Panoramica dei linguaggi ad alto livello

•ImpulseC: potenzialità e limiti

•Hardware/software codesign

•Riconfigurabilità dinamica

•Test effettuati: algoritmi di rilevazione dei contorni

•Risultati

•Conclusioni e sviluppi futuri

Page 3: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

3

ObiettiviObiettivi

Studiare un framework di sviluppo per applicazioni basate su un linguaggio ad alto livello

Scegliere uno tra i vari framework disponibili sul mercato: è stato scelto ImpulseC

Capire come ImpulseC possa essere inserito in un discorso legato ad Hardware/Software co-design

Valutare ImpulseC per quanto riguarda stima delle prestazioni, cosimulazione, possibilità di partizionare l’applicazione

Capire come ImpulseC possa essere utilizzato nell’ambito di un sistema riconfigurabile

Studio di ImpulseC all’interno dell’architettura riconfigurabile Caronte

Page 4: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

4

Panoramica sui linguaggi ad alto Panoramica sui linguaggi ad alto livellolivello

SystemC

JHDL CatapultC ImpulseC

Linguaggio utilizzato

C++ Java C++ C

Tipologia Open source

Open source

Proprietario Proprietario

Produce codice sintetizzabile

No Non sempre

Sì – ma a volte

illeggibile

Supporto a simulazione HW

No Sì Sì No

Supporto a stima delle prestazioni

No No Sì No

Facilità di sviluppo Alta Alta ma “verbosa

Alta Alta

Page 5: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

5

ImpulseC : modello di ImpulseC : modello di programmazioneprogrammazione

Processo scritto

in standard C

Stream

outputsStream

inputs

Signal

input

Signal

outputs

Memoria condivisa

Lettura/scrittura

Page 6: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

6

ImpulseC: potenzialita’ e limitiImpulseC: potenzialita’ e limiti

Vantaggi:Compatibilità con i compilatori standardGUI di supporto per lo sviluppo dei progettiElevata semplicità nella generazione dell’HDLPossibilità di abilitare varie tipologie di ottimizzazione (pipeline, unroll) Possibilità di simulazione software

Limiti:Supporto solo a dati di tipo interoSupporto solo ad alcune funzioni matematicheMancano degli strumenti per la stima delle prestazioniVincoli per la programmazione hardware:

Supporto per la ricorsione assente, puntatori risolti a compile time, limitato supporto alle strutture, utilizzo di chiamate a funzione limitato, supporto ai file assente

Page 7: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

7

Hardware/software codesignHardware/software codesign

Page 8: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

8

Riconfigurabilità dinamicaRiconfigurabilità dinamica

Page 9: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

9

Metodologia: algoritmi di Metodologia: algoritmi di rilevazione dei contornirilevazione dei contorni

Canny Sobel

Page 10: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

10

Risultati: stima tempi di esecuzioneRisultati: stima tempi di esecuzione

Page 11: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

11

Risultati:sintesi dell’intera Risultati:sintesi dell’intera architetturaarchitettura

Canny Sobel

Area XP2VP7 XP2VP20 XP2VP30 XP2VP7 XP2VP20 XP2VP30

Slices 306% 162% 110% 672% 357% 242%

Flip flops 87% 46% 31% 41% 22% 15%

LUTs 258% 137% 93% 220% 117% 79%

IOBs 41% 29% 29% 14% 10% 10%

BRAMs 9% 4% 2% 9% 4% 2%

MULT18X18s

13% 6% 4% 27% 13% 8%

GCLKs 12% 12% 12 12% 12% 12%

Max.Freq.

57.039 MHz

57.039 MHz

57.039 MHz

64.602 MHz

64.602 MHz

64.602 MHz

Monolitico 7x7

Page 12: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

12

Risultati:sintesi dei singoli Risultati:sintesi dei singoli corecore

Monolitico 7x7

Canny Sobel

XC2VP7 XC2VP20

XC2VP30

XC2VP7 XC2VP20

XC2VP30

Filtraggio Filtraggio

Slice 98% 52% 35% 614% 326% 220%

LUTs 83% 44% 30% 192% 102% 69%

Max Freq.

66.173 66.173 66.173 64.602 64.602 64.602

Non Maximum suppression Conversione in scala di grigi

Slice 205% 109% 74% 81% 43% 29%

LUTs 193% 102% 70% 77% 41% 27%

Max Freq.

91.552 91.552 91.552 108.010 108.010 108.010

Isteresi Convoluzione

Slice 108% 58% 39% 117% 62% 42%

LUTs 97% 52% 35% 89% 47% 32%

Max.Freq 97.194 97.194 97.194 73.157 73.157 73.157

Page 13: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

13

Conclusioni e sviluppi futuriConclusioni e sviluppi futuri

Hardware/software codesign: ImpulseC supporta lo sviluppo di progetti e facilita il partizionamento dell’applicazione tra HW e SW; è molto veloce la generazione del VHDL, è quindi semplice l’esplorazione di scenari alternativi; non contiene strumenti per la stima delle prestazioni; consente una simulazione di tipo “desktop”Riconfigurabilita’: le architetture generate sono risultate troppo grandi per le schede disponibili in laboratorio: la riconfigurabilita’ e’ pertanto necessaria per la simulazione delle applicazioni sviluppate

All’interno del flusso di Caronte ImpulseC puo’ essere facilmente utilizzato per la generazione delle Black Box

Ulteriori sviluppi: stretta collaborazione con gli sviluppatori di ImpulseC e Xilinx per rendere completo il framework

Page 14: POLITECNICO DI MILANO Marco Fracassi Matr. 665268 Pamela Gotti Matr. 663638 Valutazione di ImpulseC nellambito di co-design e riconfigurabilità dinamica.

14

Fine presentazione