Optimization & VectorizationUtrecht University - Information and Computing Sciencesacademic year 2024/25 – 4th block |
|||
|
Navigation |
||||||
|
Course Overview
|
![]() Course: 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: Comms:
join us on INFOMOV
(Teams). Lectures:
Lectures will be recorded; recordings will be published
with at least a 1-week delay. Exam:
Small print: The course will be taught in English. Warning: A decent level of
C/C++ is expected. Expect a significantly higher
workload if you are a C++ novice. Course materials are
provided for Windows machines.
You are welcome to use an alternative, but please be
aware that you are expected to solve technical hurdles
yourself. |
Files
|
Downloads Fundamentals:C++ Programming Template for your experiments; includes an OpenCL framework.Practice / demonstration materials: Will be made available here during the course.Lecture slides: Will be made available here during the course.
Exams from previous editions of the course: INFOMOV'16 Final Exam There is no INFOMOV'20 exam; between 19 and 20 the course moved from block A to block D. |
Course Schedule
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Period 4 Schedule
|
Assignments
|
All assignments can be done alone or in teams of two students. For teams: it is not mandatory to do all three assignments with the same partner; switching is allowed. Assignment P1 - PEDAL TO THE METAL For this assignment you will apply low-level optimization to a graphical application. Download formal assignment description here. Deadline for this assignment: Friday May 9,
17:00. For this assignment you will create your own cache simulator. Deadline for this assignment: Friday May 30, 17:00. For the final assignment, you will optimize an
application that you chose using the structured
optimization process. Deadline for this assignment: Friday June 20, 17:00.
|