【问题标题】:What is the total speedup?总加速是多少?
【发布时间】:2015-05-22 17:16:01
【问题描述】:

这不是家庭作业。我正在利用自己的时间参加计算机体系结构 MOOC。有一个问题我无法弄清楚,也许有人可以帮助我。 这里是:

内存操作目前占用 30% 的执行时间。

  • 称为“缓存”的新小部件将 80% 的内存操作速度提高了 4 倍。
  • 称为“L2 缓存”的第二个新 widger 将剩余 20% 的 1/2 速度提高了 2 倍。

总加速比是多少?

这是用于计算加速比的公式:

加速 = 1 / [(1 - 非加速部分) + (加速部分 1)/speedup1 + (加速部分 2)/speedup2 + ...]

我是这样计算的:

Speedup = 1 / [0.7 + 0.3*0.8/4 + 0.3*0.2*0.5/2 + 0.3*0.2*0.5] = 1.2422

但答案是错误的,这表明我的推理是错误的,但我不知道哪里错了。有人可以帮帮我吗?

谢谢。

【问题讨论】:

  • 我的猜测是,相对于未优化的新运行时是通过以下方式计算的:0.8 * 0.25 + 0.2 * 0.5 = 0.3 所以你的代码以原始时间的 30% 运行。
  • @BitTickler 你能详细说明一下吗,我不太清楚你想说什么。
  • 对于未优化的代码,我的模型公式将为 1.0(100% 的代码)* 1.0(100% 的速度)。将其拆分为 80/20 如下所示:0.8 * 1.0 + 0.2 * 1.0 = 1.0。现在你只需要 0.8 部分的 1/4 和 0.2 部分的 1/2 时间,你就得到了我上面的公式。
  • @BitTickler 我已经尝试过这种方法。它告诉我这是一个错误的答案。
  • 根据您发布的答案,我已投票决定将此作为离题关闭,因为它无法复制或者是错字。 (在这种情况下,只是小数位数过多导致的错误。)

标签: performance computer-architecture


【解决方案1】:

所以事实证明我的第一个答案是正确的。碰巧答案必须是小数点后两位。即它会将 1.2422 视为错误答案,但将 1.24 视为正确答案。很抱歉给大家带来了困惑,感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    相关资源
    最近更新 更多