国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > 互联网 > 专访APU13讲师、西电朱虎明:概念难以理解成异构编程最大阻力

专访APU13讲师、西电朱虎明:概念难以理解成异构编程最大阻力

来源:程序员人生   发布时间:2014-09-23 14:17:16 阅读次数:3553次

APU13上,Kaveri APU及一系列异构计算开发工具的发布,展示了AMD构建异构计算生态系统的决心与成果。AMD与Oracle、HP等企业的大力合作,昭示着异构计算越来越受到国际知名企业的重视。与国际大环境相比,中国的异构计算开发环境如何?优势与不足又在何处?近日我们有幸专访了APU13的演讲嘉宾、西安电子科技大学朱虎明副教授,请他分享本次大会的参会感受及国内异构计算/编程的现状和未来发展。


西安电子科技大学朱虎明副教授

CSDN记者:您是第几次参加AMD开发者峰会?本次大会给您留下了哪些深刻印象? 

朱虎明:我是第一次参加AMD开发者峰会。今年称之为APU13,令我印象比较深刻的有三件事:(1)本次大会展示的软件多为基础软件,比如异构系统架构(Heterogeneous System Architecture,HSA)上的编译器和开发平台;(2)AMD开始与相关IT企业展开紧密合作,比如本次大会上,AMD跟Oracle合作开发了HSA上的Java相关工具,跟HP联合发布了新的APU服务器(采用Opteron X2150 APU);(3)UIUC大学WenMei W. Hwu教授跟AMD等公司展开合作,并开始撰写异构系统架构应用方面的专著《Heterogeneous System Architecture for Application Programming》,预计2014年下半年可以出版。从这几件事可以看出世界知名IT公司必须有一流的技术能力和资源整合能力。

CSDN记者:透过本次大会,您觉得国外的开发者对异构计算/编程的关注程度如何?他们主要关注点有哪些?

朱虎明:美国的众多科研机构和企业基于异构计算做了很多的工作,比如佐治亚理工大学的Wu Feng教授主要关注如何将CUDA程序通过编译器自动转换为OpenCL程序;高性能计算领域领先的编辑器和工具供应商The Portland Group (PGI) 研究如何将OpenACC应用于AMD APU平台。这些工作主要目的都是为了提高异构计算的开发效率。当然,大家现在都很关注HSA,预计2014年很多基于HSA的应用将被开发出来。

CSDN记者:与国内相比,国外的异构计算开发环境有什么不同?异构计算/编程领域的发展情况如何?

朱虎明:凭借互联网,我们可以及时获得并更新国外的最新软件,因此国内外在异构计算开发环境上基本保持一致。但由于国内异构计算的生态系统不如国外(特别是美国)完善,因此国内的应用水平较国外还有很大的差距。

CSDN记者:APU13上,AMD重磅推出首款支持HSA架构的Kaveri APU,您如何评价这款APU?它又将对异构计算领域的发展产生怎样的影响?

朱虎明:根据报道,Kaveri APU的CPU性能比目前的Richland提升20%,GPU采用GCN架构核心,性能提高30%。当然这些都是估计值,具体的性能还要进一步在不同的应用上进行测试。

HSA最大的进步就是hUMA(heterogeneous Uniform Memory Access,异构统一内存访问)。虽然以前已有很多基于GPU的并行应用,但由于GPU中显存容量的限制及内存与显存之间数据传输存在一定的瓶颈,这些都极大限制了GPU计算的应用范围。因此Kaveri APU的出现,不但能使已有的基于GPU加速的应用提高计算效率,而且使得异构计算的应用范围更广,以前不太适合GPU上的应用,现在也可以尝试使用APU来加速。

CSDN记者:您觉得国内开发人员进行异构编程遇到的最大困难有哪些? 

朱虎明:国内现在会异构编程的开发人员越来越多,关注异构编程的相关人员也越来越多,但目前大多开发人员身居高校和科研机构中,并将异构计算应用于自己擅长的专业领域。根据近几年我在西安电子科技大学的教学经验,开发人员进行异构编程遇到的最大困难就是难以理解并行算法的相关概念,比如异构计算涉及到的一些硬件架构、规约操作原理和计算网格的参数设置等。因此,如何将异构计算推广给不熟悉并行计算的应用者,还需要高校撰写更适合初学者的异构并行计算教材,研究异构并行计算的教学理论,开发异构计算的实验课程。 

CSDN记者:AMD在APU13上推出的一系列针对异构编程的开发工具,可以在哪些方面减轻开发者的负担?

朱虎明:有了这些新的开发工具,能够极大的提高异构计算的编程效率。比如与Oracle合作推出的基于Java的开发平台,可使很多Java开发者很容易地将其应用移植到异构计算设备上。与PGI合作推出的新编译器,使开发人员能够向Windows和Linux系统下的Fortran、C和C++程序添加可支持AMD APU和独立GPU的 OpenACC指令。这也是一个很大进步,因为异构计算的程序编写还是比较困难,有了这个编译器,只要在你原来的串行代码中增加一些编译指引语句,就能将你的程序运行在异构计算设备上。这将大大提高开发效率。还有就是新发布的基础数学库――clMath,其中包含了BLAS、FFT等常用功能,这将使我们在开发异构计算应用时,更多的关注我们要解决的应用问题,而不是非常底层的并行基础算法。

CSDN记者:AMD正加大与开源社区的协作,不断开放相关源代码并提供一些开发工具,对于AMD的做法,您怎么看?这对构建异构开发生态系统有怎样的推进作用?

朱虎明:我想开源是一件非常好的事情,AMD作为一家硬件公司,善于制造CPU、GPU和APU等计算设备,但是要将这些计算设备应用于图像处理、视频编解码、生物信息学和流体力学等专业领域时,AMD可能提供的支持就比较有限了,那AMD如何建立、发展和推广异构计算呢?那就是要建立异构计算的生态系统,即从下往上依次为异构计算硬件、编译器、开发与调试工具、异构计算基础库和应用领域。AMD目前主要的工作都集中在下面三层,当然它也在加强上面两层的力量,比如据我了解的,AMD和中科院软件所张云泉老师合作开源了OpenCV对应的OpenCL版本(OpenCV OCL module)。现在使用OpenCV处理复杂应用时,就可以方便地使用异构计算的加速能力。这大大提高了图像处理和计算机视觉领域的开发者使用异构计算的能力。

CSDN记者:国外高校对异构编程的教育方式及普及情况是怎样的?这将为国内高校进一步推进异构编程教育带来哪些启示?

朱虎明:国外,特别是美国,很多著名高校都开设了异构计算课程,甚至他们已经调整了高校的计算机教学大纲,增加了异构并行计算内容。比如University of Illinois开设的《Applied Parallel Programming》,就主要讲解异构计算的硬件架构与并行算法。Stanford开设的《Parallel Computing》,Carnegie Mellon University 开设的《Parallel Computer Architecture and Programming》课程,Berkeley开设的《Applications of Parallel Computers》,MIT开设的《Parallel and Heterogeneous Computer Architecture》课程等,都或多或少讲解了异构计算的前沿知识。

ACM和IEEE联合制定的2013计算机科学教学大纲中,共有18个知识模块,其中的并行与分布式计算模块(PD - Parallel and Distributed Computing)就是新增加的知识模块,特别强调了并行计算的重要性,当然,异构计算是并行计算的重要组成部分。

美国非常注重并行计算本科生教育,美国国家自然科学基金会和IEEE联合成立了工作组(NSF/IEEE-TCPP Curriculum on Parallel and Distributed Computing ),召开了多次会议进行广泛讨论,并设计了并行与分布式计算技术的本科教学内容。其中第二次大规模讨论是在2012年在上海举行的IPDPS会议上,设立了一个叫EduPar-12的Workshop,我当时正好在会议现场,聆听了来自世界各国的老师在并行计算方面的教学心得,特别是与我国著名计算机专家金海老师的交流,收获颇丰。回来后,在AMD公司的支持下,就把我们自己在异构计算方面的教学材料也公布在网络上,以促进中国异构计算科研与教学的发展。对异构计算感兴趣的爱好者,可登录 西安电子科技大学的教学网站查看。

更多关于异构计算的内容请见:异构开发技术社区

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生