3rd 3DDRESD: HERA

21
POLITECNICO DI MILANO HERA: HERA: Hardware Evolution Hardware Evolution over Reconfigurable over Reconfigurable Architectures Architectures - 3dDresd 2008 - - 3dDresd 2008 - D D ynamic ynamic R R econfigurability econfigurability in in E E mbedded mbedded S S ystems ystems D D esign esign Marco Castagna: [email protected]

Transcript of 3rd 3DDRESD: HERA

Page 1: 3rd 3DDRESD: HERA

POLITECNICO DI MILANO

HERA: HERA: Hardware EvolutionHardware Evolutionover Reconfigurableover Reconfigurable

ArchitecturesArchitectures- 3dDresd 2008 - - 3dDresd 2008 -

DDynamic ynamic RReconfigurability econfigurability inin EEmbeddedmbedded SSystemsystems DDesignesign

Marco Castagna: [email protected]

Page 2: 3rd 3DDRESD: HERA

22

OutlineOutline

Evolvable Hardware: definizioniCaratteristiche dell’EHWApprocci all’evoluzione hardwareRisultati ottenuti

Lavoro svolto: Contest GECCO 2008Descrizione del problemaPerchè EHW?Descrizione dei vincoli di progettazione degli individuiDescrizione degli individuiProcesso EvolutivoRisultati

HERA evolutive frameworkArchitettura principaleEsempi di istanze utilizzate

Page 3: 3rd 3DDRESD: HERA

33

Evolvable Hardware: definizioniEvolvable Hardware: definizioni

Hardware riconfigurabileHardware riconfigurabile

Algoritmi EvolutiviAlgoritmi Evolutivi

++

Page 4: 3rd 3DDRESD: HERA

44

•FlessibilitàFlessibilità

•EfficienzaEfficienza

A patto di…A patto di…sapere esattamente sapere esattamente cosacosa si vuolesi vuole

ottenute ottenute autonomamenteautonomamente

Evolvable Hardware: vantaggiEvolvable Hardware: vantaggi

Page 5: 3rd 3DDRESD: HERA

55

Evoluzione Evoluzione Gate Gate LevelLevel

Evoluzione Evoluzione Functional Functional LevelLevel

potente ma…potente ma…

Approcci all’evoluzione Approcci all’evoluzione hardwarehardware

Page 6: 3rd 3DDRESD: HERA

66

Risultati ottenutiRisultati ottenuti

Page 7: 3rd 3DDRESD: HERA

7

GECCO 2008 contest: descrizione del GECCO 2008 contest: descrizione del problema problema

•“Evolvere un agente in grado di raccogliere il maggior numero di risorse di due tipi diversi disposte su una mappa con altezze variabili e zone non oltrepassabili”

7

Page 8: 3rd 3DDRESD: HERA

8

GECCO 2008 contest: descrizione del GECCO 2008 contest: descrizione del problema problema

•Informazioni disponibili all’agente:Griglia 5x5 delle altezze delle posizioni attorno a quella attualeQuantità raccolte delle due risorseRisultato dell’ultima mossa (raccolto 1, raccolto 2, niente)Passi di simulazione rimanenti

8

In output l’agente fornisce la “posizione relativa” della prossima cella in cui spostarsi.

0 1 2 3 4

5 6 7 8 9

10 11 12 13 14

15 16 17 18 19

20 21 22 23 24

Page 9: 3rd 3DDRESD: HERA

99

Scoprire fino a che punto queste tecniche possono essere usate per risolvere problemi “complessi” con una specifica di alto livello.

Dotare il controllore evoluto delle caratteristiche che contraddistinguono l’Hardware Evolvibile: fault tolerance e reattività ai cambiamenti d’ambiente.

Testare il nostro framework di evoluzione

Perché è quello che facciamo :P

Motivazioni: Perché EHW?Motivazioni: Perché EHW?

Page 10: 3rd 3DDRESD: HERA

1010

Vincoli di progettazione degli individui:Vincoli di progettazione degli individui:

Idea base: progettare gli individui in modo che sia possibile evolverli/implementarli su una FPGA.

Dimensione (genotipo/area occupata) massima fissata e semplice struttura di connessioniBlocchi base molto semplici

Cartesian Genetic Programming:Cartesian Genetic Programming:

Griglia rettangolare di ROWSxCOLS “blocchi base” connessi tra di loroUn singolo elemento finale a rappresentare

l’output

Page 11: 3rd 3DDRESD: HERA

1111

Descrizione degli individuiDescrizione degli individui

Ogni blocco può avere 2, 1 o 0 ingressi.

Ogni ingresso può essere:Uno dei dati disponibili direttamente all’individuo.L’uscita di uno dei blocchi appartenenti alle 5

colonne che lo precedono.

Page 12: 3rd 3DDRESD: HERA

1212

Descrizione degli individuiDescrizione degli individui

Ogni blocco base può implementare:Semplici operazioni matematiche (+,-,*,/...)Semplici operazioni di confronto (CMP, MIN,

MAX...)Semplici operazioni di “memoria” (flip-flip,

media...)Costanti

L’output finale è il residuo modulo 24 dell’uscita dell’ultimo blocco (incrementata di 1 se >=12).

Page 13: 3rd 3DDRESD: HERA

13

Processo evolutivo adottatoProcesso evolutivo adottato

13

Evoluzione incrementale con due funzioni di fitness differenti.

1)Evoluzione parallela di 10 popolazioni (GA standard con migrazione degli individui migliori) usando la funzione di fitness “visits”.

2)I 10 migliori individui di ogni popolazione sono stati usati come popolazione di partenza per l’evoluzione usando la funzione di fitness “contest”.

Ogni individuo è stato testato (simulato in software) su 2 mappe differenti e 10 punti di inizio casuali per ogni mappa. Lo score finale è la media delle 20 esecuzioni.

Page 14: 3rd 3DDRESD: HERA

1414

Risultati ottenutiRisultati ottenuti

Page 15: 3rd 3DDRESD: HERA

1514

Risultati ottenutiRisultati ottenuti

Page 16: 3rd 3DDRESD: HERA

1614

Risultati ottenutiRisultati ottenuti

Page 17: 3rd 3DDRESD: HERA

1715

HERA evolutive framework: architettura baseHERA evolutive framework: architettura base

EA-Core Controller

Valutatore

Start/Stop/Get Info

Info Evoluzione

Richiesta Valutazione

Scores

Inizializzazione/Get Info

Informazioni Valutazione

Page 18: 3rd 3DDRESD: HERA

1816

HERA evolutive framework: architettura baseHERA evolutive framework: architettura base

EA-Core:EA-Core:Implementa l’algoritmo evolutivo utilizzatoEventualmente memorizza gli individuiRiceve i comandi dal controllerInvia le informazioni sull’evoluzione al controllerRichiede e recupera le valutazioni al valutatore

Controller:Controller:•Front-end del framework, riceve e mostra informazioni da/all’utente riguardo il processo evolutivo•Ferma il processo evolutivo qualora lo ritenga necessario

Valutatore:Valutatore:•Valuta gli individui determinandone il fitness•Riceve la richiesta di valutazione ed eventualmente i genotipi degli individui da valutare

Page 19: 3rd 3DDRESD: HERA

1917

Istanza 1: SimpleCoreIstanza 1: SimpleCore

SimpleCore CLController

ValutatoreGECCO

Page 20: 3rd 3DDRESD: HERA

2018

Istanza 2: MultiPopCore e Valutatore Istanza 2: MultiPopCore e Valutatore distribuitodistribuito

MultiPopCore

CLController

ValutatoreDistribito

(nodo centrale)

SimpleCore

SimpleCore

SimpleCore

V.D.(nodo periferico)

GECCO Val.

V.D.(nodo periferico)

GECCO Val.

V.D.(nodo periferico)

GECCO Val.

Page 21: 3rd 3DDRESD: HERA

2119

FineFine

- Domande? -- Domande? -