Optimization & VectorizationUniversiteit Utrecht - Information and Computing Sciencesacademic year 2018/19 – 1st block |
|||
|
Navigation |
||||||
|
|
||||||
News
|
|
Recent news December 12:
November 7:
![]() Image courtesy of Cas Laugs. Thanks to all INFOMOV 2018 participants! Older news still available here. |
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: Jacco
Bikker (j.bikker@uu.nl or bikker.j@gmail.com) Comms:
join us on Slack: INFOMOV2018. Venue: 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. |
Files
|
|
Downloads Cross-platform version of the C/C++ template used in the course.OpenCL template for the GPGPU lectures. OpenCL template for those that prefer C#. Resources will be made available during the course. |
|
|
|
||||||||
|
|
|
||||||||
|
|
|
||||||||
|
|
|
||||||||
|
|
|
||||||||
Course Schedule
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Period 1 Schedule (tentative)
|
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 - LOW LEVEL For assignment 1, you will low-level optize Wu's
anti-aliased line rendering algorithm. The code for this
project can be downloaded below, Files: Assignment 1
description Deadline: Thursday
September
20,
23:59. Extended deadline (1pt penalty): Friday
September 21, 23:59.
Assignment 2 revolves around caching. You will implement
a cache simulator to speed up the rendering of some
fractals. Code and details can be downloaded below. Files: Assignment 2
description Deadline: Thursday
October 4, 23:59. Extended deadline (1pt
penalty): Friday October 5, 23:59. For the third assignment, you will get some hands-on experience with the SIMD theory, as well as neural networks. Code and details are available below. Files: Assignment 3
description Deadline: Thursday
October 18, 23:59. Extended deadline (1pt
penalty): Friday October 19, 23:59. Assignment P4 -
EVERYTHING AT ONCE Files: Assignment 4 descriptionTanks Deadline: Thursday November 1, 23:59. Extended deadline (1pt penalty): Friday November 2, 23:59. Alternative Assignment P4 Instead of working on the standard P4 assignment, you may also propose your own project. This is intended for people that want to use the INFOMOV course to optimize a specific application. Please contact me for details before proceeding.
|
News Archive
|
|
Old posts
November 2:
October 24:
October 19:
October 17:
October 8:
August 6:
Old posts will be archived here. |