我有一个包含100个元素的数组,我想添加所有这100个元素。我使用的C代码与下面的代码相同
for(i=0;i<100;i++)
{
sum+= a[i];
}
让我们假设处理器需要100个指令周期来添加100个元素,这将降低应用程序的速度。所以,我想知道是否有任何指令可以在一个指令周期内添加100个元素来加速应用程序。
答案 0 :(得分:3)
没有指令在单个硬件指令周期中添加100个数字。至少在我所知道的任何硬件中都没有。
但是如果你有兴趣从台式电脑中获得最大的计算性能,你应该考虑使用显卡进行编程。今天的顶级显卡拥有超过3000个内核。
对于并行算法而言,增加并不完美,因为结果并不是独立的。但是如果你有超过N个核心,时间复杂度就是O(log N)。
推荐的互联网搜索字词:
GPU程序
GPU编程
并行算法