万亿次计算:有效利用多内核是关键

时间:2022-08-12 01:57:15

万亿次计算:有效利用多内核是关键

业界对多核给计算性能带来的巨大提高寄予了厚望。尽管晶体管密度的提高必然带来芯片可分配资源的增加,但究竟怎样充分利用这些资源,业界并没有很一致和清晰的远景,对于多核推进途中面临的困难和挑战也没有充分的认识。目前,英特尔公司CTO Justin Rattner在博客上发表文章,表达了对万亿次和多核计算应用前景的看法。

作者简介

Justin Rattner

英特尔公司资深院士兼首席技术官(CTO)。目前主要负责微处理器、通信和系统技术实验室以及英特尔公司与研究相关的领导工作。

最近,英特尔的80内核具有万亿级浮点运算能力的可编程处理器引起了全世界媒体的热烈关注,不仅是技术类媒体,就连大众媒体也广泛报道了这个消息。这有点出乎我的意料。我从多次接受媒体采访中可以清楚地体会到: 公众迫切期待了解未来计算设备的发展形态,以及他们将在何时用上这一全新技术。

英特尔等公司的研究人员多年来一直在思考这一类问题。他们在实验室里开发出研究用原型芯片,切实构建出了十年后才会产生的用户体验。在此,我会举出一些相关实例,以说明万亿级计算的神奇魅力。

识别、挖掘和合成

我曾在另外一篇文章中解释了为什么万亿级计算的出现正合时宜,文章介绍了数据识别(Recognition)、挖掘(Mining)和合成(Synthesis)三大处理能力(合称RMS)。下面我以实时运动捕捉技术等实例,来阐明RMS这一新理念。

利用当前的双路机架式服务器制作一张“皮克斯”图像需要计算大约6个小时,而这只是一个正常片长的动画影片所需的14万4千帧图像中的一帧。假如可以在台式机中实时制作同等品质的图像,这将是多么激动人心!为了实现这一用户体验,我们必须将每帧图像的计算时间由6个小时缩减至1/124秒,这要求计算机在性能方面大幅度提高,同时也要求万亿级浮点运算能力与显著改进图像制作的算法相结合。这就是RMS中的S所指的“合成”。

另一个例子是数据挖掘。在最新的实验中,我们可对用多摄像头同步监控的人体移动图像进行三维空间的数据挖掘。这一针对视频流的数据挖掘过程,旨在记录精确的全身运动。虽然我们目前对此还无法进行实时操作,但可以说已经相当接近这一水平了――我们不需要在人物衣服或蓝色背景屏幕上做标志(或发光点)即可完成任务。这就是RMS中的M所指的“挖掘”。

一旦我们获得了身体运动信息,就可将其用于模拟人体骨骼模型。有了这种骨骼模型,动画动作将有可能基于运动学规律与真人运动高度逼真。到那时,我们还可以“在骨骼上加一层皮肤”,以创造出一个与真人一模一样的全合成人体动作,然后再对这个小小的虚拟世界加上灯光、阴影和倒影等效果,从而创造出一个逼真而且精确运动的合成图像。

通过以上技术,替换掉你正在使用的Wii手持控制器也并非妄想。我们将看到:未来的视频娱乐可以通过“全身动作捕捉技术”,把用户的虚拟影像也嵌入到游戏、舞蹈指导或太极课程这样的视频中。

摒除噪点和抖动

大多数人都有VHS(或品质更差)的家用视频。当我们在最新的50英寸高清显示屏上播放这些视频时,效果简直无法接受。如果使用手机上附加的摄像头,视频效果更加糟糕。

一种新技术的问世可以解决这些问题。这种称为“超分辨率”的新技术,可有效利用视频流中的大量冗余。从而,我们可以通过数字技术显著减少相机抖动的影响,提高分辨率,并通过挖掘每帧图像的其他信息修复各种影像问题。这就必然会用到万亿级计算。间谍卫星已采用这一技术多年了,现在正是使之普及到千家万户的最好时机。

如何有效利用万亿级计算功能?

Silent E曾一针见血地指出: 开发万亿级计算的功能,内存和带宽必须相互匹配,否则内核将闲置,用户难以真正受益。通过单个芯片提供大量处理能力相对比较容易,而通过解决内存和I/O带宽问题使80内核处理器高效工作则要困难得多。庆幸的是,我们已经有了满足未来需求的多种解决方案,在此略举一二。

首先,更多内存要更靠近处理器,针对不同带宽和内存容量共有三种解决方式。第一种采用系统封装(SIP)技术,将内存芯片统一封装作为处理器,微软公司在Xbox 360中使用了这一技术; 第二种方式将内存芯片堆栈在处理器下方,我们计划在下一步的实验中将此技术用于万亿级计算研究用芯片;第三种方式将DRAM内嵌在处理器上,即IBM在2007年国际固态电路年会(ISSCC)上所提及的方式。哪种方式是最佳解决方案,尚需更多研究,但解决方案肯定不止一种。

芯片上内核之间高带宽的数据传输也是一个挑战。在我们持续提高电子信号速度的同时,光信号也日益成为令人瞩目的焦点。使用光信号的成本正在不断下降,而到我们实现硅光子解决方案时,这个成本还可以进一步降低。那时,如果我们能使硅光子解决方案的成本接近电子信号的成本,并同时提高光信号的灵活性和互动性,我们将毫无疑问地首选硅光子解决方案。一旦这一转型成功实现,每个光纤每秒传输10万亿级数据将指日可待。

多核将彻底革新用户应用模式

我们将如何利用这些数量不断增加的内核?答案显然主要在于服务器。当所有的内核均配备了必要且适当的内存及I/O带宽时,更多的内核及线程就意味着单位时间内能够实现更多的计算处理。

从客户端来看,充裕的内核很可能带来截然不同的资源分配方式。利用过去几十年里的单核,或现行的双核或四核处理器,也可巧妙地同步处理多重任务或多线程,优化操作系统,从而管理好有限的处理器资源。但用户对服务质量越来越关注: 当视频全速播放时,如果视频流出现帧丢失或应用程序突然出现问题时,必然影响用户的满意度。于是一种全新但尚未引起研究界足够重视的设计理念产生了――这种理念着眼于赋予内核特殊的功能设计。

例如,我们可以这样考虑一个配有36个内核处理器的多功能计算装备:其中4个内核用于运行核心计算及协同应用;另一组的12个内核用以实现高质量的制图及可视化功能; 而媒体处理,除了以专门硬件处理的编码及解码外,则由另外一组6个内核完成。剩余的内核用于对来自于互联网的各种数据流进行实时数据挖掘,分别负责搜集新闻、购物或投资资讯等。这种理念的关键,在于以丰富的硬件资源代替大量复杂的操作系统代码,它虽然对内核资源进行分配,但是在工作量明显变化之前,不会对我们正在进行的工作任务有任何影响。

我们可以想像由几组内核共同支持一个先进的人机界面,可以进行实时演讲、视频或语言翻译。算法的发展也会帮助把这种设想变为现实。我们知道这些都需要充分的硬件资源来运行。即将成为未来认知系统核心的统计算法,也是具有显著的并行运算特性,非常适用于多内核的处理器架构。

充裕的内核同时为在设备故障或空间辐射时解决系统操作方面的问题提供新的解决办法。我们可将这些内核组看做是计算引擎的冗余阵列(RACE)。两个或更多的内核前后排列使用,可同时检测错误并进行纠正。如果某个内核变得不可靠,它可以被轻易地剔除,从而不会对整个系统性能产生重大影响。

当我们把越来越多的计算资源压缩放到更小的空间中时,用高精度的方式来管理耗电及散热问题就变得尤为重要。若我们有更多的内核(多于实际所需的内核)来执行一定的工作量,那么,一旦某个内核过热,我们就可以交换线程。这个过程就像我们玩烫手山芋的游戏――尽可能迅速地转移山芋,以防止自己被烫伤。我们要能精妙地调整单个内核的供应电压、工作频率以及休眠状态。

尽管开发这些硬件及软件并将其完全应用于未来的万亿级平台有些令人难以置信,然而让用户掌握这些计算能力所带来的好处和机遇,也同样是令人惊异的。超越80内核本身,我们将看到一个全新的计算时代!

上一篇:从闪盘安装Vista 下一篇:数据迁移创零距离