Page 89 - 《软件学报》2025年第9期
P. 89
4000 软件学报 2025 年第 36 卷第 9 期
数向量求欧几里得距离平方 (L2 norm squared) 的算法, 向量化后的算法一次迭代可以完成 32 个 (当向量寄存器
长度为 128 位时) 或 64 个 (当向量寄存器长度为 256 位时) 元素的运算. 进一步观察原始测试数据可以发现, 在
CanMV-K230 开发板上, 当且仅当向量元素个数多于 32 个时, 向量化算法才具有优化效果. 类似的, 在 BPI-F3 开
发板上, 当且仅当向量元素个数多于 64 个时, 向量化算法才具有优化效果. 这说明, 当输入数据的尺寸过小, 以至
于无法满足一次向量化迭代的运算量时, 其向量化后的向量指令开销及额外控制开销可能超过向量优化的收益,
从而引发负面效果. 考虑到高性能算法库的输入通常具有较大规模, 此类负面效果并不常出现, 被认为是可以接
受的.
表 6 不同方法在 OpenCV 图像处理模块中的加速比
BPI-F3 CanMV-K230
测试用例类别
定长 自动向量化 本文方法 联用 定长 自动向量化 本文方法 联用
Accumulate 0.15 0.99 2.09 2.10 0.15 0.79 1.69 1.71
AdaptiveThreshold 0.61 2.36 2.05 3.35 0.59 1.57 1.63 2.04
BilateralFilter 0.15 1.01 3.91 3.92 0.16 1.03 2.83 2.83
BlendLinear 0.57 0.91 4.04 3.99 0.56 1.04 2.35 2.35
Blur 0.78 2.30 2.12 3.76 0.79 1.54 1.75 2.27
BoundingRect 0.81 4.77 0.95 4.72 0.82 2.75 0.96 2.76
Box 0.83 2.14 1.24 2.47 0.85 1.47 1.17 1.62
BuildPyramid 0.37 1.76 1.33 1.36 0.33 1.35 0.88 0.87
Canny 0.19 1.23 1.30 1.30 0.19 1.11 1.28 1.27
CompareHist 0.66 1.23 3.02 3.06 0.67 1.08 2.20 2.17
CopyMakeBorder 1.10 1.11 1.07 1.10 1.24 1.23 1.23 1.23
Corner 0.55 1.35 1.25 1.97 0.53 1.09 1.21 1.37
CvtColor 0.30 1.06 1.58 1.57 0.30 1.01 1.21 1.19
Filter2d 0.16 1.00 3.71 3.73 0.16 0.87 2.17 2.17
findContours 0.72 1.03 2.39 2.51 0.72 1.04 2.23 2.23
GaborFilter2d 0.95 0.89 1.02 0.84 0.96 0.82 1.01 0.86
GaussianBlur 0.31 1.37 3.08 3.17 0.32 1.11 2.10 2.08
GoodFeaturesToTrack 0.58 1.23 1.20 1.54 0.56 1.12 1.19 1.31
HoughCircles 0.01 1.06 1.18 1.20 0.01 1.03 1.12 1.12
MatchTemplate 0.94 0.83 1.06 0.94 0.93 0.86 1.01 0.93
MedianBlur 1.38 4.26 7.30 7.22 1.31 2.91 7.78 7.75
Moments 0.58 1.29 0.95 1.16 0.58 1.06 0.99 1.01
PreCornerDetect 0.41 0.75 1.44 1.46 0.40 1.15 1.49 1.48
Product 0.17 1.10 2.28 2.28 0.16 0.84 1.78 1.79
PyrDown 0.31 1.67 1.24 1.22 0.28 1.30 0.78 0.76
PyrUp 0.55 1.48 2.00 1.96 0.53 1.31 1.46 1.43
Remap 0.42 0.90 1.00 0.90 0.44 0.78 1.01 0.79
Resize 0.86 1.20 1.09 1.22 0.83 1.10 1.10 1.15
ResizeDownLinear 0.48 1.37 1.29 1.55 0.49 1.18 1.25 1.32
ResizeUpLinear 0.43 1.36 1.71 1.86 0.45 1.15 1.44 1.41
ScharrFilter 0.20 1.54 2.39 2.26 0.19 1.10 1.58 1.51
SobelFilter 0.21 1.04 2.14 1.98 0.21 0.92 1.56 1.48
SpatialGradient 0.26 1.01 1.93 1.85 0.26 1.00 1.54 1.49
Square 0.17 1.06 2.29 2.29 0.17 0.83 1.94 1.94
Stackblur 0.57 0.80 3.66 3.46 0.64 0.84 2.83 2.77
Threshold 0.91 3.75 6.24 6.27 0.87 2.75 5.26 5.21
WarpAffine 0.16 0.92 1.01 0.92 0.16 0.86 1.03 0.86
WarpPerspective 0.36 0.87 1.00 0.87 0.40 0.96 1.06 0.96
Weighted 0.55 1.10 1.88 1.69 0.55 0.85 1.42 1.32
平均 0.50 1.46 2.11 2.33 0.51 1.20 1.76 1.82

