Adventures in SIMD-Thinking - Bob Steagall - [CppNow 2021]

#Boost #Cpp #CppNow Slides: https://cppnow.org/history/2021/talks/ CppNow Website: https://cppnow.org CppNow Twitter: @CppNow Streamed & Edited By Digital Medium Ltd: https://events.digital-medium.co.uk ------ SIMD capabilities are virtually ubiquitous in modern computing hardware, and yet much of that computing capacity often goes unused. This talk will provide a high-level overview of the SSE, AVX, and AVX-512 instruction set architecture provided by Intel microprocessors, and provide some specific examples of real-world problems where additional performance can be gained by thinking "vertically". We'll begin with a quick, high-level description of the features provided by the SSE, AVX, and AVX-512 instruction sets. We'll then use C++ to compose a simple API employing various compiler intrinsics implementing those instruction sets. At the lowest level, the API will wrap some primitive operations, and then build some very useful basic operations (like multi-register shift) upon those primitives. We'll then build some facilities for comparison and arithmetic, and finally round out the API with functions for load and store. During all of this, we'll use C++ to provide type safety, reduce complexity, and maximize performance. Next, we'll take a look at how this simple API can be used to improve performance for a handful of interesting problems, like sorting the values stored in a register, creating a very fast 1-D median filter, or high-speed convolution and correlation with kernels that fit within a single register. ------ Bob Steagall Program Chair, KEWB Computing ------ May 1, 2022 - May 6, 2022 - Aspen, Colorado ------------------------- --- *--* ---

Iterators and Ranges: Comparing C++ to D to Rust - Barry Revzin - [CppNow 2021]
▶︎

Iterators and Ranges: Comparing C++ to D to Rust - Barry Revzin - [CppNow 2021]

SIMD and vectorization using AVX intrinsic functions (Tutorial)
▶︎

SIMD and vectorization using AVX intrinsic functions (Tutorial)

Adventures in SIMD-Thinking (part 1 of 2) - Bob Steagall - CppCon 2020
▶︎

Adventures in SIMD-Thinking (part 1 of 2) - Bob Steagall - CppCon 2020

Linus Torvalds: AI Is Changing Linux Fast
▶︎

Linus Torvalds: AI Is Changing Linux Fast

What Every Programmer Should Know about How CPUs Work • Matt Godbolt • GOTO 2024
▶︎

What Every Programmer Should Know about How CPUs Work • Matt Godbolt • GOTO 2024

Intrinsic Functions - Vector Processing Extensions
▶︎

Intrinsic Functions - Vector Processing Extensions

Teenager Disproves 4 Decades Old Belief in Computing
▶︎

Teenager Disproves 4 Decades Old Belief in Computing

Concurrency in C++: A Programmer’s Overview (part 1 of 2) - Fedor Pikus - CppNow 2022
▶︎

Concurrency in C++: A Programmer’s Overview (part 1 of 2) - Fedor Pikus - CppNow 2022

Building High Performance Search Indexes in Rust with SIMD - Jack Pertschuk
▶︎

Building High Performance Search Indexes in Rust with SIMD - Jack Pertschuk

The Art of SIMD Programming by Sergey Slotin
▶︎

The Art of SIMD Programming by Sergey Slotin

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains
▶︎

Zig 2026: No-AI Policy, $670K Foundation, Left GitHub & Why Zig Isn’t 1.0 - Andrew Kelley Explains

A Crash Course in Unicode for C++ Developers - Steve Downey - [CppNow 2021]
▶︎

A Crash Course in Unicode for C++ Developers - Steve Downey - [CppNow 2021]

SIMD Libraries in C++ - Jeff Garland - CppNow 2023
▶︎

SIMD Libraries in C++ - Jeff Garland - CppNow 2023

Don't constexpr All the Things - David Sankel [CppNow 2021]
▶︎

Don't constexpr All the Things - David Sankel [CppNow 2021]

Making use of SIMD Vectorisation to Improve Code Performance
▶︎

Making use of SIMD Vectorisation to Improve Code Performance

Back to Basics: Templates (part 1 of 2) - Bob Steagall - CppCon 2021
▶︎

Back to Basics: Templates (part 1 of 2) - Bob Steagall - CppCon 2021

std::simd: How to Express Inherent Parallelism Efficiently Via Data-parallel Types - Matthias Kretz
▶︎

std::simd: How to Express Inherent Parallelism Efficiently Via Data-parallel Types - Matthias Kretz

code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care
▶︎

code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care

What is Low Latency C++? (Part 1) - Timur Doumler - CppNow 2023
▶︎

What is Low Latency C++? (Part 1) - Timur Doumler - CppNow 2023

PLC Troubleshooting 101.  Basic Steps to Diagnose and Fix Your Machine
▶︎

PLC Troubleshooting 101. Basic Steps to Diagnose and Fix Your Machine