我的计算机体系结构课程的前一次考试我得到了错误的答案,我怎么能算出最好的加速? 我理解,如果不确定论坛是如何加速mucha程序的限制(他的问题是b部分)。任何帮助都会受到赞扬,非常感谢!
- 醇>
(6分)为了加速应用程序,提出了两个具有以下加速比的增强功能:
加速 1 = 25
加速 2 = 15增强1可用于40%的指令,增强2可用于30%的指令。两个增强功能不重叠。
a)如果应用了两种增强功能,那么加速是多少?
b)如果你不断改进这两项改进,你能达到的最佳加速是什么?
答案 0 :(得分:0)
不要试图记住公式,而是使用常识。想象一下,加速代码的两个部分都可以加速无限:也就是说,根本不需要时间。会留下什么?需要多长时间?
答案 1 :(得分:0)
让t
为总运行时间,然后:
(a)既然你没有要求这一部分,我将为未来的读者提供一个完整的解决方案。
t' = modified run time = 0.4t / 25 + 0.3t / 15 + 0.3t = 0.336t
,
因此,speedup = t/t' = t / 0.336t ~= 2.97
(b)问题要求继续推进这些加速,所以你不能改进整个计划。然后,根据 amdahl's law ,您可以获得的最佳加速速度受到顺序,不可改进的部分的限制。 Amdahl定律表示最高加速时间 1/SEQUENTIAL_PART
您的案例中的连续部分是什么?确保你理解为什么。
amdahl定律的概念是,假设你可以将改进的部分加速到无限加速,总的加速仍将受到未改进部分的限制。