INFOMOV Optimization and Vectorization

Overview
INFOMOV is a practical course on optimization: the art of improving software performance, without affecting functionality. We apply high-level and low-level optimizations in a structured manner. Especially for the low-level optimizations, we must intimately understand the hardware platform (CPU, GPU, memory, caches) and modify our code to use it efficiently.
Vectorization: Modern processors achieve their performance levels using parallel execution. This happens on the thread level, but also on the instruction level. Being able to produce efficient vectorized code is an important factor in achieving peak performance.
GPGPU: Graphics processors employ a streaming code execution model, taking vectorization to extremes, both in the programming model and the underlying architecture. Leveraging GPU processing power is an important option when optimizing existing code.
Context: Optimization is a vital skill for game engine developers, but also applies to other fields.
Lecturer
Angelos Chatzimparmpas (a.chatzimparmpas@uu.nl)
