Unify NMSs and FastPreProcess as FastVisionOps - #1
Conversation
Som5ra
left a comment
There was a problem hiding this comment.
Self-review completed. GitHub does not permit the PR author to request changes or approve their own PR. Two reproducible API edge cases remain. Core native correctness, concurrency stress, packaging, and all CI jobs passed.
Som5ra
left a comment
There was a problem hiding this comment.
Final self-review completed with no unresolved code findings. Verified 40/40 tests, randomized NumPy/native equivalence, strict C warnings, OpenMP and portable fallback builds, source-wheel packaging, benchmark correctness checks, and clean review threads. GitHub does not allow a pull request author to approve their own PR, so this comment records the successful self-review result.
Som5ra
left a comment
There was a problem hiding this comment.
Independent sub-agent review result: APPROVE. The reviewer confirmed the empty native-batch validation fix, 41/41 tests, the full Python 3.9/3.12/3.13 CI matrix, and the concise 173-line README. No bugs, logical errors, or documentation findings remain. GitHub rejected a formal APPROVE because the connected account is the pull request author, so this comment records the approval recommendation.
Summary
This PR combines NMSs and FastPreProcess into FastVisionOps, one validated CPU toolkit for vision inference preprocessing and postprocessing.
fastvisionopspackage while preservingnmssimportsCorrectness
-Wall -Wextra -WerrorMeasured performance
Each value is the median elapsed time for one complete public API call after two warm-up runs and nine measured runs. Validation, allocation, and array preparation are included. Native output is checked against NumPy before timing.
Fused preprocessing, 427x640x3 images, 8 native threads
Bounding-box NMS
Eight images with 1,000 boxes each took 27.595 ms with serial native execution and 9.995 ms with eight workers, a 2.76x speedup.
Environment: Linux x86_64, Python 3.12.13, NumPy 2.3.5, GCC 13.3, 9 available Intel Xeon Platinum 8573C vCPUs.
Validation commands
python -m fastvisionops.build python -m unittest discover -s tests -v python -m benchmarks.benchmark_preprocess python -m benchmarks.benchmark_bbox python -m pip wheel --no-build-isolation --no-deps .Commit sequence
fix: handle empty NMS API inputsfeat: introduce unified FastVisionOps packagefeat: unify native vision operationsperf: add preprocessing acceleration benchmarkdocs: present the unified FastVisionOps toolkitfix: validate execution limits consistentlydocs: refresh final validation evidencefix: validate empty native NMS batchesdocs: tighten FastVisionOps overviewThe earlier focused NMS commits remain intact in the branch history. Commit messages contain no emoji.