我有一个包含 100 个元素的数组,我想添加所有这 100 个元素。我使用的 C 代码与下面相同
for(i=0;i<100;i++)
{
sum+= a[i];
}
让我们假设处理器需要 100 个指令周期来添加 100 个元素,这会降低应用程序的速度。所以,我想知道是否有任何指令可以在单个指令周期内添加 100 个元素以加快应用程序的速度。
最佳答案
没有指令可以在单个硬件指令周期内将 100 个数字相加。至少在我所知道的任何硬件中都没有。
但是,如果您有兴趣从台式计算机中获得最大的计算性能,您应该考虑使用显卡进行编程。如今顶级显卡拥有超过 3000 个核心。
加法对于并行算法来说并不完美,因为结果不是独立的。但如果你有超过 N 个核心,时间复杂度就是 O(log N)。
建议的互联网搜索词:
GPU程序
GPU编程
并行算法
关于c - 如何在 C 中的单个指令周期内添加 100 个整数元素的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23101861/