Sonar helps you commit clean C++ code every time. With over 550 unique rules to find C++ bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work. Learn more →
Top 23 C++ Simd Projects
-
ncnn
ncnn is a high-performance neural network inference framework optimized for the mobile platform
Project mention: [D] Best way to package Pytorch models as a standalone application | /r/MachineLearning | 2023-01-06They're using NCNN to package the model. Have a look. https://github.com/Tencent/NCNN
-
I expect a lot of transcoders will be rewritten when the Vector instructions land. You can see speedups when used in other languages, such as simdjson. Please try to be more thoughtful and not disregard other people's hard work so easily.
-
Sonar
Write Clean C++ Code. Always.. Sonar helps you commit clean C++ code every time. With over 550 unique rules to find C++ bugs, code smells & vulnerabilities, Sonar finds the issues while you focus on the work.
-
Project mention: What is a file with the .i.hh extension such as myfile.i.hh used for in a C++ project? | /r/cpp_questions | 2023-05-11
GLM does it quite well, it has core includes then a detail folder with all the inl files that get added. https://github.com/g-truc/glm
-
Project mention: The Most Useful Numbers You've Never Heard Of (Veritasium video on p-adic numbers) | /r/math | 2023-06-06
Also, you don't need to write assembly to vectorize. Simply using a linear algebra library (Eigen for C++ is the most popular) will compile to vector instructions. If you need to implement something more exotic, you can use libraries like google/highway.
-
Project mention: SIMD intrinsics and the possibility of a standard library solution | /r/cpp | 2023-01-08
ISPC: https://github.com/ispc/ispc
-
I really like the C++ ozz-animation library, and Rust doesn't have a good answer for it (yet! work is being done) It has a really great compressed animation data format that again is good for the web It also has a great runtime library for distributing animation calculations across separate cores
-
xsimd
C++ wrappers for SIMD intrinsics and parallelized, optimized mathematical functions (SSE, AVX, AVX512, NEON, SVE))
Project mention: SIMD intrinsics and the possibility of a standard library solution | /r/cpp | 2023-01-08xsimd - 1.6K GH stars
-
InfluxDB
Access the most powerful time series database as a service. Ingest, store, & analyze all types of time series data in a fully-managed, purpose-built database. Keep data forever with low-cost storage and superior data compression.
-
kfr
Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
Looking around for a bit, some suggestions are GNURadio, ROOT, Armadillo and KFR.
-
DirectXMath
DirectXMath is an all inline SIMD C++ linear algebra library for use in games and graphics apps
For those unfamiliar, like I was, DXM is DirectXMath.
-
Project mention: The Bitter Truth: Python 3.11 vs Cython vs C++ Performance for Simulations | /r/cpp | 2022-12-30
Most high-performance math libraries perform a lot of vectorization (Eigen, etc) under the hood. And you've got stuff like Klein, Vc (which is reminiscent of std::valarray), etc. Then there's OpenMP's #pragma omp simd (assuming version 4.0 or greater).
-
-
Project mention: sse2neon - A C/C++ header file that converts Intel SSE intrinsics to Aarch64 NEON intrinsic | /r/CKsTechNews | 2022-12-26
-
Note the notice at the top of the readme, the author is replacing that library with FastNoise2 which is also SIMD enabled, although the library as a whole is still a work in progress, it claims to have superior performance.
-
simdutf
Unicode routines (UTF8, UTF16, UTF32): billions of characters per second using SSE2, AVX2, NEON, AVX-512. Part of Node.js.
Project mention: [Preprint] Transcoding Unicode Characters with AVX-512 Instructions | /r/asm | 2023-03-29You can find the corresponding assembly code in this repository. The main branch only contains implementations based on C++ with intrinsics.
-
Project mention: The Bitter Truth: Python 3.11 vs Cython vs C++ Performance for Simulations | /r/cpp | 2022-12-30
Most high-performance math libraries perform a lot of vectorization (Eigen, etc) under the hood. And you've got stuff like Klein, Vc (which is reminiscent of std::valarray), etc. Then there's OpenMP's #pragma omp simd (assuming version 4.0 or greater).
-
C++ offers tools for writing better APIs, and since the addition of concepts in C++20 it offers much better API enforcement. Writing an equivalent to libraries such as {fmt} or EVE is not possible in anything we’d call C.
-
I'm definitely interested in any thoughts you guys may have on the benchmarks, and am definitely open to contributions adding additional benchmarks/vector math libraries! For example, one that I thought about adding but didn't simply because it seems to have fewer game-centric features is RTM.
-
I'm going to throw in a recommendation for Fastor. It is generally faster than other libraries, is very lightweight, and has a pretty modern syntax.
-
A note on using GLRPT - currently there aren't any satellites up with functioning LRPT transmissions. Hopefully this year Russia will get another Meteor satellite up and we can start receiving LRPT signals again. Also you may find it more convenient to use SatDump for working some satellites as it connects directly to the SDR without needing GQRX and a virtual audio cable.
-
Project mention: SIMD intrinsics and the possibility of a standard library solution | /r/cpp | 2023-01-08
std-simd - 451 GH stars
-
Project mention: RISC-V Business: Testing StarFive's VisionFive 2 SBC | news.ycombinator.com | 2023-03-03
I wonder how much of the performance will improve when compilers get better at RISC-V.
It's been a long time since I could beat the compiler at optimizing assembly on x86, yet in the end merely unrolling a loop and keeping an eye on write-read stalls I managed to get a simple "multiply array by const" about 56% faster:
https://github.com/gnuradio/volk/pull/619
And that's with hardware that doesn't even have vector instructions! I'd understand GCC not supporting that yet.
Some other quickstart docs and hot takes from me on this hardware: https://blog.habets.se/2023/01/VisionFive-2-quickstart.html
-
-
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
C++ Simd related posts
- The Most Useful Numbers You've Never Heard Of (Veritasium video on p-adic numbers)
- Iguana: fast SIMD-optimized decompression
- Any fresh jvm21 benchmarks ?
- Smaller & Faster Vector Search Engine for C++, Python, JavaScript, Rust, Java, GoLang, Wolfram
- Tiny and Fast Vector Search for C++, Python, JavaScript, Rust, Java, Wolfram
- USearch: Smaller & Faster Single-File Vector Search Engine with Automatic Quantization and Hardware Acceleration
- USearch: Smaller & Faster Single-File Vector Search Engine
-
A note from our sponsor - Sonar
www.sonarsource.com | 8 Jun 2023
Index
What are some of the best open-source Simd projects in C++? This list will help you:
Project | Stars | |
---|---|---|
1 | ncnn | 17,259 |
2 | simdjson | 16,975 |
3 | GLM | 7,593 |
4 | highway | 2,543 |
5 | ispc | 2,233 |
6 | ozz-animation | 1,987 |
7 | xsimd | 1,749 |
8 | kfr | 1,420 |
9 | DirectXMath | 1,331 |
10 | Vc | 1,318 |
11 | libsimdpp | 1,098 |
12 | sse2neon | 958 |
13 | FastNoise2 | 701 |
14 | simdutf | 692 |
15 | Klein | 662 |
16 | eve | 624 |
17 | rtm | 587 |
18 | Fastor | 577 |
19 | SatDump | 512 |
20 | std-simd | 483 |
21 | volk | 445 |
22 | corrade | 436 |
23 | SeqAn | 432 |