• Non ci sono risultati.

Confronto tra l'implementazione seriale e parallela

6.3 Analisi sperimentale

6.3.2 Confronto tra l'implementazione seriale e parallela

Le architetture mostrate in Fig. 6.1 e in Fig. 6.3 sono state testate su due dispositivi con poche risorse, ovvero il CPLD Altera 5M2210Z e la FPGA Altera EP4CGX15BF14A72,

che non include moltiplicatori. La FPGA, di fascia economica, è stata scelta con l'obiet- tivo di rilassare il vincolo sulle risorse limitate. I test mirano a valutare la capacità delle architetture proposte di adattarsi a tali dispositivi, quando il vincolo sull'occupazione di area è rilassato rispetto alla precedente congurazione sperimentale (Sezione 6.3.1). La Fig. 6.6 presenta i risultati dei test basati sul CPLD.

Capitolo 6. Implementazione hardware 106 (a)

(b)

Figura 6.6: Test su CPLD: congurazioni che corrisponderebbero all'occupazione to- tale di area durante la realizzazione hardware del predittore: (a) approccio sequenziale,

(b) approccio in pipeline.

La Fig. 6.6a si riferisce all'implementazione hardware dell'approccio sequenziale (Fig. 6.1). La gura presenta il numero di neuroni N sull'asse x, mentre l'asse y mostra la dimen- sionalità dello spazio di input, D, che corrisponderebbe all'occupazione totale dell'area sul dispositivo quando si costruisce il predittore. Il test ha coinvolto quattro congu- razioni diverse di N = {25, 50, 75, 100}. La gura rappresenta i risultati ottenuti con tre diverse congurazioni per il numero di bit B: i marcatori neri si riferiscono ai test basati su B = 8; quelli grigio chiaro ai test con B = 10, quelli grigio scuro ai test con B = 12. Tutte le implementazioni richiedono circa 130mW in termini di consumo ener- getico, con frequenza di clock ssata a 55MHz. I test hanno mostrato che l'approccio

Capitolo 6. Implementazione hardware 107 sequenziale è in grado di supportare un predittore progettato per arontare un problema di 90 dimensioni, con la congurazione {N = 25, B = 8}. Se si impostasse B = 12 per avere un'accuratezza maggiore, D si ridurrebbe a 60, considerando sempre N = 25. Inne, si noti che un problema di 25 dimensioni può essere gestito con la congurazione {N = 100, B = 12}. Questo è un risultato notevole per un'implementazione su un di- spositivo di fascia bassa e a basso costo come il CPLD 5M2210Z. La Fig. 6.6b si riferisce all'implementazione hardware dell'approccio in pipeline dei neuroni (Fig. 6.3); la gura adotta lo stesso formato di Fig. 6.6a. Come previsto, ssato N, l'approccio totalmente in pipeline impone un vincolo più stringente su D rispetto a quello sequenziale. Cionono- stante, la gura mostra che si è in grado di realizzare un predittore progettato per gestire un problema a 37 dimensioni con la congurazione {N = 25, B = 8}; inoltre un problema con 20 dimensioni può essere supportato con {N = 100, B = 8}. L'approccio parallelo si è dimostrato in grado di ottenere prestazioni interessanti in termini di latenza, poiché la frequenza di clock è stata impostata su 35MHz in tutte le sue realizzazioni. Ciò a sua volta signica che Ts = Tp/1.5 indipendentemente da D, mentre si avrebbe bisogno di

Ts= Tp/Dper ottenere un'implementazione dell'approccio sequenziale che possa compe-

tere con la corrispondente realizzazione parallela. Ovviamente, si dovrebbe anche tener conto del trade-o tra latenza e consumo di energia, che nell'approccio completamente pipeline è inuenzato da D. Nelle implementazioni testate, il consumo energetico varia da un minimo di 150mW (con D = 13) ad un massimo di 250mW (con D = 38). Complessivamente, è interessante valutare come la quantità D × N sia cambiata in fun- zione di N, per entrambi gli approcci. A questo scopo sia DN il valore assunto da D

quando il numero di neuroni nel predittore è stato impostato su N. Di conseguenza la Tabella 6.2 fornisce il valore della quantità D25/DN per N = {50, 75, 100}. La tabella

è organizzata come segue: la prima colonna mostra N; la seconda e la terza si riferi- scono all'approccio sequenziale e forniscono il valore di D25/DN con la congurazione

B = 8 e B = 12, rispettivamente; lo stesso formato è usato per la quarta e quinta co- lonna, che si riferiscono all'approccio completamente pipeline. In questo caso i risultati numerici mostrano che D, con l'aumentare di N, è sceso più lentamente rispetto all'ap- proccio sequenziale. Quindi, l'implementazione sequenziale, ssato N, può massimizzare la quantità D × N, mentre quello parallelo si ridimensiona meglio con la crescita di N.

Tabella 6.2: Implementazione su CPLD: D25/DN in funzione di N

sequenziale parallelo

N B=8 B=12 B=8 B=12

50 1.55 1.50 1.31 1.22 75 2.11 2.00 1.52 1.46 100 2.73 2.64 1.80 1.69 La Fig. 6.7 presenta i risultati dei test basati sulla FPGA.

Capitolo 6. Implementazione hardware 108 (a)

(b)

Figura 6.7: Test su FPGA: congurazioni che corrisponderebbero all'occupazione to- tale di area durante la realizzazione hardware del predittore: (a) approccio sequenziale,

(b) approccio parallelo.

Con la stessa congurazione della Fig. 6.6, la Fig. 6.7a si riferisce all'implementazione hardware dell'approccio sequenziale, mentre la Fig. 6.7b all'architettura parallela. En- trambe le gure adottano lo stesso formato di Fig. 6.6a. Le realizzazioni su FPGA con- sentono, a entrambi gli approcci, di supportare predittori che possono gestire D > 100; per esempio, la Fig. 6.7a mostra che, adottando l'approccio sequenziale, si potrebbero arontare problemi a 500 dimensioni. Dunque risulta interessante confrontare, in termini di consumo energetico e latenza, le implementazioni su FPGA con quelle realizzate su CPLD. I predittori supportati dall'architettura sequenziale hanno mostrato un consumo

Capitolo 6. Implementazione hardware 109 di energia di circa 130mW sulla FPGA: questo parametro non è cambiato rispetto al- le implementazioni su CPLD. Ciononostante la frequenza di clock su FPGA è salita a 75M Hz. Le implementazioni basate sull'approccio parallelo richiedono un consumo di energia di 120mW sulla FPGA, con la frequenza di clock ssata a 50MHz. Pertanto, le implementazioni FPGA hanno confermato che Ts' Tp/1, 5.

La Tabella 6.3 riporta il valore della quantità D25/DN per N = {50, 75, 100} nel caso

delle implementazioni su FPGA. Questa tabella adotta lo stesso formato della Tabella 6.2. I risultati numerici confermano che anche sulle FPGA l'approccio completamente pipeline si adatta meglio al crescere di N.

Tabella 6.3: Realizzazione su FPGA: D25/DN in funzione di N

sequenziale parallelo

N B=8 B=12 B=8 B=12

50 1.49 1.48 1.20 1.18 75 2.01 1.96 1.39 1.31 100 2.58 2.45 1.56 1.45