Expressive Vector Engine – SIMD in C++

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Stream - Scalable APIs for Chat, Feeds, Moderation, & Video.
Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.
getstream.io
featured
InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
  1. eve

    Expressive Vector Engine - SIMD in C++ Goes Brrrr (by jfalcou)

    Here is a bunch of simple examples: https://github.com/jfalcou/eve/blob/fb093a0553d25bb8114f1396...

    I personally think we have the following strenghs:

    * Algorithms. Writing SIMD loops is very hard. We give you a lot of ready to go loops. (find, search, remove, set_intersection to name a few).

  2. Stream

    Stream - Scalable APIs for Chat, Feeds, Moderation, & Video. Stream helps developers build engaging apps that scale to millions with performant and flexible Chat, Feeds, Moderation, and Video APIs and SDKs powered by a global edge network and enterprise-grade infrastructure.

    Stream logo
  3. xsimd

    C++ wrappers for SIMD intrinsics and parallelized, optimized mathematical functions (SSE, AVX, AVX512, NEON, SVE, WebAssembly, VSX, RISC-V))

    Interesting library, but i see it falls back into what happens to almost all SIMD libraries, which is that they hardcode the vector target completely and you cant mix/match feature levels within a build. The documentation recommends writing your kernels into DLLs and dynamic-loading them which is a huge mess https://jfalcou.github.io/eve/multiarch.html

    Meanwhile xsimd (https://github.com/xtensor-stack/xsimd) has the feature level as a template parameter on its vector objects, which lets you branch at runtime between simd levels as you wish. I find its a far better way of doing things if you actually want to ship the simd code to users.

  4. zimt

    header-only C++ template library to process n-dimensional arrays with multithreaded SIMD code

    +1, dynamic dispatch is important. Our Highway library has extensive support for this.

    Detailed intro by kfjahnke here: https://github.com/kfjahnke/zimt/blob/multi_isa/examples/mul...

  5. gemma.cpp

    lightweight, standalone C++ inference engine for Google's Gemma models.

    As mentioned ("re-include our source file"), we are indeed able to put the SIMD code, as well as the self-#include of itself, in a load.cxx TU.

    Here is an example: https://github.com/google/gemma.cpp/blob/9dfe2a76be63bcfe679...

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Sleef: Building a Sustainable Future for Our Open Source Projects

    1 project | news.ycombinator.com | 4 Nov 2025
  • Regarding the Monetization of Project Maintenance

    2 projects | news.ycombinator.com | 3 Aug 2025
  • SIMD Library for Evaluating Elementary Functions, Vectorized Libm and DFT

    1 project | news.ycombinator.com | 25 Nov 2024
  • SIMD Everywhere Optimization from ARM Neon to RISC-V Vector Extensions

    6 projects | news.ycombinator.com | 29 Sep 2023
  • The Case of the Missing SIMD Code

    7 projects | news.ycombinator.com | 8 Jun 2023

Did you know that C++ is
the 7th most popular programming language
based on number of references?