SluitenHelpPrint
Switch to English
Cursus: INFOMOV
INFOMOV
Optimization and vectorization
Cursus informatieRooster
CursuscodeINFOMOV
Studiepunten (ECTS)7,5
Categorie / NiveauM (Master)
CursustypeCursorisch onderwijs
VoertaalEngels
Aangeboden doorFaculteit Betawetenschappen; Graduate School of Natural Sciences; Graduate School of Natural Sciences;
Contactpersoondr. J. Bikker
E-mailj.bikker@uu.nl
Docenten
Docent
D. Alexandridis, MSc
Overige cursussen docent
Docent
dr. J. Bikker
Overige cursussen docent
Contactpersoon van de cursus
dr. J. Bikker
Overige cursussen docent
Blok
4  (25-04-2022 t/m 08-07-2022)
Aanvangsblok
4
TimeslotC: C (MA-mid/namiddag,DI-middag, DO-ocht)
Onderwijsvorm
Voltijd
Cursusinschrijving geopendvanaf 31-01-2022 t/m 27-02-2022
AanmeldingsprocedureOsiris
Inschrijven via OSIRISJa
Inschrijven voor bijvakkersJa
VoorinschrijvingNee
Na-inschrijvingJa
Na-inschrijving geopendvanaf 04-04-2022 t/m 05-04-2022
WachtlijstJa
Plaatsingsprocedureadministratie onderwijsinstituut
Cursusdoelen

At the end of this course, the student

  • knows how to profile application code;
  • knows about high-level and low-level optimizations;
  • knows how to optimize an application in a structured and time-efficient manner;
  • is able to find, select, and apply algorithms with reduced algorithmic complexity;
  • understands the impact of memory latency on performance;
  • understands the role and workings of modern cache architectures;
  • knows the concept of SIMD and is able to apply this to existing code;
  • is able to apply low-level optimizations;
  • has a basic understanding of GPGPU and knows how to offload work to the GPU;
  • understands the GPU memory hierarchy and its effect on application performance;
  • is able to accurately report on the optimization process upon completion.


Assessment
Assignments, exam.

Programming assignments: your practical grade P is based on two programming assignments P1, P2 (25% each) and one final assignment P3 (50%).
Exam: your exam / theory grade T is based on a single final exam.

Final grade: Your final grade is (3P + T) / 4. You must score at least 4.0 (before rounding) for the exam 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 four assignments, or the exam. Exact terms will be discussed individually.

Inhoud

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.


Course form
Lectures, assignments.

Literature
Recommended articles, available through the course website.



Competenties
-
Ingangseisen
Je moet voldoen aan de volgende eisen
  • Toelatingsbeschikking voor de master toegekend
Voorkennis
The nature of this course requires that we use C++, and we will do so in a low-level way.
Verplicht materiaal
-
Aanbevolen materiaal
Software
UA10302 Visual Studio 2013
Werkvormen
Werkcollege

Toetsen
Eindresultaat
Weging100
Minimum cijfer-

SluitenHelpPrint
Switch to English