多核计算:精准模拟评估多核芯片的性能
扫描二维码
随时随地手机看文章
过去的十几年,计算机芯片制造商一直通过给芯片添加更多的核以提高芯片的速度。现在大多制造商提供8核、10核甚至是12核的芯片。
但如果芯片继续按照以往的做法来提高,那么芯片很快就会需要数百甚至成千上万个核。当然,学术界和业界的研究人员对提高多核芯片的性能有各种各样的方法,但是他们的方法要想工作的好也得需要24核或48核的芯片,当核的数量更高时这就会带来很大的问题。而目前,也没有一个芯片制造商能提供充分的证据来证明他们在尝试芯片设计的革新。
如今,麻省理工学院专注于计算机功能结构的研究小组开发出了一个叫做“大黄蜂”( Hornet)的软件模拟器,相比于以往的种种方法,它可以更精确的模拟多核芯片的性能。他们利用“大黄蜂”分析了一种多核计算技术,并发现了一个其他模拟都没有注意到的致命瑕疵。
通过带有好几百个核的芯片的数据流是非常复杂的,以往的软件加速器一直是牺牲部分准确性而换来效率。对于更精确的模拟器来说,研究人员们通常使用可编程的芯片来模仿多核芯片的行为。各种各样的计算机任务是通过一个芯片的许多部件(靠一个任务时钟来同步)来执行的,在每一次“时钟周期”(clock cycle)里,每个部件执行一项任务。“大黄蜂”比以往的方法要慢很多,但是它能提供一个相当于1000核芯片的“周期精确”的模拟。李哲明(音译,Myong Hyon Cho)是该项目的开发者之一,他表示,“‘周期精确’意味着最终结果会精确到单个周期的水平,比如,该软件可以让这项任务进行1223392个周期直到完成。”
现有的模拟器擅长评估芯片的常规性能,但是它们可能会遗漏那些不常见的问题。而“大黄蜂”更可能把这些难发现的罕见问题侦查出来,它可以识别一种叫做“死锁”(deadlock)的问题的风险,但其他的模拟器都会把这些问题遗漏掉。所谓的“死锁”是这样的一种情况:许多核正在等待被其他核使用的资源(通信渠道或内存地址),但没有核会放弃这种资源直到它被允许使用它需要的那个,因此时钟周期会一直记录不到任何核做任何事情的信息。按照李哲明的说法,“大黄蜂”正是为了补充以往方法的不足,而非与它们竞争。
除了能识别“死锁”的风险,研究人员也提出了一种能避免“死锁”的方法,证明了“大黄蜂”在硬件系统上的优势:它可以轻松被重新配置以检验替代性的设计方案。爱德华·苏(Edward Suh)是康奈尔大学电力和计算机工程的副教授,他表示,构建运行在硬件上的模拟器“要比只编写软件棘手的多”,在“快速精准检验几种方案”方面,“大黄蜂”占有优势。并且,如果要发现一些异常行为,该软件无疑是非常有用的。
在第五届“芯片上的网络”国际研讨会上,该研究小组获得了“最佳论文”奖。研究人员将很快展示“大黄蜂”的新版本,新版本会考虑能量消耗的因素,也会将核与核之间的通信模式考虑在内,同时也会考虑个别任务的处理时间和内存访问的模式。