多核时代的阿姆达尔定律
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
64 128 256
加速比
150
100
50
16
0
(d)
2 4 8 16 32 64 128 256 r BCEs
250 动态多核,n = 256
200
加速比
150
100
50
16 (f) 0
2 4 8 16 32 64 128 256 r BCEs
图2 (a)(b)对称多核芯片加速比;(c)(d)非对称多核芯片加速比;(e)(f)动态多 核芯片加速比。其中(a)(c)(e)中n=16个BCE,(b)(d)(f)中n=256个BCE。
75
16 对称多核, n = 16
250 对称多核, n = 256
译文
第 5 卷 第 7 期 2009 年 7 月
16 对称多核, n = 16 14
12
加速比
10
8
6
4
2 (a) 0
16 14
2
4
8
r BCEs
非对称多核,n = 16
12
加速比
10
8
6
4
2 (c) 0
2
4
8
r BCEs
16 动态多核,n = 16
结果1 阿姆达尔定律适用于多核芯片,因 为要达到最佳的加速比要求f接近1。所以,关 键仍然在于找到并行性。
含义1 应该专注研究如何通过体系结构的 支持、编译器技术和编程模型的改进等增加f。
这个含义是最明显和最重要的。但是只有 一个系统的加速比超过它的成本比才具有成本 效益[4]。多核的成本比是指多核系统的成本除 以单核系统的成本。成本比通常远小于n, 成 本比要小于n时系统才有可能具有成本效益。
含义3 由于摩尔定理导致多核芯片规模日 益扩大,应该研究设计更强大内核的方法。
非对称多核芯片
一种替代对称多核芯片的结构是非对称
(异构)多核芯片。在这种结构中,一个或者 多个内核比其它的内核功能要强大一些[5~8]。如
图1c所示,根据阿姆达尔定理的简单化假设,
用额外的资源专门增强一个单核的能力会最为
有益。
类似地,图2b表示当摩尔定理允许每片芯 片上可集成n=256个BCE时,如何改变取舍。 例如,在芯片配置成36核,每个内核内置7.1个 BCE时,f = 0.975对应的加速比曲线达到最大 值51.2。
(a)
(b)
(c)
图1 多核芯片的不同种类: (a) 内置16个单BCE内核的对称多核芯片;(b) 内置4个四BCE 内核的对称多核芯片;(c)内置1个四BCE内核和12个单BCE内核的非对称多核芯片。在图 中,省略了一些重要结构,例如存储接口、共享缓存以及互连等。另外还假设面积是芯片的限 制资源,而功耗不是。
结果4 非对称多核芯片可以提供比对称多 核芯片大得多的加速比(而且从不小于对称多 核芯片)。例如,当f=0.975,n=256时,非对 称多核芯片的最大加速比是125.0,而对称多核 芯片的最大加速比仅为51.2。
含义4 应该继续深入研究非对称多核芯 片,包括应对阿姆达尔模式没有涉及的调度和 开销问题。
我们还不知道芯片从哪些方面制约这n个 BCE,可能是功耗、面积、面积和功耗的某种 组合以及其它因素。
其次,假设(微)体系结构的架构师们有 办法运用多个BCE的资源,组成一个更高串行 性能的单内核。令单个BCE内核的性能为1, 假设架构师们可以运用r个BCE内核创建一个串 行性能为perf(r)的强力内核。
结果2 当在每个内核中使用较多的BCE (r>1)时,即使性能只能pe增rf (强r)到= r ,仍然存 在最优解。对于给定的f, 加速比的最大值对 应的配置可能是内置所有n个基本核的一个大 内核,也可能是数个适中规模的内核。如上面 例子中,在n=256, f = 0.975的条件下,加速 比的最大值对应的配置是每个内核内置7.1个 BCE。
含义2 应该研究增强每个核的性能的方 法,即使代价较高。
76
第 5 卷 第 7 期 2009 年 7 月
结果3 芯片的密度越高,最优内核不是最 小内核的可能性就越高。即使在f=0.99的情况 下,当芯片规模n=16时,最小内核带来最优的 加速比;但当芯片规模n=256时,更强大的内 核有助于提高加速比。
结果5 提高多核芯片密度既可以增加非对 称多核芯片带来的加速比提升,也可以提高单个 较大内核的最佳性能。举个未在本文图中描述的 例子,当f=0.975,n=1024时,把假象中的设计中 较大内核配置成内核345个BCE,其它679个BCE 构成单BCE内核,可以达到最优的加速比。
含义5 即使从局部看提高串行性能似乎不 够有效,例如 perf (r) = r ,但仍旧应该寻求 提高串行性能的方法。这是因为这些方法可以 缩短串行运行阶段(在串行阶段其余n-r个核 是闲置的),从而在整体上是有效的。
译文
第 5 卷 第 7 期 2009 年 7 月
多核时代的阿姆达尔定律*
关键词:多核 阿姆达尔定律
作者 马克·D·希尔 迈克尔·R·马蒂 译者 祝永新
进入多核时代后,我们处在计算机世界 的一个拐点。计算设备供应商已经发布了内置 多个处理器内核的芯片。另外在供应商们的产 品路线图中,承诺将持续地成倍增加处理器内 核的数量。这些未来芯片分别被称为片上多 处理器(Chip Multiprocessors)、多核处理器 (Multicore Chips)和众核处理器(Many-Core Chips)。
正如本文下面的附录文本框《阿姆达尔定 理(Amdahl's Law)》所示,本文的模型在多 核时代具有重要影响。为了补充阿姆达尔定 理的软件模型,本文提出一个基于多核硬件 资源的简单模型的推论。根据结果,我们建 议多核芯片的设计人员应该着眼于整个芯片 的性能,而不是只关注核的效率。为了激励
相关讨论和后续工作,我们还讨论了这个模型 的主要局限性。
速比。如图所示,越多利用BCE资源来改进软件 的串行部分,则总是达到越高的性能。但要考虑 到实际的情况,通常r都远小于允许的最大值n。
尽力追求简单,但还没有变 得更简单
Ѩ㺂⁗ᕅ
ᒬ㺂⁗ᕅ
图3 内置16个BCE内核的动态多核芯片
结果6 给定同样的性能函数perf(r), 动态多核芯片能够达到比非对称多核芯片更高 (从来不小于)的加速比。但根据阿姆达尔有 关串行和并行的假设,达到比非对称多核芯片 更高的加速比需要某种比目前能够实现的技术 更高的动态技术,将更多的内核用来进行串行 运算。例如,当f=0.99,n=256时,有效地动 态运用所有256个内核可以达到223的加速比, 显著地高于对应的非对称多核芯片的加速比 165。这个结果只有假设这些动态芯片可以整 合所有资源进行串行计算,然后又可以释放它 们进行并行运算时才能实现。
对称多核芯片
在一片对称多核芯片中,所有内核的代价 是相同的。举例来说,如果一片对称多核芯片 的资源预算是n= 16个BCE, 则该芯片可支持16 个内核,每个内核内置一个BCE;该芯片也可 支持4个内核,每个内核内置4个BCE;该芯片 还支持更一般的情况:n/r个内核,每个内核内 置r个BCE(在方程式和图表中,内核的数 量是连续逼近的近似值而不是四舍五入的整 数值)。
14
12
加速比
10
8
6
4
2 (e) 0
2
4
8
r BCEs
加速比
250 对称多核, n = 256 200 150 100 50
f = 0.999 f = 0.99 f = 0.975 f = 0.9 f = 0.5
16
0
(b)
2 4 8 16 32 r BCEs
250 非对称多核,n = 256
200
动态多核芯片
如果架构师能自由切分“蛋糕”会如何
呢?如图3所示,考虑动态地整合r个内核来提
高串行部分的性能。这种方法是可能实现的, 例如采用线程级投机或者辅助线程[9~12]。在串
行模式下,这种动态多核芯片可以通过这些动
态技术利用r个BCE达到性能perf(r)。在并
行模式下,动态多核芯片可以利用所有的基本
举例来说,给定资源预算n=16个BCE,
一个非对称多核芯片可以配置成一个内置4个
BCE的内核加上12个内置1个BCE的内核;也可
以配置成一个内置9个BCE的内核加上7个内置
1个BCE的内核;以及其它诸如此类的配置。
通常来说,由于一个较大的内核需要资源数
r,剩下的资源数量n-r可全部配置成单BCE内
核,所以可在这个芯片中配置数量为1+n-r的
相对单核设计而言,在设计多核芯片时, 设计者必须应对更多的自由度。他们必须回答 这些问题:需要多少个内核?内核采用简单的 流水线还是多发的流水线设计?不同的内核采 用相同的还是不同的微体系结构?除此之外, 设计者还必须并发地管理静态和动态功耗。
尽管目前在2~8核的多核处理器设计过程 中回答这些问题已具有挑战性;但是在未来的 芯片设计过程中,回答这些问题会变得更加艰 巨。各方面如英特尔公司、加州大学伯克利分 校等纷纷预测,未来芯片中即使没有1000个核 [2]也可能有100个核[1]。
n/r个内核进行并行计算,从而达到的性能为 perf (r) × n / r 。最终得到:
Speedupsymmetric ( f , n, r) = 1− f
1 +
f ⋅r
perf (r) perf (r) ⋅ n
在图2a中,假设这片对称多核芯片具备的 资源为n = 16个BCE,使用一个内核进行串行 计算的性能是 perf (r) = r 。x轴表示用来增强 每个内核性能的资源数量:x轴上的数值r=1 表示整个芯片有16个内核,r=16表示所以资 源都被整合成1个内核。图中不同的曲线对应 不同的可并行部分所占比例(f = 0.5, 0.9, …, 0.999)。y轴表示对称多核芯片相对于一个单 BCE基本核运行时间的加速比。例如, f = 0.9 所对应的加速比曲线在内核数为8,每个内核 使用2个BCE时达到最大加速比6.7。
图1a和1b分别描述两个n=16时的假想对称 多核芯片结构。
根据阿姆达尔定律,对称多核芯片的加速
比(相对于使用一个内置单BCE的内核)取决
于可并行软件部分f,以BCE个数为单位的芯
片总资源n和用于提高每个内核性能的以BCE
个数为单位的资源数量r。该芯片使用一个内
核进行串行计算的性能是perf(r)。总共使用
核来达到性能n。 概况地说,得到:
Speedupdynamic ( f , n, r) =
1 1− f + f
perf (r) n
图2e中描述了n=16时, 串行模式下资源 数量r产生性能 perf (r) = r 条件下的动态加速 比。图2f中描述了n=256时,相同条件下的加
77
译文
第 5 卷 第 7 期 2009 年 7 月
wk.baidu.com
内核。
阿姆达尔定律对非对称多核芯片有着不同
的影响。这种芯片中,一个较大内核的性能为
perf(r)。但并行的部分性能来源于这个较
大内核的perf(r)加上n-r个基本内核。整体
上,得到:
Speedupasymmetric ( f , n, r) = 1− f
1 +
f
perf (r) perf (r) + n − r
一个关于多核芯片代价的推论
为了把阿姆达尔定理应用到多核芯片,需 要一个关于芯片可以支持的内核数量和性能的 代价模型。
首先假设在给定尺寸和制造技术年代下, 一片多核芯片最多内置n个BCE(Base Core Equivalent,等价基本核)。每个BCE实现一个 基本内核。这个上限取决于设计者在每个内核 (包括一级缓存)中规划资源的规模。这不包 括芯片中用于共享缓存、互连网络和内存控制 器等的片上资源。换句话说,就是简单地假设 这些非内核资源在各种多核处理器配置中基本 保持不变。
当perf(r)>r 时,架构师们应该增加内 核资源。这样做可以同时加速串行和并行执
* 译自2008年7月IEEE Computer, Amdahl’s Law in the Multicore Era一文
74
第 5 卷 第 7 期 2009 年 7 月
行。但当perf(r)<r 时,架构师们需要开始 权衡:增强单核的性能可以改进串行的运行, 却不利于并行执行。
在方程式中,perf(r)可以是任意函数。 在本文的各图中,则根据谢卡·博卡(Shekhar Borkar)[3]的假定设 perf (r) = r 。换句话说, 假设将r个BCE的资源整合在一起可以达到串行 perf (性r)能= r 。这样,用4个BCE的代价达到双倍性 能,用9个BCE的代价达到三倍性能。我们还 尝试运用类似的函数(例如r2/3),但发现对结 果没有多少影响。
图2c中描述了n=16个BCE的非对称多核芯 片的加速比曲线,图2d中描述了n=256个BCE的 非对称多核芯片的加速比曲线。这些曲线与图2a 和图2b所示的对称多核芯片的加速比曲线明显不 同。随着较大内核数量增加,对称多核芯片性能
通常会获得迅速提升或下降。相反,非对称多核 芯片的最大加速比则居于两个极端之间。