Intel的万亿次计算研究项目已经在处理器核心拓展问题上取得了丰硕成果,还先后完成了80核心、48核心(单芯片云计算机/SCC)两种试验芯片,而且号称能够扩充至不可思议的1000个核心。近日,Intel微处理器技术试验室首席工程师Timothy Mattson又接受了媒体采访,深入讲解了这种技术的可行性。
问:如何才能做出1000核心的处理器?
答:挑战在于,如果我们的晶圆厂能够造出一颗1000核心的芯片,我们现在是否有能够扩展到那种程度的架构呢?如果造出来,能否有效地为之编程?
48核心芯片的架构的确能够满足这些条件,这么说是因为我们没有缓存一致性的约束。信息传递最差也能按照网络的直径拓展,后者大约相当于网络节点数量的平方根。我有信心将SCC的架构扩展到1000个核心。
编程方面的回答也是肯定的:做为单芯片集群使用信息传递API。它能否广为接受呢?核心间的缓存非一致性能否与 信息传递合作,让普通程序员认可呢?如果答案也是肯定的,我们就有了通往1000核心的阳光大道。当然这也会带来一系列更严峻的问题,最关键的就是应用模 型和应用程序是否能够用到如此大规模的核心。我们正在合作致力于解决这些问题。
就我看来,自己的工作是在晶圆厂的能力所及范围内尽量走得更远,同时创造一个能够有效发挥这些技术优势的编程环境。至于到底使用多少个核心、怎么组合,就交给应用研究和产品事业部吧。我的任务就是跑在前边。
问:应用程序使用的最大核心数量是否存在某种瓶颈?比如100个,或者400个?
答:理论上能使用的核心数量没有限制。问题要复杂得多,第一得看应用程序的并行规模,第二取决于程序引起的和负载失衡程度。我们称之为阿姆达尔定律(Amdahl's Law)。
这条定律告诉我们,一个程序可以分成能够随着核心数量加速的部分和不能加速的部分,也就是并行和串行部分。如果以S代表串行部分, 通过简单的数学计算就能证明最大加速程度就是1/S,而且与核心数量无关。所以说,核心数量的利用规模还得看应用程序,以及它在多大程度上可以并行执行。
事实证明,将S做到1%以下是非常困难的,对于图形这种大规模并行操作来说还好,但是更复杂的应用就让人头疼了。
问:Intel是否真的想做一颗1000核心处理器呢?
答:这取决于能否找到支持它的应用程序、需要它的应用模型、能够接受它的市场。我们横在努力寻找确实需要那么多核心的大量应用。举个例子,如果向计算机输入自然语言和姿势等视觉线索,合成复杂3D模型并以视觉形式将结果呈现出来,就很容易消耗掉1000个核心。
从技术角度讲,1000个核心也很容易利用,不过关键在于产品策略和市场需求。就像我说过的那样,在我工作的研究世界里,我的工作就是走在时代之前,让我们的产品事业部将最好的产品推向市场,并针对消费者的实际使用需求进行优化。
问:是怎么想到1000核心这个主意的呢?
答:我是在研究摩尔定律的过程中想到1000这个数字的。如果每一代进化需要两年时间,集成度都翻一番,那么从48核心往后四到五代,就到了1000。所以说,这其实就是个我们的工厂能够在多长的时间内继续跟上摩尔定律的问题。如果说我在Intel工作这17年学到了什么的话,那就是永远不要小瞧我们的工厂。
问:Intel的产品路线图上为什么没有48核心处理器?
答:我需要澄清这种芯片的开发团队的角色。我们的工作是推动创新,回答“可能会发生什么”这一问题。这是一项全职工作。产品路线图要综合我们有关这一问题的答案,然后解答“市场需要什么?”同样是一份全职工作。
Intel产品路线图反映的是产品事业部同事对未来市场需求的解读。他们可能需要48核心处理器,也可能不需要。这个我不清楚。
网友评论