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

解決的問題

提供一個高效率的影像處理與機器學習函式庫,專門設計用於克服標準C/C++實作的效能瓶頸,透過利用硬體層級的CPU優化技術來達成。

工作原理

該函式庫使用SIMD(Single Instruction, Multiple Data)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版本進行比較,以確保正確性並衡量效能。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案