Skip to content

Releases: devpilgrin/FastOpenCV

Release list

FastOpenCV 1.0.0

Choose a tag to compare

@devpilgrin devpilgrin released this 08 Sep 20:15

FastOpenCV 1.0.0

Оптимизированная сборка OpenCV 4.14.0 (+contrib) и библиотека быстрых кернелов fastcv.
Железо разработки: AMD Zen 5 (AVX-512 + VBMI, 32 потока) + NVIDIA RTX 4090, Arch Linux.

Состав

  • Сборки (scripts/): linux-dispatch (CUDA 13.3 sm_89, cuDNN, TBB, LAPACK/OpenBLAS, AVX2 + dispatch AVX512_SKX, LTO) и контрольная linux-stock
  • Патчи OpenCV (patches/): параллельный DFT/DCT (5-12x), совместимость CUDA+LTO, бэкпорты FFmpeg 9
  • fastcv (fastcv/): 30+ кернелов-замен с cv::Mat API, каждый с бенчем до/после и верификацией точности
  • C API + Rust FFI (fastcv_c.h, rust/fastcv-sys), регрессионный сьют (14 проверок)

Избранные результаты (1080p 8UC1, сток OpenCV → fastcv)

Операция Ускорение
medianBlur k=9 (C1 / C3) 14-17x / 16.6x, bit-exact
gemm (BLAS) до 74x
eigenSym / SVD (LAPACK) 36.6x / 12.5x
undistort 11.4x one-shot / 19x RT, bit-exact
edgePreserving NC 22.7x
sum 8UC3 26.7x
resize AREA x4 18.7x
sortIdx по строкам 23.5x
Sobel k=5/7 3.8x/6.7x, bit-exact
adaptiveThreshold GAUSSIAN 5.3-9.1x

DNN (MobileNetV2 224×224, RTX 4090)

OpenCV dnn CUDA-бэкенд (7.3 мс) хуже CPU (2.9 мс) и уступает TensorRT 11.2 FP16 (0.117 мс, 8241 fps) в 63 раза.

Ключевые находки аудита

  • gemm в OpenCV однопоточный (ветка cblas закомментирована в matmul.simd.hpp)
  • cv::undistort вызывает remap ~540 раз на кадр (полосы по 2 строки)
  • photo-модуль использует собственный скалярный Domain_Filter 2011 года вместо параллельного ximgproc::dtFilter
  • GPU не универсален: gaussian/resize/median быстрее на CPU

Полные таблицы, честные отказы (boxFilter, guidedFilter, NLM, van Herk - с замерами) и журнал работ: README.md, PLAN.md, QUEUE.md.