如何在C中的单个指令周期中添加100个整数元素的数组?

时间:2014-04-16 06:39:16

标签: c assembly profiling simd mmx

我有一个包含100个元素的数组,我想添加所有这100个元素。我使用的C代码与下面的代码相同

for(i=0;i<100;i++)
{
sum+= a[i];
}

让我们假设处理器需要100个指令周期来添加100个元素,这将降低应用程序的速度。所以,我想知道是否有任何指令可以在一个指令周期内添加100个元素来加速应用程序。

1 个答案:

答案 0 :(得分:3)

没有指令在单个硬件指令周期中添加100个数字。至少在我所知道的任何硬件中都没有。

但是如果你有兴趣从台式电脑中获得最大的计算性能,你应该考虑使用显卡进行编程。今天的顶级显卡拥有超过3000个内核。

对于并行算法而言,增加并不完美,因为结果并不是独立的。但是如果你有超过N个核心,时间复杂度就是O(log N)。

推荐的互联网搜索字词:

GPU程序

GPU编程

并行算法