ppl.cv 是商汤 HPC 团队自研的高性能图像处理库,其中包含 HPC 团队产品 OpenPPL 在场景落地中总结出的一组常用图像处理和其他 cv 操作,可以在深度学习推理的整个 pipeline 中优化相关的图像预处理部分,与推理引擎 ppl.nn 组合完成深度学习推理的全流程。 ppl.cv 在实现上对齐图像处理界标杆,具有轻量、高性能,算子低耦合和库易裁剪等优势。 CUDA benchmarkOpenCV 中部分算子有 x86/CUDA 两种实现,部分只有 x86 实现,ppl.cv.cuda 以OpenCV x86/CUDA 已有实现中最快的版本作为性能测试对比对象。 对于某一个算子,性能测试根据输入参数类型和取值设计具有较广覆盖面的参数组合进行测试,计算与 OpenCV 实现相对的加速比并排序,参考统计学中的盒图概念,以最小加速比、中位数加速比和最大加速比作为函数性能对比指标展示 ppl.cv.cuda 的性能。 ppl.cv.cuda 共开源 174 APIs。其中,156 APIs 取得 1~59 倍不等的加速比,14 APIs 仅最小加速比小于 1,4 APIs 最小和中位数加速比小于 1,其中 norm/integral 算子因为算法串行特性慢于 OpenCV x86(但快于 OpenCV CUDA 实现)。 下图为以 BitwiseAnd() 和Sobel()为例,ppl::cv::cuda::xxx() 与 cv::cuda::xxx() 不同参数组合下在NVIDIA GTX 1060 GPU上的性能对比(Time 列数值为算子平均执行时间): |
说点什么...