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

它解决了什么问题

Simd 是一个为 C 和 C++ 程序员设计的高性能图像处理和机器学习库。它通过利用硬件特定的 CPU 扩展(SIMD)同时处理多个数据点,解决了高效执行计算密集型图像操作和神经网络计算的问题。

它如何工作

该库提供了一组针对像素格式转换、图像缩放、滤波和运动检测等任务的优化算法。它通过使用各种 CPU 扩展(包括 x86/x64 架构的 SSE、AVX、AVX-512 和 AMX,以及 ARM 架构的 NEON、SVE 和 SVE2)来实现高性能。它提供了 C API 和 C++ 包装器,以及一个 Python 包装器,以提高可访问性。

适用于谁

需要在 CPU 上快速进行图像处理或机器学习推理的 C 和 C++ 开发者,特别是那些针对多种硬件平台(x86 和 ARM)开发的应用程序。

主要特点

  • 广泛的硬件支持:针对多种 CPU 扩展进行了优化,包括 AVX-512、AMX 和 ARM SVE2。
  • 跨平台支持:支持 32 位和 64 位架构下的 Windows 和 Linux。
  • 与 OpenCV 集成:提供 Simd 和 OpenCV 类型之间的内置相互转换。
  • 全面的测试:包含一个测试框架,用于验证不同 SIMD 实现的正确性和性能基准测试。

相关

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