• Non ci sono risultati.

Inserimento di ulteriori Processori

5.3 Soluzioni alternative sulla FPGA XC5VLX110T

5.3.3 Inserimento di ulteriori Processori

Attraverso l’impiego del bus FSL (vedi sottosezione 5.3.2) è possibile inserire un numero superiore, rispetto alle architetture che adottano come bus di comunicazione il PLB, di acceleratori hardware, senza superare la soglia critica di utilizzo del processore, oltre la quale le prestazioni del si- stema diminuiscono anche se si aumentano gli acceleratori. Tale risultato è giustificato dalla diminuzione dell’utilizzo della CPU che si ottiene utiliz- zando un’interfaccia al bus FSL ad-hoc in relazione alle necessità del mo- dulo hardware mdr_block. In questa sezione l’esplorazione nello spazio di designvuole trovare una soluzione che abbassi ulteriormente l’utilizzo del processore in modo che la comunicazione tra CPU e gli acceleratori sia il più possibile efficiente. Di seguito viene analizzato come l’inserimento di un ulteriore processore possa influenzare le prestazioni del sistema.

MicroBlaze_0 MicroBlaze SFSL0 SFSL1 MFSL0 MFSL1 mdr_block_0 MicroBlaze MFSL0 MFSL1 SFSL0 SFSL1 MPLB MicroBlaze_1 MicroBlaze SFSL0 SFSL1 MFSL0 MFSL1 mdr_block_0 MicroBlaze MFSL0 MFSL1 SFSL0 SFSL1 MPLB mailbox MicroBlaze SPLB0 SPLB1

Figura 5.10: Schema del sistema composto da due processori MB, collegati ognuno ad un modulo mdr_block tramite bus FSL, e comunicanti tra loro attraverso il componente MailBox collegato alle CPU tramite bus PLB

In figura 5.10 viene schematizzata l’architettura del sistema composta da due processori softcore - MB, ognuno dei quali è connesso da un modu- lo hardware, mdr_block, attraverso il bus FSL. I due processori scambiano dati tra loro attraverso l’impiego di una comunicazione inter-processore standard. Il componente che si occupa di tale compito è XPS MailBox [94], composto da due canali bidirezionali che connettono due differenti proces- sori. XPS MailBox può essere connesso al processore sia tramite l’interfaccia PLB sia attraverso l’interfaccia FSL. Nell’architettura presentata nella sezio- ne, il componente MailBox è connesso ai due processori tramite l’interfaccia PLB, poiché i dati trasferiti tra i due processori sono pochi, risulta quindi inutile la realizzazione di un interfaccia FSL. Per la gestione dei dati di in- gresso, ogni processore si incarica di calcolare il modello ottimale e la sua accuratezza relativa ad una partizione del dataset. Le partizioni vengono create in relazione al numero di processori e a quanti mdr_block sono con- nessi ad ogni processore, in modo tale da ottenere le migliori prestazioni distribuendo il carico computazionale in relazione alle risorse disponibili.

I due processori all’interno di quest’architettura si distinguono in alcuni ruoli. Un solo processore gestisce quali partizioni del dataset devono essere analizzate, trasmettendone all’altro processore gli indirizzi di memoria e le dimensioni. In tal modo i due processori possono leggere contemporanea- mente i dati sullo stesso dataset, poichè lavorano su partizioni differenti, senza il problema di accedere nello stesso tempo alla medesima area di memoria. Inoltre, è la stessa CPU che si incarica di ricevere dall’altro pro- cessore il modello che ha calcolato e la sua accuratezza, in modo da poterlo confrontare con il proprio risultato ed elaborare la soluzione ottimale.

In tabella 5.7 sono riportati i dati relativi all’architettura realizzata, si- mile a quella riportata in figura 5.10, dove ogni processore gestisce, trami- te bus FSL, contemporaneamente tre acceleratori hardware, per un totale complessivo di sei moduli mdr_block. Questa architettura sviluppata sul

CAPITOLO 5. RISULTATI SPERIMENTALI 104

dispositivo di Xilinx FPGA XC5VLX110T occupa quasi la totalità delle sue risorse disponibili (Numero dei registri di Slice 89%, Numero delle LUTs di Slice 56%, Numero delle Slice occupate 99%).

Tabella 5.7: Dati relativi all’architettura costituita da due MB connessi con 1-3 moduli per ogni processore, tramite FSL su XC5VLX110T. Lo speed-up è confrontato con le prestazioni ottenute dalla soluzione con un solo acceleratore hardware connesso a ogni processore

Num. mdr_block totale 2 3 4 5 6 Num. mdr_block (CPU1-CPU2) 1-1 1-2 2-2 2-3 3-3

Cicli clock esecuzione 2.654.424 1.878.195 1.675.323 1.582.192 1.367.321 Deviazione standard 540 118 39 43 249

Utilizzo processore 64,22% 65,12% 67,61% 68,84% 69,69% Speed-up 1,00x 1,41x 1,58x 1,68x 1,94x

I dati riportati in tabella 5.7 sono catalogati in cinque differenti soluzio- ni caratterizzate dall’impiego di un numero di acceleratori hardware dif- ferenti, in modo da scoprire l’andamento delle prestazioni in relazione al numero di moduli mdr_block inseriti.

Nelle soluzioni dove i due processori hanno lo stesso numero di mo- duli hardware connessi, le partizioni del dataset vengono create in modo che il carico dei dati da elaborare sia distribuito equamente ai due proces- sori. Nelle soluzioni dove i due processori hanno un numero differente di moduli hardware connessi, le partizioni dei dati d’ingresso da elaborare vengono fatte in relazione a stime sui tempi di esecuzione che si avrebbero in relazione al numero di acceleratori hardware inseriti. Tale processo viene fatto in modo da distribuire il carico di lavoro in relazione alle risorse e alle prestazioni che queste garantiscono.

Nella figura 5.11 sono riportati due grafici, uno relativo alle prestazioni mentre uno all’utilizzo del processore. Si nota che passando da due moduli hardware a sei si ha un continuo incremento delle prestazioni. Analizzando l’andamento del grafico dello speed-up si nota un flesso nella soluzione 3

1,0 1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 2,0 2 3 4 5 6 Speed -up Numero mdr_block Speed-up 64% 65% 66% 67% 68% 69% 70% 2 3 4 5 6 P er cen tuale ( %) Numero mdr_block Utilizzo CPU

Soluzione con due processori MicroBlaze™ e bus di comunicazione FSL – FPGA XC5VLX110T

Figura 5.11: Speed-up relativo alla soluzione con due processori MB che adottano come bus di co- municazione il bus FSL su dispositivo XC5VLX110T. Lo speed-up è confrontato con le prestazioni ottenute dalla soluzione con un solo acceleratore hardware connesso a ogni processore

e 5, dovuto ad una non perfetta ridistribuzione del carico di lavoro in rela- zione ai moduli hardware collegati ai processori, tale problema è inesistente nelle soluzioni con numero di moduli multipli al numero di processori im- piegati. Il continuo incremento delle prestazioni in relazione al numero di moduli, è giustificato dall’utilizzo medio del processore (i dati di utilizzo sono relativi al processore più sollecitato) che risulta essere inferiore alla soglia critica.

Analizzando i dati si nota che la soluzione che garantisce il migliore speed-up è quella composta da tre moduli mdr_block connessi ad ogni pro- cessore. Tale risultato è giustificato dall’analisi fatta in precedenza in rela- zione ai risultati ottenuti sulla scalabilità dei moduli collegati ad una singo- la CPU tramite FSL (vedi sottosezione 5.3.2). Con due processori e sei mo- duli, connessi in modo distribuito e proporzionale (tre moduli mdr_block connessi ad un processore e altri tre ad un’altro), è possibile sfruttare al meglio l’impiego degli acceleratori hardware per ottenere le migliori pre- stazioni in relazione ai risultati delle analisi eseguite sulla scalabilità degli acceleratori hardware impiegando una singola CPU, descritti nella sotto-

CAPITOLO 5. RISULTATI SPERIMENTALI 106

sezione 5.3.2. Tale architettura risulta aumentare le prestazioni del sistema, rispetto alle soluzioni a singolo processore, sfruttandone la totalità delle ri- sorse messe a disposizione.

Un’ulteriore esplorazione nello spazio di design considerando il numero di processori impiegati, si focalizza nella soluzione con tre CPU che connet- tono il maggior numero di acceleratori, in funzione alle risorse disponibili sul dispositivo di Xilinx FPGA XC5VLX110T. L’architettura realizzata è la medesima a quella riportata in figura 5.10 con l’inserimento di un terzo pro- cessore che comunica solo con la CPU che gestisce le partizioni del dataset e confronta le varie soluzioni per ottenerne la migliore. La comunicazione av- viene come nel sistema a due processori, tramite mailbox. Ogni processore gestisce un solo acceleratore hardware tramite bus FSL. Il risultato di tale sistema è l’ulteriore diminuzione dei tempi di esecuzione (1.800.389 cicli di clock), sia in relazione alla soluzione con tre moduli hardware connessi ad un solo processore tramite FSL (2.709.181 cicli di clock) sia in relazio- ne alla soluzione con due processori connessi a tre moduli complessivi (un mdr_block connesso alla prima CPU e due mdr_block connessi alla secon- da CPU) attraverso bus FSL (1.800.561 cicli di clock). Si nota che lo speed-up che si ottiene, impiegando per ogni soluzione tre moduli mdr_block, dalla soluzione a singolo processore a due processori è di 1,44x, mentre dalla so- luzione a singolo processore a tre processori lo speed-up risulta essere pari a 1,50x.

Documenti correlati