In this video we will discuss the aspects of modern CPU architecture that are important to know when optimising your code. We will discuss CPU cache as well as the speed of operations on modern CPUs. At the end of the video, we dive into hardware SIMD instructions that can be used to process data in parallel.
This module was designed as an MPAGS (Midlands Physics Alliance Graduate School) module and aimed at postgraduates and early career researchers.
Timestamps:
00:00:00 Introduction
00:00:10 Performance Difference Example
00:04:16 von Neumann Architecture revisited
00:05:09 Cache
00:10:21 Cache Architecture
00:14:09 Not all CPU operations are created equal
00:15:15 Branch Prediction
00:17:51 Arithmetic Operations
00:20:16 SIMD
00:24:50 SIMD in LLVM instructions
00:26:55 AVX512 on high end processors
00:29:49 Outro
Recommended Videos:
https://www.youtube.com/watch?v=SAk-6gVkio0
https://www.youtube.com/watch?v=WwkuAqObplU
Infographic Blog Post:
http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/
Useful links:
Course Information Website: https://jamiemair.github.io/mpags-high-performance-computing/overview/
Julia Documentation: https://docs.julialang.org/en/v1/
MPAGS Registration: https://warwick.ac.uk/fac/sci/physics/mpags/registration/
Course Notes: https://jamiemair.co.uk/courses/hpc