AVX与AVX2编程:从基础到高级特性
1. AVX编程中的整数处理
在AVX编程里,整数处理有着丰富的指令集。在执行完处理循环后, AvxCalcImageMean_ 函数会使用标量双精度浮点运算来计算最终的平均强度值。在计算平均值之前,会对 num_mask_pixels 进行检查,以避免出现除零错误。以下是 Ch07_08 源代码示例的输出:
| 项目 | C++ | X86 - AVX |
| — | — | — |
| SumPixelsMasked | 23813043 | 23813043 |
| NumPixelsMasked | 138220 | 138220 |
| MeanMaskedPixels | 172.2836 | 172.2836 |
同时,还对 AvxThreshold_BM 基准函数进行了运行测试,基准测试时间会保存到文件 Ch07_08_AvxThreshold_BM_CHROMIUM.csv 中。不同CPU执行图像阈值处理和均值计算序列的平均执行时间(微秒)如下表所示:
| CPU | C++ | 汇编语言 |
| — | — | — |
| i7 - 4790S | 289 | 50 |
| i9 - 7900X | 250 | 40 |
| i7 - 8700K | 242 | 39 |
1.1 AVX整数指令集
AVX的整数指令集涵盖了多种操作,具体如下:
超级会员免费看
订阅专栏 解锁全文
3

被折叠的 条评论
为什么被折叠?



