Optimization and vectorization
Beschrijving
Course goals
After completing this course, students will be able to:
G1. explain the foundational concepts of profiling, vectorization, caching, GPGPU, memory, and data-oriented design, and compare high- and low-level optimizations.
G2. apply low-level optimizations, including SIMD, to improve execution speed and resource efficiency in existing code.
G3. analyze application performance to identify bottlenecks, assess the effectiveness of various optimizations, and outline findings in a structured report.
G4. evaluate the impact of memory latency, cache hierarchies, and GPU architecture on application performance, and recommend system-aware optimizations.
G5. design and implement parallel solutions using GPGPU programming, optimizing for heterogeneous system constraints to achieve measurable performance gains.
Assessment
Three assignments, exam.
Programming assignments: your practical grade P is based on three programming assignments P1 (25%; G2-3), P2 (25%; G3-4), and P3 (50%; G2-5).
Exam: your exam / theory grade T (100%; G1) is based on a single final exam.
Final grade: Your final grade is (3P + T) / 4. You must score at least 5.0 for the exam (before rounding) to pass this course.
Retake: to qualify for a retake, the final grade must be at least 4 (before rounding).
You may repair your final grade by redoing one of the three assignments, or the exam. Exact terms will be discussed individually.
Content
INFOMOV is a practical course on optimization: the art of improving software performance, without affecting functionality.
We apply low level optimizations in a structured manner. To efficiently apply 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.
Course form
Lectures, assignments.
Literature
Recommended articles, available through the course website.
Reviews0 reviews
Heb jij dit vak gevolgd?
Deel je ervaring met toekomstige studenten. Inloggen met je Universiteit Utrecht mailadres duurt één minuut.
Schrijf een review