AVX Vectorization Workshop 2025

AVX Vectorization Workshop is a two-day onsite training course with programming exercises, taught by Ivica Bogosavljevic.  It is offered at the Gaylord Rockies from 09:00 to 17:00 Aurora time (MDT) on Saturday and Sunday, September 20th and 21st, 2025 (immediately following the conference). Lunch is included.

Register HereSee Other Offerings

Course Description

For software developers who wish to learn how to write fast software!

AVX vectorization workshop teaches you how accelerate your programs program using AVX (Advanced Vector Extensions) available in most modern Intel and AMD CPUs. We introduce vectorization from the most basic concept up to very advanced vectorization topics.

Prerequisites

C++ and algorithm basics are assumed. A participant should be able to code binary search algorithm from head. No previous knowledge about vectorization is needed.

Course Topics

  • A short introduction to vectorization
  • Introduction to AVX intrinsics
  • Advanced AVX intrinsics
  • Basic vectorization patterns – vectorizing for loops, foor loops with early exit, while loops and convergence loops
  • Common vectorization patterns – vectorizing loops with conditions, conditional counting, loops with structs and matrix transposition.
  • Vectorization inhibitors – learn to detect and remove obstacles that hinder efficient vectorization
  • Vectorization types according to data access pattern – there are several ways to do vectorization, here we investigate inner-loop vectorization, outer-loop vectorization. For AVX we also talk about how to vectorize accesses to binary trees and hash maps.
  • Advanced vectorization patterns – we talk about how to vectorize copy_if, trees and lookup tables.
  • Memory performance – improve the performance of your vectorized code by better using the memory subsystem.
  • Peak performance – reach peak software performance by breaking instruction dependecies, avoiding register spills and cleverly using everything hardware has to offer.

Course Instructor

Ivica Bogosavljevic

Ivica Bogosavljević is an Application Performance Specialist with over
a decade of industry experience. His professional focus is application
performance improvement – techniques used to make your C/C++ program run faster by using better algorithms, better exploiting the
underlying hardware, and better usage of the standard library,
programming language, and the operating system.

Ivica also writes for a performance related blog for Johnny’s Software
Lab, and a lot of the material for this course has been derived from
his experiments and writings in the blog.

Ivica is also a founder of the Johny’s Software Lab, LLC performance consulting company that helps software development companies deliver fast software, through performance trainings or debugging sessions.

Register HereSee Other Offerings