SluitenHelpPrint
Switch to English
Cursus: INFOMOV
INFOMOV
Optimization and vectorization
Cursus informatie
CursuscodeINFOMOV
Studiepunten (EC)7,5
Cursusdoelen
At the end of this course, the student
* knows how to profile application code;
* knows about high-level and low-level optimizations;
* knows how to optimize an application in a structured and time-efficient manner;
* is able to find, select, and apply algorithms with reduced algorithmic complexity;
* understands the impact of memory latency on performance;
* understands the role and workings of modern cache architectures;
* knows the concept of SIMD and is able to apply this to existing code;
* is able to apply low-level optimizations;
* has a basic understanding of GPGPU and knows how to offload work to the GPU;
* understands the GPU memory hierarchy and its effect on application performance;
* is able to accurately report on the optimization process upon completion.
 
Inhoud
Writing high-performance applications and increasing the performance of existing applications is a rewarding process, that typically yields improvements of 10x or more. In this course, a structured approach to program optimization is presented. The main factors that determine program performance are:
* Algorithm efficiency;
* The memory / cache hierarchy;
* Thread-level and instruction-level parallelism (vectorization), including SIMD.
These will be explored in detail, in a practical, hands-on manner.
The focus will be on CPU code, but optimization using GPUs and GPU performance characteristics will be covered as well.
SluitenHelpPrint
Switch to English