Optimization & VectorizationUniversiteit Utrecht - Information and Computing Sciencesacademic year 2023/24 – 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 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 four 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 10,
17:00. For this assignment you will create your own cache simulator. Download the formal assignment description here. Deadline for this assignment: Friday May 31, 17:00. For the final assignment, you will optimize an
application that you chose using the structured
optimization process. Download the formal assignment description here.
Download the 'safetynet' application by clicking here. Deadline for this assignment: Wednesday June 19, 17:00.
|