One image library, six SIMD flavors, zero hand-wringing
A C++ library that manually vectorizes image processing and ML kernels so you don't have to pick between SSE, AVX-512, NEON, SVE, and whatever Intel dreams up next.

What it does
Simd is a C/C++ library for image processing and lightweight machine learning—format conversion, scaling, filtering, motion detection, object detection, and neural network inference. Every algorithm comes in multiple hand-optimized implementations targeting specific SIMD instruction sets.
The interesting bit
The build system lets you target x86 (SSE through AMX), ARM (NEON, SVE), and even Qualcomm Hexagon (HVX) from the same codebase. The test framework automatically benchmarks scalar against SIMD variants and can disable specific extensions at runtime—useful when you’re debugging whether AVX-512 is actually worth the downclocking penalty on your chip.
Key highlights
- Supports SSE, AVX2, AVX-512, AVX-512-VNNI, AMX-BF16/INT8 on x86; NEON and SVE on ARM; HVX on Hexagon
- Includes C API, C++ wrappers, and a Python module (
SimdPy) - Optional OpenCV interop with type conversions for
cv::Mat, points, and rectangles - vcpkg packaging available
- Test framework with per-function performance comparison, thread pinning, and cache-littering options
Caveats
- AMX and SVE support are off by default; you opt in via CMake flags
- The README notes that Visual Studio builds as DLL by default while everything else is static—an inconsistency that will bite you if you assume uniformity
- No stated performance numbers or benchmark comparisons against other libraries in the documentation
Verdict
Grab this if you’re shipping computer vision across heterogeneous hardware (x86 servers, ARM edge devices, Hexagon DSPs) and want one dependency instead of three. Skip it if you’re already locked into OpenCV’s HAL or Intel’s oneAPI and don’t need the portability.