CUDA PROGRAMMING

Anno accademico
2026/2027 Programmi anni precedenti
Titolo corso in inglese
CUDA PROGRAMMING
Codice insegnamento
PHD234 (AF:746650 AR:447498)
Lingua di insegnamento
Inglese
Modalità
In presenza
Crediti formativi universitari
2
Livello laurea
Corso di Dottorato (D.M.226/2021)
Settore scientifico disciplinare
INFO-01/A
Periodo
Annuale
Anno corso
1
Sede
VENEZIA
The course provides an introduction to NVIDIA's "Compute Unified Device Architecture" (CUDA) library for the parallel computation on GPUs. The students will learn the fundamentals of parallel execution, to identify regions of code to be parallelized, to offload computations to the GPU, and how to profile the resulting implementation.
Knowledge and understanding of the main methods for the parallel execution.
Knowledge and understanding of the CUDA architecture.
Knowledge and understanding of the CUDA C/C++ programming interface.
Knowledge and understanding of the CUDA occupancy calculator and profiling tools.
Excellent knowledge of C and C++ programming languages. Knowledge of a modern computer's architecture.
- GPUs, heterogeneous computing
- Architecture of a GPU (CUDA stream multiprocessors, cores, bandwidth)
- CUDA execution hierarchy: Threads, blocks, grids, streams, kernels, warps, streams
- CUDA memory hierarchy: host memory, global memory, shared memory, registers, constant memory, texture memory, mapped memory, pinned memory, UMA, etc.
- CUDA synchronization
- CUDA profiling, bottlenecks, occupancy, registers pressure, coalesced patterns, stride memory accesses, cache optimization
- Advanced optimization methods
Cheng, M Grossman, T McKercher, "Professional CUDA C Programming"
The exam will consist in the porting and acceleration of an existing algorithm/software to the CUDA architecture, related to the research topic of the student.
orale

Il/la docente ha il dovere di vigilare affinché siano rispettate le regole di autenticità e originalità delle prove d'esame. Di conseguenza, nei casi in cui vi sia il sospetto di un comportamento irregolare, l'esame può prevedere un ulteriore approfondimento, contestuale alla prova d'esame, che potrà essere realizzato anche in modalità differente rispetto alle modalità sopra riportate.

The evaluation criteria are as follows:

A. Scores in the 18-22 range will be awarded in the presence of:
- Sufficient knowledge and ability to structure the project;
- Limited ability to justify implementation choices;
- Sufficient communication skills, especially in relation to the use of course-specific language.

B. Scores in the 23-26 range will be awarded in the presence of:
- Fair knowledge and ability to structure the project;
- Fair ability to collect and/or interpret data, proposing effective implementation solutions;
- Fair communication skills, especially in relation to the use of course-specific language.

C. Scores in the 27-30 range will be awarded in the presence of:
- Good or excellent knowledge and ability to structure the project;
- Good or excellent ability to collect and/or interpret data, proposing innovative implementation solutions;
- Fully appropriate communication skills, especially in relation to the use of course-specific language.

D. Lode will be awarded in the presence of excellent knowledge and applied understanding of the program, judgment skills, and communication abilities.
Frontal lectures, laboratories, seminars
This course is supported by CONVECS - Comunità Veneta per il Calcolo Scientifico

https://convecs.it
Programma definitivo.
Data ultima modifica programma: 19/04/2026