0

这是作业。计算机体系结构:加速

问题: 一个程序有20%的内存访问,50%的乘法,其余的与其他功能无关。如果要求整体加速比为1.2,那么两个内存访问都需要加速多少,如果两者都得到同样改善,则需要多少加速。

我想我知道如何做到这一点,如果我正在寻找使用阿姆达尔定律的加速或其他方法,但我不知道如何解决这个问题,以找到每个加速,如果他们得到改善一样。

如果它只是在寻找内存访问,我想我会解决x的公式如下:

1.2 = 1/[(1 - 0.2) + 0.2/x] 

是将两个百分比在Amdahl定律相结合,并使用0.2 + 0.5 = 0.7的关键?

+3

“这是作业。”恭喜! – JakeGould

+0

是的,由于这两个组件的改进相同,因此可以将它们的贡献分数相加,将它们视为单个组件。 –

回答

1

假设当前执行时间为100秒。

所需的加速比为6/5,这意味着旧时间的新时间应该是5/6,减少16.67%或16.67秒。 (这就是所有Amdahl的定律!)

你知道20秒用于存储器访问,50秒用于乘法,30秒用于其他东西。

“如果两者同等改善”这个问题含糊不清。 这是否意味着两者减少相同的绝对数量,这将是每个16.67的一半, 或者这是否意味着它们按比例减少,16.77秒来自记忆的2/7和5/7来自乘法?

你从那里拿它!当学者们谈论性能调整时,他们往往会记住一点点的内存访问和数学运算,而大O就是它的全部内容。 真实世界的性能调整是非常不同的。 这是关于如何在多次迭代中找出软件过度设计和使用性能诊断(如分析,但更好)来找出脂肪在何处并将其切除。 Example.