# 5.9 提高并行性
在此,程序的性能是受运算单元的延迟限制的。不过,正如我们表明的,执行加法和乘法的功能单元是完全流水线化的,这意味着它们可以每个时钟周期开始一个新操作,并且有些操作可以被多个功能单元执行。硬件具有以更高速率执行乘法和加法的潜力,但是代码不能利用这种能力,即使是使用循环展开也不能,这是因为我们将累积值放在一个单独的变量 acc 中。在前面的计算完成之前,都不能计算 acc 的新值。虽然计算 acc 新值的功能单元能够每个时钟周期开始一个新的操作,但是它只会每 L 个周期开始一条新操作,这里 L 是合并操作的延迟。现在我们要考察打破这种顺序相关,得到比延迟界限更好性能的方法。
← 5.8 循环展开 5.9.1 多个累积变量 →