VPI - Vision Programming Interface

3.2 版本

性能对比

在本节中,我们将 VPI 的性能与其他知名的计算机视觉库进行比较。性能数据是按照基准测试方法中描述的方法收集的。

基准测试是在 NVIDIA® Jetson AGX Orin™ 设备上完成的,时钟频率已最大化。

数据表明,VPI 在许多用例中提供了显著的速度提升。

OpenCV

与内置 NVIDIA® CUDA® 支持的 OpenCV 4.5.4 版本进行比较。此版本与 NVIDIA® JetPack™ 附带的 OpenCV 版本相匹配。

由于不同算法性能数据之间存在巨大差异,所有绘图均使用对数刻度。

CPU 性能

OpenCV 和 VPI 的测量均使用一个调度线程完成。许多 OpenCV 算法一旦调度,就会在执行期间使用多个 CPU 核心,但有些可能不会。这与 VPI 形成对比,在 VPI 中,始终使用所有可用的 CPU 核心。

主要的含义是,仅使用一个核心的 OpenCV 算法可以并行运行多个实例,最多可达 CPU 核心数,而不会影响其性能。另一方面,VPI CPU 算法性能随着并行实例数量线性扩展。在这种情况下,VPI 的优势在于性能随着添加的额外核心数量线性增加,而 OpenCV 的单线程算法性能将保持不变。

Jetson AGX Orin CPU 具有十二个核心。

OpenCV 与 VPI - CPU 性能
算法参数OpenCV 4.5.4 CPUVPI 2.0 CPU加速
高斯金字塔1920x1080 U8 scale=0.5, nlevels=50.299 毫秒0.399 毫秒0.75 倍
高斯滤波器1920x1080 U8 3x30.251 毫秒0.204 毫秒1.23 倍
卷积1920x1080 U8 3x36.871 毫秒0.315 毫秒21.81 倍
方框滤波器1920x1080 U8 3x3 clamp1.520 毫秒0.272 毫秒5.59 倍
重缩放1280x720 到 1920x1080, RGBA8 线性插值4.260 毫秒6.542 毫秒0.65 倍
双边滤波器1920x1080 U8 3x32.012 毫秒1.579 毫秒1.27 倍
可分离卷积1920x1080 U8 11x1118.250 毫秒0.545 毫秒33.49 倍
FFT626x626 Real->Complex81.060 毫秒19.560 毫秒4.14 倍
Harris 角点检测器1920x1080 U8 grad=3x3, win=3x339.400 毫秒7.410 毫秒5.32 倍
转换图像格式1920x1080 NV12_ER 到 RGBA81.866 毫秒0.850 毫秒2.20 倍
重映射1920x1080 RGBA8 dense, 线性插值6.280 毫秒5.320 毫秒1.18 倍
金字塔 LK 光流1920x1080 U8 3x3, 3 级, win=11x111.610 毫秒3.030 毫秒0.53 倍
拉普拉斯金字塔1920x1080 U8 -> S16, scale=0.5, 5 级5.100 毫秒2.880 毫秒1.77 倍
直方图1920x1080 U8, [0,256) 范围, 256 bins1.35 毫秒3.3 毫秒0.4 倍
直方图均衡化1920x1080 U80.452 毫秒0.339 毫秒1.33 倍
腐蚀1920x1080 U8 3x30.530 毫秒0.117 毫秒4.54 倍
最小值/最大值位置1920x1080 U8 2 个位置, 最小值+最大值0.241 毫秒0.280 毫秒0.86 倍
图像翻转1920x1080 RGBA8 both1.630 毫秒0.245 毫秒6.65 倍

CUDA 性能

OpenCV 和 VPI 基准测试均使用一个流进行算法执行。

OpenCV 与 VPI - CUDA 性能
算法参数OpenCV 4.5.4 CUDAVPI 2.0 CUDA加速
高斯金字塔1920x1080 U8 scale=0.5, 5 levels0.143 毫秒0.040 毫秒3.54 倍
高斯滤波器1920x1080 U8 3x30.141 毫秒0.035 毫秒4.36 倍
卷积1920x1080 U8 3x30.228 毫秒0.034 毫秒6.68 倍
方框滤波器1920x1080 U8 3x3 clamp0.205 毫秒0.045 毫秒6.06 倍
重缩放1280x720 -> 1920x1080 RGBA8, 线性插值0.114 毫秒0.078 毫秒1.84 倍
双边滤波器1920x1080 U8 3x30.295 毫秒0.064 毫秒4.61 倍
可分离卷积1920x1080 U8 11x110.220 毫秒0.056 毫秒3.93 倍
FFT626x626 Real->Complex2.162 毫秒0.190 毫秒11.37 倍
Harris 角点检测1920x1080 U8 grad=3x3, win=3x319.480 毫秒0.425 毫秒45.87 倍
重映射1920x1080 RGBA8, dense, 线性插值0.246 毫秒0.199 毫秒1.24 倍
金字塔 LK 光流1920x1080 RGBA8 dense, 线性插值0.949 毫秒0.212 毫秒4.48 倍
拉普拉斯金字塔1920x1080 U8 -> S16, scale=0.5, 5 级0.355 毫秒0.608 毫秒0.58 倍
直方图1920x1080 U8, [0,256) 范围, 256 bins0.041 毫秒0.033 毫秒1.23 倍
直方图均衡化1920x1080 U80.350 毫秒0.090 毫秒3.89 倍
腐蚀1920x1080 U8 3x30.246 毫秒0.031 毫秒7.96 倍
最小值/最大值位置1920x1080 U8 2 个位置, 最小值+最大值0.700 毫秒0.042 毫秒16.51 倍
图像翻转1920x1080 RGBA8 both0.155 毫秒0.093 毫秒1.66 倍