-4

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

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

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

4

1 回答 1

3

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

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

加法对于并行算法并不完美,因为结果不是独立的。但是,如果您有 N 个以上的内核,则时间复杂度为 O(log N)。

建议的互联网搜索词:

GPU程序

GPU编程

并行算法

于 2014-04-16T08:02:30.893 回答