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版本進行比較,以確保正確性並衡量效能。
相關
- 專案
- 專案
- 專案
- 專案
- 專案