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
解决的问题
提供一个高性能的图像处理和机器学习库,专门设计用于通过利用硬件级别的CPU优化,克服标准C/C++实现的性能瓶颈。
工作原理
该库使用SIMD(单指令多数据)CPU扩展来实现算法。这使得软件能够在单个CPU周期内处理多个数据点。它支持广泛的硬件架构,包括:
- x86/x64: SSE, AVX, AVX-512, 和 AMX。
- ARM: NEON, SVE, 和 SVE2。
- Hexagon: HVX。
提供C API,并配有C++包装器和Python包装器,以实现更广泛的可访问性。
适用人群
需要在多种硬件平台上实现快速图像处理或机器学习任务(如目标检测或神经网络)的C和C++程序员。
主要亮点
- 广泛的硬件支持:针对x86、ARM和Hexagon上的几乎所有主要现代CPU扩展进行了优化。
- 多样化的工具集:包含像素格式转换、图像缩放、滤波、运动检测和物体分类等功能。
- 与OpenCV集成:支持Simd和OpenCV类型之间的相互转换。
- 全面的测试:包含一个测试框架,用于将标量实现与各种SIMD版本进行比较,以确保正确性并测量性能。
相关
- 项目
- 项目
- 项目
- 项目
- 项目