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++プログラマー向けの高性能な画像処理および機械学習ライブラリです。SIMD(単一命令複数データ)というハードウェア固有のCPU拡張機能を活用して、複数のデータポイントを同時に処理することで、計算負荷の高い画像操作やニューラルネットワーク計算を効率的に実行する問題を解決します。

仕組み

このライブラリは、ピクセルフォーマット変換、画像スケーリング、フィルタリング、モーション検出などのタスク向けに最適化されたアルゴリズム群を提供します。x86/x64アーキテクチャではSSE、AVX、AVX-512、AMXを、ARMアーキテクチャではNEON、SVE、SVE2といったさまざまなCPU拡張機能を使用してこれらのアルゴリズムを実装することで、高いパフォーマンスを達成しています。C APIとC++ラッパーに加え、より広範なアクセス性を提供するPythonラッパーも用意されています。

対象ユーザー

CPU上で高速な画像処理や機械学習推論を必要とするCおよびC++開発者で、特に複数のハードウェアプラットフォーム(x86およびARM)をターゲットにしている人向けです。

特徴

  • 広範なハードウェア対応: AVX-512、AMX、ARM SVE2など、幅広いCPU拡張機能を最適化済み。
  • クロスプラットフォーム: 32ビットおよび64ビットアーキテクチャにおけるWindowsおよびLinuxをサポート。
  • OpenCV統合: SimdとOpenCVの型間で組み込みの相互変換を提供。
  • 包括的なテスト: 異なるSIMD実装における正しさの検証およびパフォーマンスベンチマークを可能にするテストフレームワークを備えている。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト