Mike Houston AMD:异构计算 开启未来计算时代

2012年,久享盛名的SD2.0大会全新升级为SDCC(中国软件开发者大会)!2012年被业界称为平台征战元年。在移动、云计算、物联网的大趋势下,整个信息服务产业正在面临重组洗牌,如何通过开放协作、构建和加入生态系统,加强竞争力,成为业界焦点。基于此,2012年SDCC聚焦开放平台,解析各种平台技术,分享生态系统构建之道。同时,大会邀请知名产品负责人、大型互联网架构师以及企业一线资深工程师,就本年度主流技术、产品、应用实践等热点议题进行深入分享。Mike Houston AMD院士发表主题演讲。

Mike Houston AMD院士表示,在现在这个时代当中,以前是单核时代,我们在每个处理当中都可以有提高的,但是这个时代复杂能力不够,所以之后我们就进入了多核时代。多核时代不是一个单核,它的时钟频率有一个增长极限,但是多核之后现在最多可以达到十六核处理。但是之后,我们在这个时代也遇到了一些其他问题,比如说能耗的问题,因为这个上面进行软件开发也比较困难,我们在扩展性上也遇到了瓶颈,我们没有办法在这个上面进行更多更强的软件开发。那么我们今后的路子到底是什么?

因为每一类计算机都有不同的处理器,不管是CPU还是其他的处理器结构,如果我们要看一下现在的状况,比如说图象处理、音频处理、大数据处理等等所有这些需要并行性处理,比如说JPU这样的处理器可以带来更好的表现性能,同时能耗也是更低的,所以从我们角度来看这是非常困难的问题,尤其对现在的编程人员来说,我一会儿会给大家提供这样的例子。

我们现在看一下软件,从单核角度来看,当然它有自己的一些局限性,这些软件规模非常小,所以我们看一下这个对于软件开发者来说,如果他们有很好的系统,到底怎么样的变成能编出更好的软件。如果在多核时代的话,我们提供的平台更多更宽广。比如说英特尔给我们的平台都是让各位软件编程者有更好的开发平台,从JPU角度来看会给我们编程编码上带来很多益处。但是这其实也是多核给我们带来的软件平台,提供了各种各样编程的能力,今天我们可以想象一下我们其他的软件还有硬件都是可以实现,不管是英特尔还是AMD。这样的系统当中,都是建立在多核的基础上进行下来的。我们现在到底在什么样的状态,其实每一个设备都有自己的系统,不管电脑、平板电脑、PC等等,我们每天都有非常大数据的处理,CPU是不是已经足够来处理这些数据?所以我们是需要更多的数据处理能力,这同时可能有非常大的能量消耗损失。

比如说我们现在的编出来的程序可能有CPU上非常多能源的浪费,在开源架构当中就有关于虚拟的问题,不同的编译器之间会放在不同处理器上进行处理,有一些在比较低的层级,有些在比较高的层级,比如内存、处理器等等,所有这些都是在同样的生态系统当中共存,其实我们现在没有办法知道到底ISA对于JPU、PCU都是共同有用,其实不管软件公司还是硬件公司都要开发好的平台让我们更好地工作。我们现在AMD、三星、ARM等一些国际著名大公司都在合作给大家提供一个很好的计算平台,大家可能觉得AMD和其他公司之间有相似性参加,是不是在行业当中产生一些带头作用?我们现在的目的是AMD想给大家带来一个前所未有的处理能力,让每一个编程人员可以更好地使用,就好像他们今天使用CPU一样简单,我们现在也在大规模把APU软件生态系统进行扩张,我们怎么有更多的服务器让大家在整个系统当中整个行业当中更好地开发。当然我也希望有更好的软件使用,不管是本地还是云的环境当中使用。

APU到底是什么?这其实已经是个第二代APU,是从17—125,我们可以把CPU和JPU整合在一个晶片上,我们之后在晶片上会有更多投入,让大家更容易编程、更容易优化、更容易进行提升性能,但同时降低了能耗。2011年我们做出了第一个APU,这放在一个晶片上共享一个内存,之间通过一些物理联系,有些问题之前没办法解决,但有了这样一个晶片之后就可以解决了。所以传统商来说CPU和JPU在不同科技环境下进行优化。但是现在因为CPU可以提供很多频率的对战,所以我们觉得现在在JGU上可以支持C++,现在等待时间也会降低。APU就可以极大的增加图象的处理,现在实际上每一个系统都是有CPU的,之后通过APU的使用可以把能耗降低到80%,这就可以让我们把这些能源放在最佳的使用地方,所以在接下来几年当中我们的跨度会非常大,主要在处理器产品上。我们会在CPU、JPU上有UT,我们现在是用开源软件还是需要使用APU让CPU有更好的编译编码能力,因为APU和CPU处理东西都在一个晶片上。如果内容大小一样,指示器性能大小一样,这个性能就会有非常大的提高,它也会提高CPU的功能。

我们现在这样大规模的投入,到底想要一个什么样的应用程序出现?其实是想让大家有一个更好的编程环境,比如说更好的编程界面、生物识别、指纹识别、多用户识别等等,这些其实都是要把云上面的处理器和设备进行融合整合,每个地方都会有不同数据程序,大家都可以在任何地方接入,所有这些都会帮助我们,比如说超高清的一些视频等等,这些都是我们现在工作的重点,包括还有视频音频的管理,还有高清视频搜索。现在人脸识别用CPU非常久了,到底为什么我们之前一直有瓶颈,就是使用不是特别充分。如果我们用搜索窗口来看的话,我们看这个人脸,这边有一个搜索方块,把它全部拖到右边去,会有更多的显示,如果CPU使用不足的话它的分辨率就不是特别好。这个就是用不同大小、不同尺寸的来进行识别,其实是同样的算法,但是带来的效果就是不一样的。事实上,这会给我们380万个SF。

这里是HAAR集连阶段,在N阶段的时候脸部识别是可能的,但是在N+1会有P2Q几个特点,这取决于能不能做脸部识别。我们看一下这个算法是怎么算的,在最后高清计算当中搜索方块一共是400万个,每一个FACE的CONFIRMED是100,这个必须是正的,头弯一点就用不了了。我们看一下连集深度是多少,在上面可以看到具体分析,我们在这里可以看到它的情况比过去要好的。为什么会有这样一个改善,我们看一下变化。首先不同阶段的时候,正在运算的小的IDM是不工作的,这样大幅改善了有效。橘色代表JPU,绿色代表CPU,第一阶段的时候JPU是比CPU慢的多,但是最后JPU比CPU快的多,大家可以看到这样一个很大的区别。大家可以看到APU和JPU、CPU是有区别的,所以我们有时候计算的时候只用APU。这是一个非常有意思的用法,我们可以看一下它代理的结果是什么?JPU和CPU不同阶段使用的话会造成什么影响?我们PER FRAME增加2.5倍,这是一个笔记本芯片,这样可以使电池寿命延长2.5倍,这同时给我们带来了能源消耗特别是每一个FREM能源减少。当我们改变计算方法的时候可以使机器变率变高减少能耗,如果看平板电脑或者手机的时候我们这种方法更加有效了。

现在我们也是希望能够运用JPU通过软件在其他方面进行一些改善,我们下面看一下JAVA的加速,这是用APARAPI进行JAVA的改善,首先我们有一个JAVA源,然后用标准编译器把所有源进行分类,我们用APARAPI可以帮助我们改善整个过程,当然过程当中肯定要用到LI,现在我们把这个代码放到Opencl,这个如果没有Opencl,它可以在任何一个线程池上面进行。

下面简单谈一谈软件站,我们看到驱动站和HSA工作站不同方式,我们看到驱动器站灰色部分代表应用,后面是阈值,同时所有软件应用都可以在Opencl上运作,我们可以通过软件站的方法来节约时间,我们看到这样一个变化还是非常明显的,因为在驱动站的方法应用并不能跟硬件沟通,它可以和HSA阈值沟通。HSA是一个优化了的平台架构,也是给Opencl应用的,它不是对Opencl的取代或者替代。这个好处是帮助我们减少一些不必要拷贝浪费,另外可能的调度性也会比较低。内存模式会有改善。比如说在Opencl上有一些东西没有正在运作的话我们可以跳过它,所以说整个编程层级也是比较低的。我们这里可以看到AMD给HSA开源的工作,我们把我们的源给打开,然后帮助我们能够改善整个生态系统,另外还有单一分享的方式,我们希望我们所有的用户都可以使用到我们这样的产品。开源和Opencl都是我们做的比较多的工作,如果想要在行业当中进步的话,我们必须要跟上这些趋势,我们改善芯片、改善我们的软件也是为了这些,如果你要想生存下来的话就必须要做到跟上行业的趋势。我们也是希望和其他公司有合作伙伴关系,发展更好的软件,但是很多软件包现在在未来五年可能还没有办法达到我们的需求,当然我们现在慢慢打基础,也是希望能够做得越来越好,谢谢大家。