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版本进行比较,以确保正确性并测量性能。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目