如何计算执行时间(加速比)

hyp*_*kcb 8 math performance cpu-architecture

当我试图计算加速时,我陷入了困境。所以给出的问题是:


问题1

如果程序的 50% 增强了 2 倍,其余 50% 增强了 4 倍,那么增强带来的整体加速是多少?提示:假设增强前(未增强)机器中程序的执行时间为T,然后求增强后的总执行时间T'。加速比是T/T'。


我唯一知道的是加速比=增强前的执行时间/增强后的执行时间。那么我可以假设答案是:

加速比 = T/((50/100x1/2) + (50/100x1/4))

增强后的总执行时间 = T + 加速比

(50/100x1/2) 因为 50% 增强了 2 倍,4 倍也是如此。


问题2

让我们假设一下,通过处理器设计中的某种改进/增强,可以使程序 (2/3)rd 的执行速度无限快。那么与未增强的(原始)机器相比,增强的处理器运行速度会快多少倍?

我可以假设它比 100/(2/3) = 150 快 150 倍吗

有任何想法吗?提前致谢。

Nic*_*ler 7

我们从问题1开始。

总时间为两半时间之和:

T = T1 + T2
Run Code Online (Sandbox Code Playgroud)

然后,T1增强两倍。T2提高了 4 倍:

T' = T1' + T2'
   = T1 / 2 + T2 / 4
Run Code Online (Sandbox Code Playgroud)

我们知道 和T1都是T2的 50% T。所以:

T' = 0.5 * T / 2 + 0.5 * T / 4
   = 1/4 * T + 1/8 * T
   = 3/8 * T
Run Code Online (Sandbox Code Playgroud)

加速比为

T / T' = T / (3/8 T) = 8/3
Run Code Online (Sandbox Code Playgroud)

问题二可以类似地解决:

T' = T1' + T2'
Run Code Online (Sandbox Code Playgroud)

T1'减少到 0。T2是 的剩余 1/3 T

T' = 1/3 T
Run Code Online (Sandbox Code Playgroud)

加速比为

T / T' = 3
Run Code Online (Sandbox Code Playgroud)

因此,该程序的速度是以前的三倍(或快两倍)。