我们正在尝试以signed int
高性能的方式使用不等式操作 <、<=、> 和 >= 来比较两个大小相同的原生值数组。由于比较了许多值,true/false
结果将存储在char
与输入大小相同的数组中,其中0x00
均值false
和0xff
均值true
。
为此,我们使用了英特尔 IPP 库。问题是我们ippiCompare_*
从图像和视频处理库中找到的执行此操作的函数名为 ,仅支持类型unsigned char
( Ipp8u
)、signed/unsigned short
( Ipp16s/Ipp16u
) 和float
( Ipp32f
)。它不直接支持signed int
( Ipp32s
)
我(仅)设想了两种可能的解决方法:
将数组转换为直接支持的类型之一并在更多步骤中执行比较(它将变成大小两倍的短数组或大小四倍的 char 数组)并合并中间结果。
使用另一个函数直接支持
signed int
来自 IPP 或另一个库的数组,这些函数可以在性能方面做一些等效的事情。
但可能还有其他创造性的方式......所以我请你帮忙!:)
PS:使用英特尔 IPP 的优势在于大型阵列的性能提升:它同时使用多值处理器功能和多个内核(可能还有更多技巧)。如此简单的循环解决方案不会像AFAIK那样快。