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 拡張機能を使用してアルゴリズムを実装しています。これにより、1つの 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 バージョンを比較するテストフレームワークを備えており、正しさの確認とパフォーマンス測定を実施しています。

関連

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