School / Prep
ENSEIRB-MATMECA
Internal code
EI9IT390
Description
The course is divided into 2 parts. One covers the operation of general-purpose multicore systems, the other the operation of graphics gas pedals.
The aim of this course is to present these architectures, and to learn how to program them efficiently using :
- compilation flags
- compiler extensions (SIMD, intrinsic functions),
- code annotations (OpenACC),
- specific languages (CUDA),
- optimized libraries (CUBLAS),
- performance analysis tools,
- task-based execution support (StarPU) to articulate general-purpose multicore and graphics gas pedals.
Microbenchmarks will be used to describe how these architectures work, and to understand the link between written code, compiler-generated code and compiler performance.
Practical exercises will be devoted to writing, debugging and optimizing GPU- and multicore-accelerated code, and to performance analysis.
Teaching hours
- CIIntegrated Courses12h
- TDTutorial16h
Mandatory prerequisites
Notions of parallelism.
Knowledge of C/C++ (especially memory management).
Further information
Code operation and optimization for multicore and GPU computing gas pedals.
Assessment of knowledge
Initial assessment / Main session - Tests
Type of assessment | Type of test | Duration (in minutes) | Number of tests | Test coefficient | Eliminatory mark in the test | Remarks |
---|---|---|---|---|---|---|
Project | Machine work | 1 | ||||
Project | Defense | 1 |