ermig1979/Simd
C++ image processing and machine learning library with using of SIMD: SSE, AVX, AVX-512, AMX for x86/x64, NEON, SVE for ARM, HVX for Hexagon
What it solves
Simd is a high-performance image processing and machine learning library for C and C++ programmers. It solves the problem of efficiently executing computationally intensive image operations and neural network calculations by leveraging hardware-specific CPU extensions (SIMD) to process multiple data points simultaneously.
How it works
The library provides a set of optimized algorithms for tasks like pixel format conversion, image scaling, filtration, and motion detection. It achieves high performance by implementing these algorithms using various CPU extensions, including SSE, AVX, AVX-512, and AMX for x86/x64 architectures, and NEON, SVE, and SVE2 for ARM architectures. It offers a C API and C++ wrappers, as well as a Python wrapper for broader accessibility.
Who it’s for
C and C++ developers building applications that require fast image processing or machine learning inference on the CPU, particularly those targeting multiple hardware platforms (x86 and ARM).
Highlights
- Broad Hardware Support: Optimized for a wide range of CPU extensions including AVX-512, AMX, and ARM SVE2.
- Cross-Platform: Supports Windows and Linux across 32-bit and 64-bit architectures.
- OpenCV Integration: Provides built-in mutual conversion between Simd and OpenCV types.
- Comprehensive Testing: Includes a test framework for verifying correctness and benchmarking performance across different SIMD implementations.
Related
- Project
- Project
- Project
- Project
- Project