next up previous
Next: Obiettivi del Corso Up: GPU Computing - Calcolo Previous: GPU Computing - Calcolo

Syllabus

First of all, Concurrent programming fundamentals will be introduced, showing the most important differences and issues with respect to traditional sequential programming. Later, AMD Radeon and Nvidia CUDA hardware platforms will be described in detail.

Fundamentals in parallel and distributed computing such as shared memory and message passing will be explained. Then, CUDA and OpenCL programming models will be introduced and differences among them stressed. The recently introduced JavaCL solution will also be described and code samples commented.

Then, advanced memory hierarchy and kernel grouping and execution scheduling concepts for both OpenCL and CUDA will be introduced. Implications on implementation performance on Nvidia and AMD hardware will be discussed. Profiling and debugging sessions on CUDA, OpenCL and JavaCL will help understand issues and solve them.

Finally, an insight over future approaches and upcoming technology will be given. The project work will be assigned and issues discussed.

------------------------

Verranno innanzitutto descritti i fondamenti della programmazione concorrente manycore, mostrando le principali differenze rispetto alla tradizionale programmazione sequenziale. In particolare, le piattaforme AMD APP ed Nvidia CUDA saranno descritte in dettaglio.

Saranno poi introdotti il concetto di memoria condivisa ed i problemi fondamentali del calcolo parallelo. Nel prosieguo del corso, verranno illustrate le principali architetture di General-Purpose computation on Graphics Processing Units (GPGPU) con particolare riguardo alle soluzioni Khronos OpenCL e Compute Unified Device Architecture (CUDA). Inoltre sara' illustrata la soluzione JavaCL.

Saranno quindi descritti i concetti OpenCL e CUDA di kernel e gruppi di kernel, le gerarchie di accesso alla memoria condivisa e di controllo di flussi di esecuzione. Verranno esaminate le possibili applicazioni del GPGPU a problemi di calcolo matriciale e vettoriale. Parallelamente all'esame delle applicazioni, saranno discussi, con esempi di Profiling, gli aspetti prestazionali di differenti algoritmi e delle loro implementazioni.



2011-03-13