全可编程视角下的未来十年
- 来源:电子产品世界 smarty:if $article.tag?>
- 关键字:性能,芯片 smarty:/if?>
- 发布时间:2014-11-24 08:32
编者按:在“OpenHW2014开源硬件与嵌入式计算论坛”上,讲演者用轻松生动的语言,描绘了今后十年计算技术面临的挑战与迷茫,并探讨了解决方案。
未来的世界什么样?
三维重构音乐会
很多人喜欢“维也纳新年音乐会”。这两年的音乐会,现场有很多人拿着移动设备拍摄。未来十年,这些信息会传输到云端,它们能做的事情就太多了,例如,我们可以在云端重构一个三维的虚拟现场,你可以用你的鼠标在任意角度飞行,一直飞到演奏的小提琴手那去,去看它的视频。因为每个人都在从各个角度替你在观察这个人,所以一定可以做一个三维的东西,而且是实时的,使你看得比在场的人还清楚。而现场的人辛苦地举着摄像头,都是在为你服务的。
球场观众戴着Google眼镜
2020年,巨大的体育场里面坐满了观众,很多人戴着Google眼镜,每个人的眼睛都在看着球场,当然你可以三维重构球场,可是还进一步,观众希望通过Google眼镜看到正在跑动的运动员的更多信息,诸如他的力量值、体力值、经验、姓名,以及他刚刚射门,射门的总次数,这些都可以实时地在这个人的体像上进行叠加。
这就是今后十年业界准备做的事。我们的教学和科研就是为这一天的到来而准备的,而且一定要很快地到那个点去。那么这个点是什么呢?
关键的1ms
要想预测,我们一定要学哲学。哲学告诉我们,我们整天忙碌,就是为了给人类提供更好的服务。我们用电子信息手段可以提供什么服务?例如1秒钟(s)可敲击一次键盘;100ms可以听音乐;10ms可以看视频;如果是1ms,就是你的神经和力量的控制时间,比如你用手碰到电风扇,手会马上缩回来,这个反应速度是1ms。所以我们接下来要做的,就是能够在1ms时间内做很多事情。
举个简单的例子,如果我们通过网络的云计算在1ms之内做出决策,应用在我们的汽车上,汽车可以在没有红绿灯的情况下,用无线方式互相通讯,如果车快撞上,用1ms的时间刹车或马上加速,这就是无人驾驶汽车。如果有行人,由于行人有手机,手机会发出信号,汽车开过来时就会自动减速,让行人走过去。这是一个无损的理想应用,也就是所谓的未来的智能交通。
其实,这里面有一个很大的问题,汽车之间互相通讯用1ms的时间,我们肯定要用云端来控制,那么云是不是可以随便放的呢?假设汽车在上海,我是不是可以用在北京的云来得到智能服务?答案是不行。因为光一秒钟也就跑三十万公里,1ms光能跑300公里,还要考虑打个来回,即150公里,也就相当于上海到无锡的距离。所以在设计无线接入网的时候,云计算必须是一个分布式的云,应该到处都有,物理上应该是像基站一样普遍的云。
上述仅仅是光在路程上的时间。
其实计算的任务也很繁重,因为你要做嵌入式计算,要进行图像、视频等的处理,还要调制解调、加密、软件、可靠性,所以每个阶段只有零点几毫秒的预算了。因此业界的另一挑战是大量的数据要实时地在零点几毫秒内做完。
CPS(信息物理系统)
我本人不太喜欢物联网(IoT)这个词,因为它暗示只要把传感器像互联网一样连起来,收集数据,这事就结了。实际上你得到了一大堆数据是没用的,真正有用的是拿到数据之后,还要反馈回来做控制,所以我更喜欢CPS(Cyber Physical System)这个词,即信息物理系统,意思是要把物理系统能够与信息系统结合到一起,形成一个闭环,能够让信息系统影响物理系统。实际上我国说的信息化改造工业化也是这个意思。
摩尔定律难以解决性能和功耗问题为什么后十年我们做得到呢?来看看微电子业的摩尔定律。摩尔定律不停地发展,现在已经到20纳米,未来的路线图已到3.5纳米。摩尔定律要解决什么样的问题呢?就是漏电问题。像水管一样,一个开关如果关得不牢,就要漏水,如果一个晶体管设计得不好,它就会漏电。现在“水龙头”越做越薄,一定会有“漏水”现象,整个工业界正在做的就是如何把开关关紧。
现在用体硅和绝缘体上硅(SOI),还有FinFet(鳍式)、SOIFinFet,最后是全包围,来把电流夹断。目前Xilinx在20纳米节点,很快会推出14/16纳米芯片。摩尔定律在今后至少十年还是适用的,所以在器件方面,我们不用太着急。
但是摩尔定律每年指望它性能翻番遇到了严峻的挑战。不是说摩尔定律有了,跟着它每年就自动获得计算能力,这件事过去是这样的,但是最近行不通了。整个业界面临着两个挑战,一个叫性能,一个叫功耗。
现在一个芯片里面可以集成越来越多的晶体管,可是晶体管如果都工作起来,消耗的电流特别大,大到最后你如果按照这个曲线走的话,单位面积上的功耗会超过核电站的功耗,甚至是火箭、太阳表面的功耗,因此芯片会烧坏,这就是所谓的暗硅(DarkSilicon)。
所以一定要让硅片上的晶体管不能同时工作,那怎么办呢?答案是多核。多核不是说我想搞多核,而是不得已而为之。但是如果我还想得到非常高的运算能力——1ms要做很多很多运算,但是我又不能把所有的晶体管全开开,是不是就矛盾了,没办法解决了?那我们再另辟蹊径。
大脑的启示
一个好消息是晶体管现在已经不值钱了,也就是说既然一块芯片里一定会有晶体管不开,我们就一定要大大地放纵我们的设计空间,我们宁肯用一大堆冗余的计算单元提前摆在那,用其中一两个跑,其它一百个都不用,这件事是对的,因为你不得不这么做。这思路慢慢清晰了。有一种计算机实际上就是这么干的,就是人的大脑。人脑的皮层90%是没用的,只用其中一小部分。
我们再回过来看目前的情况,CPU很有意思,它一天到晚都没在干正事,都在弄流水线,最后干了一件事啥事?就是做了一个加法。也就是说百分之七八十的硅片都在为了满足这一个高速运行的累加器,给它喂饱,喂饱这个累加器有好多分支预测,什么乱七八糟的读Cache(高速缓存),就是为了搞高速运算的一个单CPU。这件事情很不合逻辑,我用了这么多硅片,折腾了这么半天,最后算成个加法!原来,当初冯.诺依曼设计计算机的时候,晶体管和ALU(算数逻辑单元)很贵,因此利用便宜的memory是很划算的。冯.诺依曼计算机就这么一路走过来,大家也跟着吭哧哼哧地推一步走一步,也不想创新,CPU不停地增加它的时钟频率,结果到今天再怎么做也难以翻番了。
所以有人提出,最好把这套东西全推掉,我全都弄上运算单元,这些运算单元可根据计算的任务随意组合,马上就能做运算,动态组合、动态植入,那么整个面积都是运算单元在做事。这件事情实际上就是我们人类大脑干的活儿。人类的大脑实际上是一个并行的计算机。前段时间,IBM刚发表一个消息,说是做了一个人工神经元的超级计算机,最核心的特点就是其神经元可以动态存储,也就是说不同的信息他训练两天之后,它就连接成一个可操作的部分,而且功耗特别低。
没有处理器,还要做计算
因此,我们要做什么事呢?
Computing without Processors(没有处理器,还要做计算),这就是我们今后十年或许能够应对挑战的法宝。也就是说我们能够通过硬件的可重组、可重构,能够在硬件层面重组出来正好适合计算的能力。我们不需要再为流水线、cache发愁了。Xilinx有个Vivado-HLS工具,可从C实现FPGA。你可先做一些低层次的东西,就是所谓的HLS,Vivado-HLS能把算法直接变成硬件实现,也就说你的计算单元已经没有CPU了,但又是高效的。如果你嫌烦的话,可以用碎片来做,然后就被大量地收集了,然后它做线上的工具。
假设Xilinx的Zynq处理器就是大脑,有一大堆单元,你什么都想干,但是嫌设计太麻烦了,ultrascale构架把你要用的东西准备好,CPU有了,加密引擎一大堆,你要一百个,还是一万个加密引擎都行,还有浮点运算单元,你想要什么图形引擎(GPU),我给你放上三万个GPU进去,你再用可编程的逻辑把它们连到一起,满足你的需求。这个方案功耗既低,速度又快,还全是硬的东西,为什么?因为晶体管太便宜了,而且我做了一大堆,功能全放那儿,你想用哪一个都行,这就是Xilinx在做的。
当然在这上面,编程就是一项挑战了。异构计算一定是今后我们要掌握的,这样才能够为后面的事做准备。异构计算,Xilinx首推的是用OpenCL来做,因为它一次编程,你可以在PC机上跑,也可以再把它编程,也可以在CUP上跑,在任何地方跑,而且数量不限。其核心思想就是异构计算,它不是一个fancy(幻想)、要跟踪潮流的东西,而是我们如果不应用它,大家认为很难持续。Xilinx的Zynq目前是双核的,可能下一代还有更多核,有一万个加密单元,都是硬核的,让你在里面动态组合。
对大数据来讲,应该让分布式的存储用起来和RAM一样是随机地存储,也就是数据库我们一定要做得跟RAM一样。怎么做?如果还按照筛选,我要在1ms内把一大堆数据放到一起筛选,一个方法就是在它的所谓的控制器里再加上过滤逻辑,这样,我读写数据的时候,就可以把我的智能放进去,在网络上用传统的数据就可以实现你的功能。
小结
异构、多核、一大堆晶体管,在1ms内要完成大量计算,这是今后十年业界要面对的事。
这听起来很困难,似乎要很多的知识,什么硬件、软件知识,大家很发怵,认为跟踪该技术太艰难了。其实不难,我自己十多年没写Code,我专门试一下,我利用在火车、飞机上的时间看一看Zynq和Vivado的书和文档,后来做了实验,也差不多会做了。现在我们的课程,在中山大学珠海分校,用五天的时间教大学本科三年级的学生,让他们能够在短时间内掌握Zynq。实际上,Zynq和Vivado没什么了不起,只是工具而已。
因此,虽然挑战很大,今后会有革命性的变化。不过,一旦有新的开始,下决心去试、去做,也没什么难的。(本文根据谢凯年在”OpenHW2014开源硬件与嵌入式计算论坛“录音编写)
谢凯年博士 Xilinx大学计划部中国区经理(上海200021)
