Gpu Computing
A.Y. 2020/2021
Learning objectives
This course mainly focuses on parallel programming techniques and parallel pattern design aiming at developing applications on many-core architectures, such as the GPU (Graphics Processing Units) devices, widely used in high performance computing.
Expected learning outcomes
Students will be able to develop and deploy applications on CPU-GPU hybrid systems, which means to be skilled at:
- structuring the logic design in order to identify subtasks than can be actually parallelized
- analyzing in a critical way the hw resources required by the different levels of concurrency
- understanding the performance evaluation and optimization process
- structuring the logic design in order to identify subtasks than can be actually parallelized
- analyzing in a critical way the hw resources required by the different levels of concurrency
- understanding the performance evaluation and optimization process
Lesson period: Second semester
Assessment methods: Esame
Assessment result: voto verbalizzato in trentesimi
Single course
This course cannot be attended as a single course. Please check our list of single courses to find the ones available for enrolment.
Course syllabus and organization
Single session
Responsible
Lesson period
Second semester
During the emergency phase, the course will be held online, if possible in synchronous way, using the Zoom platform. Lectures and practical classes will be recorded, stored on Ariel portal, and available for the entire semester.
Material:
the program and the material will not change with respect to the standard one.
Examination:
The exam modality and the evaluation criteria will not change with respect to what indicated in the syllabus (ordinary modality).
The written exam will be held in presence or in a distance modality (according to the university guidelines) on the platform exam.net (for more details refer to the university portal)
Material:
the program and the material will not change with respect to the standard one.
Examination:
The exam modality and the evaluation criteria will not change with respect to what indicated in the syllabus (ordinary modality).
The written exam will be held in presence or in a distance modality (according to the university guidelines) on the platform exam.net (for more details refer to the university portal)
Course syllabus
- Introduction to heterogeneous system architecture based on CPU and GPU
- The general purpose GPU programming (GPGPU) concept
- Parallel architecture
- The CUDA programming model
- The CUDA execution model
- The CUDA memory model
- Stream, concurrency and performance optimization
- GPU-accelerated CUDA libraries
- Multi-GPU programming
- Parallel design patterns
- Application development on NVIDIA GPUs
- The general purpose GPU programming (GPGPU) concept
- Parallel architecture
- The CUDA programming model
- The CUDA execution model
- The CUDA memory model
- Stream, concurrency and performance optimization
- GPU-accelerated CUDA libraries
- Multi-GPU programming
- Parallel design patterns
- Application development on NVIDIA GPUs
Prerequisites for admission
Good programming practice and basic knowledge of the ANSI C language.
Teaching methods
The course consists of lectures and practical classes based on CUDA C programming.
Teaching Resources
The lecture slides, the suggested books and the technical documents are available on the course page: http://gpu.di.unimi.it.
Assessment methods and Criteria
The examination consists of two parts:
1. a written test based on the lecture subjects (70% of final grade)
2. a project based on the CUDA C programming language (30% of final grade)
1. a written test based on the lecture subjects (70% of final grade)
2. a project based on the CUDA C programming language (30% of final grade)
Professor(s)