【发布时间】:2012-06-11 13:13:33
【问题描述】:
我试图在 Intel i3 处理器上找到 32 个元素(每个 1 字节数据)的总和减少。我这样做了:
s=0;
for (i=0; i<32; i++)
{
s = s + a[i];
}
但是,它需要更多时间,因为我的应用程序是一个需要更少时间的实时应用程序。 请注意,最终总和可能超过 255。
有没有一种方法可以使用低级 SIMD SSE2 指令来实现?不幸的是,我从未使用过 SSE。为此,我尝试搜索 sse2 函数,但它也不可用。 (sse)是否保证减少这种小型问题的计算时间?
有什么建议吗??
注意:我已经使用 OpenCL 和 CUDA 实现了类似的算法,并且效果很好,但仅在问题规模很大时才有效。对于小型问题,开销成本更高。不知道它在 SSE 上是如何工作的
【问题讨论】:
-
是的,最终的总和可能大于 255