SIMD in C++20 - EVE of a new Era

In those days and ages of GPGPU, Cloud Computing, and other bleeding-edge large-scale computing architectures, peoples often forget that 150% of their CPU comes with a layer of Instruction Level Parallelism: their SIMD computing unit. If writing code using SIMD systems was less of a nightmare then, yeah, people would use it. So, obviously, we had to write a library for it.

Writing SIMD wrapper libraries is not a new idea and a bunch exists already. What we want to showcase here is EVE : a C++20 library giving access in a uniform way across both ARM (neon) and x86 (from sse2 to avx-512)...

Its main advantages over similar libraries include:

  • STL like algorithm support, including zip to operate on multiple ranges.

  • ARM support (many libraries only support x86)

  • A very comprehensive math library.It is liberally licensed and intended to be production quality.

This talk will include a collection of demos (like for different library features and benchmarks, as well as practical advice on using EVE in your projects.

Joel Falcou

Joel is an associate professor at the University Paris-Saclay and Researcher at the Laboratoire de Recherche d’Informatique in Orsay, France. His research focuses on studying generative programming idioms and techniques to design tools for parallel software development.

The main parts of his work are:

  • the exploration of Embedded Domain Specific Language design for parallel computing on various architectures;

  • the definition of a formal framework for reasoning about meta-programs.

Joel is the co-host of the C++FRUG Meetup, president of the C++FRUG Association, co-organizes the CPPP Conference, and is part entrepreneur, being one of the co-founder of CODE RECKONS, a company focused on bringing people and company up to date to the best and newest C++.