有没有比在数组元素上执行循环更有效的方法来获取 C/C++中两个内存块数组的绝对差之和?double
所以,我想知道是否有类似的功能用于此目的memset
,memcpy
等memcmp
。
你如何定义差异?
内存块包含double
值,我需要的是内存块数组的相应索引中的值之间的绝对数值差的总和。
有没有比在数组元素上执行循环更有效的方法来获取 C/C++中两个内存块数组的绝对差之和?double
所以,我想知道是否有类似的功能用于此目的memset
,memcpy
等memcmp
。
你如何定义差异?
内存块包含double
值,我需要的是内存块数组的相应索引中的值之间的绝对数值差的总和。
是的,有SIMD。如果你使用 GCC,你可以尝试添加类似的东西-msse2 -O3
,看看它是否会自动为你生成 SIMD 指令。如果是这样,或者如果您选择使用库来执行显式 SIMD,则每条指令可以处理四个浮点数。为了提高您的机会,请尝试使您的内部循环变得简单明了,以便优化器可以轻松处理它。