2011-09-09 6 views
5

Sto studiando se GPGPU potrebbe essere utilizzato per accelerare la simulazione dell'hardware. Il mio ragionamento è questo: l'hardware per natura è molto parallelo, perché simulare su CPU altamente sequenziali?Simulazione hardware con accelerazione GPU?

GPU sarebbe eccellente per questo, se non per il loro stile restrittiva della programmazione: Si dispone di un singolo kernel in esecuzione, ecc

Ho poca esperienza con GPGPU-programmazione, ma è possibile utilizzare gli eventi o code in OpenCL/CUDA?

Edit: Con la simulazione hardware non intendo l'emulazione, ma la simulazione Behavorial bit-accurate (come nella simulazione comportamentale VHDL).

+5

Il mio istinto dice che la simulazione di eventi discreti non è adatta alle GPU. Troppo controllo, non abbastanza intensità aritmetica, forse troppo irregolare. Sarei interessato a qualcuno che dimostri questa intuizione sbagliata ... vieni a pensarci, forse ricordo di sfogliare un foglio proprio su questo. Consulta le note e ti faccio sapere cosa succede. – Patrick87

+0

@ Patrick87, i miei pensieri esattamente. Un link a un foglio sarebbe carino. Grazie. – eisbaw

risposta

5

Non sono a conoscenza di eventuali approcci per quanto riguarda la simulazione VHDL su GPU (o uno schema generale per mappare le simulazioni ad eventi discreti), ma ci sono alcune aree applicative in cui la simulazione a eventi discreti è generalmente applicato e che può essere simulato in modo efficiente su GPU (ad esempio reti di trasporto, come in this paper o this one o simulazione stocastica di sistemi chimici, come fatto in this paper).

E 'possibile ri-formulare il problema in un modo che rende un simulatore di tempo gradini discreti fattibile? In questo caso, la simulazione su una GPU dovrebbe essere molto più semplice (e ancora più veloce, anche se sembra uno spreco perché le fasi temporali devono essere sufficientemente piccole - vedi this paper sulla simulazione basata su GPU di automi cellulari, per esempio).

Si noti, tuttavia, che questo è ancora più probabile un non banale (ricerca) problema, e il motivo per cui non v'è alcun sistema generale (ancora) è quello che già assunto: attuazione di una coda di eventi su una GPU è difficile, e più simulazione approcci sul guadagno GPU accelerazione dovuta a layout della memoria intelligente e ottimizzazioni e modifiche problematiche specifiche dell'applicazione.

+0

Grazie. La carta n. 2 potrebbe essere utile. – eisbaw

+1

Ho anche trovato http://scholar.lib.vt.edu/theses/available/etd-05192010-051432/unrestricted/Nanjundappa_M_T_2010.pdf – eisbaw

3

Questo è fuori dalla mia area di competenza, ma sembra che, mentre il seguente articolo discute a livello di simulazione cancello piuttosto che la simulazione del comportamento, può contenere alcune idee utili:

Debapriya Chatterjee, Andrew DeOrio, Valeria Bertacco. Simulazione a livello di gate con GPU Computing http://web.eecs.umich.edu/~valeria/research/publications/TODAES0611.pdf

+0

Pagina non trovata. – Goldname

+1

@Goldname Ho corretto il link marcire, per favore riprova. – njuffa