在此次APU14北京技术创新大会专访现场,我们有幸参访到了AMD全球副总裁Manju Hegde先生。相信大家对于AMD异构计算的相关情况十分关心,那么它对AMD到底有什么好处,现在就请到AMD全球副总裁Manju Hegde先生来为大家进行专访解答。同时业界知名行业领袖一起参加专访和记者沟通,他们是科大讯飞语音平台总监鹿晓亮、中科院计算所贾海鹏老师、北京大学计算技术研究所北京视骏科技有限公司的CTO孙俊先生。
Manju先生与AMD中国HSA项目的负责人楚含进
问:Manju先生你好,我注意到异构计算其实不仅仅是AMD的专利,竞争对手比如Intel或者Nvidia在这方面也在进行着研发,他们的CPU和GPU的融合产品也在逐渐加强这方面的设计能力,扩大GPU作为异构处理器在芯片上的占比。从您的角度上来看,是否意味着异构计算是今后处理器设计的大趋势,AMD拥有了HSA以后将如何保持自身的这种优势?
Manju:我们看到现在无论是手机、平板电脑,或者基于商用的平板电脑、移动设备,使用者都希望有更长的电池运行时间,同时还想要更炫的功能,更好的用户体验。这是对现有处理器的挑战。更炫的使用场景、功能和体验往往需要基于视觉和人体自然语言信息进行处理,这些都需要大量的计算资源,使得对处理器性能,尤其计算性能的能力越来越高。但问题是功耗却又要保持平稳或较低的水平。如何满足这样的消费趋势?从处理器设计的角度,我们需要让合适的计算单元做合适的工作。比如GPU对于数据并行计算和图形处理有着天然的优势,我们把GPU作为计算单元和CPU结合起来,从而形成了异构的系统。GPU发挥它在显示和并行处理上的优势,CPU仍处理传统的工作,如操作系统、轻负载应用。根据应用的计算性能要求,平衡的使用CPU和GPU资源,甚至将以前(异构计算出现之前)需要CPU做、但又勉为其难的工作交给更适合的计算设备GPU,就能很好地降低它的功耗。
异构计算在最近六七年中得到了很快发展,基本上所有的处理器生产商都在支持异构计算,异构计算确实是大势所趋。从GPU在处理器芯片上的占比情况,我们也可以印证这个趋势,大家也体会到异构计算给应用带来的好处。在异构处理技术上,AMD是先行者之一,并且走出了一个创新的道路:HSA。相比较传统的异构平台,HSA硬件架构有独到之处,例如HSA架构下CPU和GPU内存管理上是统一的。在传统的异构系统中,CPU和GPU看到的数据并不一样,而需要保存多个拷贝。比如CPU处理完的数据,如果GPU进行计算的话,必须将这些数据从CPU的内存传输到GPU内存,这种CPU和GPU间数据来回的搬迁,是处理器功耗的大敌。在HSA架构下,整个内存数据对于CPU和GPU完全可见,数据不需要在CPU和GPU之间搬迁,大大节省系统资源。对于程序员而言,这种设计可显著降低异构应用的编程难度,例如OpenCL编程,程序员可以在不同设备间传递指针而不是数据,我们可以将更多传统CPU上数据结构放到GPU上处理。CPU和GPU统一的内存模型,使得OpenMP/Java这类共享内存模型的编程语言成为HSA的编程语言,从根本上解决异构应用编写困难的局面。AMD始终是HSA技术的重要推动者,也希望从HSA技术的推动,充分发挥自己的异构计算专长。
同时,AMD把HSA架构变成一个开放的标准,与其他处理器公司共同推动异构计算的生态环境。平台标准化之后,AMD如何做到差异化?AMD的思路是自己的IP优势。我们的差异化不是表现在封闭化和私有化,例如给软件编程人员提供私有的编程方法。我们的差异化体现在我们制造芯片的知识产权上面,比如AMD异构芯片的电源管理,芯片模块化设计从而提供更多HSA兼容的芯片模块,异构芯片间Cache处理能力,GPU架构等等。加上AMD在异构计算系统生态环境持续不断的投入,从软件程序员角度来说,他们能够在AMD平台上获得最好的编程体验。比如只需要关注代码,而不需要关心整个硬件系统架构的差异,并且软件写完后可以在异构计算平台上表现的更好,这也就AMD提供差异化的表现形式之一。
问:我们知道HSA是AMD的优势核心技术,接下来基于HSA的一些策略是否方便透露一下。
Manju:实际上HSA最终会落到硬件层面上,这意味着厂商都可以拿这个规范去设计他们的硬件,也就是说未来我们会看到很多公司用HSA这个标准去实现整个硬件开发。从软件的角度来说,AMD的HSA架构其中包括开发工具,编译器,软件库和一些中间件,这四大部分对于开发人员来说是不可缺少的组件。AMD实际上现在已经开始着手很多这方面的工作,有了成果。AMD会和有关人员一起努力,比如在中国,我们就和中科院计算研究所在OpenCV应用库上展开过合作。
问:科大讯飞是国内最好的中文语音识别软件,我的问题就是说你们的产品被广泛应用在PC,手机和平板里面,如何做到世界领先。第二个问题就是科大讯飞的背后,从AMD这里得到了什么帮助?
鹿晓亮:首先,我今天在参加AMD APU14技术创新大会的时候,发现有很多人在用我们的讯飞输入法,讯飞的产品正在深入千家万户。其实在互联网广泛使用之前,讯飞没有这样做,讯飞以前还是做技术提供商这样的方式来运营。现在语音识别技术特别热,国内外有很多公司都在做这方面的事情。这一方面给我们带来了很大的压力,但同时我们有信心确保自己的领先地位,为什么会有这样的自信?有如下几方面的原因。
首先,我认为讯飞有很强的整合研究资源的优势,科大讯飞最早是从中国科技大学一个实验室走出来的,后来在研究资源整合方面投入了非常大的工作力度,比如说我们跟清华实验室的合作。清华实验室以前有一个在语音方面泰斗级的人物,他们的实验室跟我们合作了很长时间,还有新疆大学、哈工大,加拿大约克大学等,我们把国内外所有相关的研究资源都整合在一起,这保证我们在研究分析领域不会落后于任何一家,我们的产品都是比较超前的,所有其他做语音的,不管是一些大型互联网公司,或者一些新创公司,他们基本都在跟风讯飞,因为我们的研究资源整合力度强这是很重要的原因。
另外,我觉得我们的工程团队也是非常强的,语音识别是计算量非常大的东西,能把它做在云端或者像手机里都是很难的。我们的团队在一些技术前沿比如深度神经网络(DNN)跟AMD的团队一起合作,也相当于一个资源整合的过程。另外讯飞一个优势就是不仅是做单点的语音技术,讯飞是在语音识别整个领域,包括和声识别、评测,语音理解、手写识别等我们都在发力,我们不仅做软件,我们也做硬件。举个例子,对语音识别来说,我们在高速上行车,那种情况下噪音非常大,语音识别不起作用,那我们就需要一些硬件的设备来解决问题,就像我们今天上午说的,我们是提供非常完整的解决方案。
通过与AMD的合作,我们感到异构计算对于讯飞各个业务非常有帮助。就拿语音识别这方面来说,后台我们使用了基于深入学习的技术,它的特点是计算量要求非常大,同时并行化程度也很高,这些特性非常适合异构系统。通过异构计算加速我们的算法和计算,我们才能在很快的时间内训练出一个模型,这对于讯飞的业务非常关键。在整个工作过程中,我们跟AMD团队合作的非常紧密,我们双方工程师会经常做一些交流,包括远程的、面对面的,使AMD方面有一些新的技术或者一些新的设备,都能第一时间用到我们的平台里面去。
问:现在感觉AMD异构计算更多是关注在视频领域,但实际上我们知道异构计算在其他领域也有非常多的应用,我的问题是在不同的领域,是不是要用到不同的异构计算解决方案?另外一个问题是问几位ISV的,现在看起来在编程上异构计算还是具有一定难度的,您们认为难点在哪儿?而用了HSA之后你们认为有什么好处,用HSA去做开发的时候,会不会也需要一些额外的学习工作,对与HSA整个生态系统的建设,ISV们觉得现在到一个什么阶段?
Manju:我刚才提到的异构计算在视觉方面应用,主要还是面向于终端用户,这种应用的运算量相对于传统的高密度计算来说还是比较小。实际上HSA在服务器这个领域里面有很大的应用空间,因为服务器里的应用基本上都是属于计算密集型的任务。比如很多的服务器或者是高性能计算机里面,数据处理最后都会变成矩阵乘法操作,这种任务需要有很大的计算性能,经过一定计算之后会返回结果,还需要一个决策的过程,如此反复再做下一个处理。CPU非常适合做决策,但GPU对于大型矩阵操作来说则是非常适合的。HSA这种架构实际上把CPU和GPU通过一个高效的方式来进行连接,由于在硬件上进行整个调度,实际上你不需要再考虑数据是在CPU还是GPU上,他们是在做决策还是在做计算,所以说HSA不但适用于终端设备,他对未来基于服务器和高性能计算来说是都是非常好的技术实现方式。而有关软件生态环境的问题,我们有请贾海鹏老师来回答。
贾海鹏:我是GPU并行计算的长期使用者,我们中科院计算所并行实验室是专门研究异构计算的。根据我的经验,异构编程的难点,主要体现在三个方面。第一个是编程难,异构计算和GPU都是一个并行的程序,所以说如果写异构程序的话,你首先要转变你的思维,因为没有经过特殊训练的程序员,想从串联的思维转变成并行的思维,是需要一段时间的训练的。
我们知道用GPU发展异构计算,就是要提高它的性能。要提高它的性能,我们必须要让这个程序能够完美地映射到这个硬件上去,那么对于GPU程序的优化,我觉得要想做得好,必须要具备两点。第一点,必须对这个算法有一个非常清晰的认识,第二点,必须要特别地了解底层硬件的架构,只有这样才能够做到两者非常好的影射。但是这将会是一个非常有难度和工作量非常大的工作。
第三个是调试难,第三个问题对我来说是刻骨铭心的,程序调试本身就是难点,而在GPU程序中,这个难点就显得尤为突出。因为在GPU上有成百上千个线程在运行,数据在并行处理时,如果我编写的程序在某一个地方出了错,我很难知道是在GPU上哪里出了问题,也更不知哪个分支在什么时候出了问题。这是并行计算编程常见的问题,而在GPU上尤为突出。另外,在异构计算中还有一个难点就是如何让CPU和GPU来协同工作,我们在让GPU工作的时候,CPU或者处于闲置状态,或者在等待数据的返回从而进行决策,这种状态下我们计算系统上的计算资源不能得以充分的利用。原来在写程序的时候,只要通过队列的形式也是可以让CPU和GPU来协同工作。但这种形式是使所有的交互甚至所有任务都是由CPU来承载,GPU扮演的只是一个协同者和一个参与者的角色。所以,如果GPU产生了新的任务,但这个任务又更加适合CPU来处理时候,那么GPU没有办法把这个任务传给CPU执行的。
所以,从去年开始,我们一直在关注AMD推出的HSA技术,因为我们认为HSA采用了两大核心技术,而这两大核心技术可以缓解异构计算所带来的难题。第一点,它让CPU和GPU可以共享内存,这样就会避免我们原来在编写程序时,无法让CPU和GPU同时工作的瓶颈。CPU和GPU共享内存空间之后,就没有必要对这个数据进行二次处理。第二点是它的异构队列,异构队列提供了一个非常好的功能,就是可以让CPU和GPU进行任务的交互,在这种情况下,GPU与CPU将不会是一个简单协同的关系,而是将GPU和CPU摆在了一个同等的位置进行交互运算,第三点在调试上,基于HSA架构的软件生态环境提供了一种标准,开放的标准,这样非常容易适合各个厂家开发各自的开发工具。
我近期也在关注并期待AMD的第一款采用HSA的处理器。AMD的HSA技术如今已经是处在了整个处理器技术领域向异构发展的前沿,他们所实现的HSA技术,已经站在HSA联盟成员中的前列,AMD一直在推动这个技术的发展。从HSA基金会的建立,一直到第一款基于HSA架构处理器的正式发布,AMD一直在推动异构计算的快速发展。
然而,现在异构计算也存在着一个非常严重的问题,就是对于GPU而言,架构太多,变化太复杂。曾经有次在我们编写程序的时候遇到过一个很大的问题,而当我们花了最大的努力将这个程序的性能优化到最佳时,GPU架构出现了变化。架构的变化,可能会导致我们很多优化方法失效,也就不得不对这个程序进行再次优化。所以,HSA现在为我们提供了一个中间语言,一份代码只需要程序员编写一次,就可以在任何的地方运行。对于HSA架构来说,我也抱有几点期望。第一是整个HSA生态的建设,包括硬件、编程、调试、以及各种各样的工具和各种各样的应用程序,当然我们深知AMD在这些方面和业内很多技术领先的公司,也一直在致力于这些工作的完善,但是我相信AMD在相关技术上也一定会再次带给我们惊喜的表现,我们也期望AMD能够为我们科研工作者,提供更好的科技创新的平台。
问:HEVC/H.265作为下一代高清视频标准之一,我想请教北京大学计算技术研究所北京视骏科技的孙俊老师给我们介绍一下HEVC/H.265的技术和产品。,
孙俊:很高兴有这个机会给大家介绍一下,我们研究所是王选老师创办,方正集团就是我们研究所孵化出来的。视骏的核心技术最初来源于我们北大计算机研究所。在开发HEVC/H.265之前,我们的团队一直专注于编解码的研究。HEVC/H.265的编解码复杂度较之前的各类编解码至少都高一倍以上。视骏的软件核心团队在设计软件时,从如下方面考虑到该复杂性并加以解决。
视骏科技的技术优势主要源自编解码内核,从底层架构设计、流程控制、并行理论、系统性优化技术等多方面的创新。
在架构与流程上,编解码架构的完全重构与流程的局部重构,设计出低冗余,高并发的最优基础框架,为最大程度支持数据级和任务级并行以及GPU异构计算的统筹做好准备
数据级并行技术:系统性的底层汇编优化,尤其针对HEVC的新增技术和编码工具提出了各平台下最极致的数据级并行算法,精确到每一条冗余指令的优化与去除
任务级并行技术:任务级并行技术,在传统的任务级并行编码技术的基础上独创CWPP(Cascading WPP)框架、调度算法与技术,使编码器能够获得逼近并行度理论上限的加速比,解码器能够利用码流包含的各类并行特性提供最可靠的解码加速
我们这个团队所开发的技术应该是世界领先的,HEVC/H.265技术设计完成之后,使包括迅雷、PPTV,乃至国外很多大公司都在接洽评估我们的产品。
问:我想请教北京大学计算技术研究所北京视骏科技的孙俊老师。视骏科技的HEVC/H.265的解码器在播出H.265视频的时候是不是属于硬解码,因为你所说的是播放极大降低了CPU的资源,占用率最多不到30%。另外,AMD的HSA对视骏的产品起到了哪些促进作用?
孙俊:第一个问题是关于我们的4K和2K播放占用率只有30%,是不是用硬件实现的,其实我们可以说一半硬件,一半软件。我们是利用了GPU的并行能力来实现。因为每一个程序,特别是复杂的程序,它包含所需要的串行分支情况和分行情况,我们要做到的是让串行和并行合作完成复杂任务。刚才所提到的H.265,代表未来10年的发展趋势,并且H.265比H.264更适合并行计算。
AMD的HSA技术,使我们的运算交给GPU的时候,不需要进行数据拷贝,我们使用这样一种统一的编程模型,能使程序的运行效率大大的提高。
问:我是来自天极网的记者,我想问一下关于游戏的问题,我们在看到微软XBOX-ONE和索尼PS4已经采用了AMD的所有硬件产品,游戏应用的异构计算技术也已经推出,在未来PC端领域,有哪些游戏支持这个Mantle技术,另外对于这项技术,我们有哪些长远规划?
Manju:AMD为用户提供的是减少与显卡的交互,就像今天早上所讲的游戏。现在大概有40多种Mantle游戏在开发之中,这些游戏引擎会植入对AMD的Mantle支持。AMD的Mantle是基于AMD GPU的技术,但受益的也不仅仅是PC平台。这里面我加一点自己的意见,中国在未来像游戏盒子这方面,还是一块空白区。比如xbox one游戏机,我们也知道它定价是499美元,而小米盒子和其他盒子的定价是1000元以下,在这个价格区间会大有文章可做。而AMD也完全可以从中端到高端,为中国很多基于家庭游戏核心的设计提供多种解决方案。而AMD基于Mantle的技术并不是和具体哪个CPU架构有必然的联系。
我需要补充一个问题,从AMD的角度来说,我们给业界做游戏开发的公司提供了一个很好的,能够最大限度利用硬件的平台,并且非常易于开发。
网友评论