1 / 14

GPGPU General Purpose Computation on GPU

GPGPU General Purpose Computation on GPU. Emanuele Ruffaldi 2005. Corso su Elasticità non lineare ed Oggetti Deformabili. Calcolo parallelo. Il calcolo parallelo permette di accelerare la risoluzione di un problema attraverso il parallelismo Soluzioni possibili Multiprocessore Cluster GPU

Download Presentation

GPGPU General Purpose Computation on GPU

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. GPGPUGeneral Purpose Computation on GPU Emanuele Ruffaldi2005 Corso su Elasticità non lineare ed Oggetti Deformabili

  2. Calcolo parallelo • Il calcolo parallelo permette di accelerare la risoluzione di un problema attraverso il parallelismo • Soluzioni possibili • Multiprocessore • Cluster • GPU • Cluster di GPU!!

  3. Calcolo parallelo (2) • La computazione parallela può essere portata sintetizzata in due concetti • Stream • Un insieme di unità di informazione sulle quali vengono fatte delle operazioni • Kernel • Un’operazione da effettuare sui flussi, altamente parallelizzabile

  4. Perchè le GPU? • Velocità di calcolo • Un 3GHz Pentium 4 ha 6GFLOPS teorici (55MT) • Una GeForceFX 5900 ha 20 GFLOPS reali (130MT) • Sviluppo temporale • Le CPU hanno seguito la legge di Moore per molti anni (1.5x annuale, 60x nel decennio) • Lo sviluppo delle GPU è nettamente superiore per via degli interessi nel campo del gaming (investimenti nella ricerca)2x annuale, 1000x nel decennio • Altri aspetti • Parallelismo • Aritmetica specializzata: i transistor aggiunti ad una CPU vengono usati per la memoria cache (tranne nei recenti dualcore) mentre nelle GPU sono unità di calcolo [gpudb]

  5. Problemi del GPGPU • Nello sviluppo... • Le tecnologie sono state sviluppate nel mondo della grafica • Il modello di programmazione è altamente parallelo • Nell’esecuzione... • Limitazioni nella memoria per le matrici • Precisione (32-bit)

  6. Campi Applicativi • In campo ludico • Simulazione di effetti ambientali: Fluidi, Nuvole • Dinamica di oggetti rigidi • Sistemi a particelle • Il GPGPU può essere utilizzato anche in ambiti non ludici • Simulazione di Fluidi • Dinamica dei Corpi • Tomografia • Simulazione di corpi deformabili • Computer Vision [here] • Algoritmi possibili • FFT • Linear Algebra per PDE • Risoluzione sistemi Masse-Molle • FEM

  7. Programmazione • La programmazione delle GPU parte dalla pipeline grafica • Concetti chiave • Primitive • Vertici • Texture • Passaggi

  8. Programmazione • La flessibilità delle GPU sta in due elementi: • Vertex Program (VP) opera a livello di vertici delle primitive accedendo eventualmente alle texture • Fragment Program (FP) opera a livello di pixel accedento a più textures • Le funzioni a disposizione dei due sono simili, ma il vantaggio dei fragment program sta nel loro numero • 1VP/4 FP nei sistemi low-end e 6VP/16FP in quelli high end.

  9. N Vectors Matrix i N 2D-Textures 1 i N ... ... ... ... N N N N 1 i Programmazione – Dati • Le matrici ed i vettori del nostro algoritmo vanno rappresentati sulle texture • Ogni texture • Dimensione potenze di 2 fino a 2048 x 2048 • 4 componenti RGBA • Matrici Dense, Banded, Random Sparse

  10. Sistema Masse e Molle • Un problema classico facilmente parallelizzabile • Ogni iterazione dipende dalla precendenti • Aspetti per la trasposizione in GPU • Topologia: volumetrica, griglia planare, tetraedro • Mappatura delle informazioni in gioco: lunghezza di riposo, massa, posizioni, forze esterne, volume • Rappresentazione della topologia: si utilizza la texture per fare il lookup dei nodi vicini Riferimenti: MOSEEGARDGEORGII

  11. Sistema Masse Molle • Informazioni per ciascun vertice: • Posizione, Massa e Forze esterne • Informazioni per ciascuna relazione vicinanza • Posizione di riposo

  12. Integrazione Verlet (senza velocità) Implementazione Algoritmo [THMG04]

  13. Strumenti • Soluzione a basso livello: sviluppo attraverso gli strumenti grafici per il 3D • OpenGL ed linguaggio di shading GLSL/Cg • DirectX ed il linguaggio di shading Cg • OpenGL Mathematics (GLM) • Orientata alla computazione generica su GPU • Brook for GPU • Un linguaggio per il calcolo parallelo che utilizza la GPU

  14. Riferimenti • Corso SIGGRAPH 2004 [here] • Libro GPUGems2 [here] • Sito http://www.gpgpu.org • Simulazione su GPU [here] • Corso UPenn [here]

More Related