Skip to content

第8章:体系结构实验与综合分析

指标需要对应问题

比较处理器要固定工作量和正确性要求。一个优化若减少计算精度、跳过部分输入或改变问题,所得加速不能直接归因于硬件更强。

微基准用于隔离机制,完整应用用于测系统收益。缓存延迟实验需要控制依赖和访问模式,带宽实验需要足够并发;连续数组扫描往往测到预取后的吞吐量,不能直接当作随机单次访存延迟。

一个优化判断

假设程序用时 10 s,其中 6 s 是计算,4 s 是不能重叠的内存等待。方案 A 使计算快两倍而访存不变,总时间是 7 s;方案 B 保持计算速度但把等待减半,总时间是 8 s。

如果原来计算与访存可以重叠,就不能简单采用这组加法。实际机器中的停顿计数也可能重叠,分析前必须确定时间分解是否互斥。

进一步把 A 与 B 同时应用,只有在两种收益独立时才可估计为 6/2+4/2=56/2+4/2=5 s。新的计算速度可能改变访存并发程度,因此组合收益需要重新验证。

计数器与因果解释

硬件性能计数器能帮助观察周期、指令、缓存和分支事件,但事件定义、推测指令是否计入、复用采样和不同型号差异都影响结果。

发现缓存失效率下降并不足以证明它导致总时间下降。还要检查指令数、频率、线程调度和输入变化。合理实验固定其余条件,多次运行,并报告波动与测量方法。

综合练习

  1. 为数组求和设计标量、向量化和多线程三个实现方案,分别指出依赖、带宽和归约顺序的限制。浮点版本应说明允许的误差。
  2. 一个循环展开版本指令数减少但速度下降,提出可测量的解释:代码缓存、寄存器压力、分支行为或频率变化。
  3. 对“换更快 CPU”“增大缓存”“增加核心”“使用 GPU”四种方案,分别说明需要什么证据才能判断有益。

处理器执行能力、数据供应能力和可用并行性共同决定运行表现。性能模型的用途是指出应测什么以及瓶颈可能在哪里;最终结论仍要对应实际工作负载和测量条件。

上次更新: