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 버전을 비교하는 테스트 프레임워크를 포함하여 정확성과 성능을 측정합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트