CUDA PROGRAMMING

Academic year
2026/2027 Syllabus of previous years
Official course title
CUDA PROGRAMMING
Course code
PHD234 (AF:746650 AR:447498)
Teaching language
English
Modality
On campus classes
ECTS credits
2
Degree level
Corso di Dottorato (D.M.226/2021)
Academic Discipline
INFO-01/A
Period
Annual
Course year
1
Where
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.
oral

The instructor is responsible for ensuring the authenticity and originality of all examinations and coursework. In cases of suspected academic misconduct, an additional on-site assessment may be required during the exams, which may differ from the standard format.

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
Definitive programme.
Last update of the programme: 19/04/2026