Trainings Details
This hands-on workshop teaches C/C++ developers how to accelerate their programs using AVX vector extensions available on modern Intel and AMD CPUs. We introduce vectorization from the ground up, covering everything from basic concepts to advanced techniques such as optimizing memory usage and reaching peak performance.
Requirements for attendees:
-
Intermediate C or C++ knowledge
-
No prior SIMD/vectorization experience required
-
Laptop with AVX2-capable CPU (Intel Haswell+/AMD Excavator+)
-
Development environment: MSVC 2019+, Ubuntu with g++, or WSL with g++
-
macOS not supported
Trainings Agenda
Trainings agenda:
-
Introduction to vectorization and AVX intrinsics
-
Advanced AVX intrinsics
-
Vectorization patterns: for-loops, while-loops, loops with conditions, matrix transposition, loops with classes, etc.
-
Detecting and removing vectorization inhibitors
-
Data access patterns: inner-loop, outer-loop, binary trees, hash maps
-
Advanced patterns: copy_if, trees, lookup tables
-
Memory performance optimizations
-
Achieving peak performance: breaking dependencies, avoiding register spills, exploiting hardware capabilities