互联网+ 电子商务 智能家居 地理信息 高端装备 信息安全 3D打印 工业4.0 人工智能 光伏 新能源汽车 消费品 集成电路 移动支付 汽车 数据中心
2018国际先进制造业集群发展论坛
当前位置:首页 > 产业观察 > 信息化 > 电子信息 > 正文

中国并行加速器应用发展对策建议

发布时间: 2014-08-27 14:03   作者: 刘新   来源: 赛迪顾问

  近年来,虽然在高性能计算领域并行加速器取得了空前的发展,但并行加速器不论是在硬件上,还是在软件配套上仍然存在一些瓶颈。

  一、并行加速器应用关键障碍

  研究发现,目前并行加速器应用关键障碍主要体现在以下几个方面:

  1、软件移植性较难,编程与调优较难

  目前,适应“CPU+GPU”或“CPU+MIC” 混合计算模式的应用程序较少,并且软件缺乏可移植性。为某一特定系统编写的GPU应用代码如果要在其它系统上运行,几乎需要重写程序。用户一般都不希望把代码绑定在某一套或某一家厂商的硬件平台之上,而是希望一次编写的软件包可以自适应多种架构产品,适应不同时期,不同架构的硬件平台。而软件不可移植意味着用户在软件方面的投资就无法得到延续与保护。另外,从商业软件来看,传统高性能计算领域的很多软件都是为X86集群编写的,如何移植到GPU平台上并保持高效率也是用户最关心的问题之一。其实,NVIDIA早注意到了这一问题,为了支持其他CPU、GPU硬件平台,CUDA C/C++也开始提供多种调优工具,让开发人员能在CUDA平台上写的程序进行转换,从而运行在多核CPU和AMD的GPU上面。尽管这样,仍无法一步到位地解决所有程序在异构平台之间平滑移植的挑战。

  另外,要想实现高效并行计算加速能力,还存在编程与调优问题。并行加速器所能够涉及到的并行计算程序仍然需要依靠专用的工具进行调优,以发挥其最大并行计算加速能力。目前,如AMD需要使用OpenCL API进行编程,由于需要使用专门的API和较为低级的语言开发,有的代码需要穿插使用多种编程工具,不仅要求学会多种编程工具,还要在一个程序中实现联合编译,其难度可想而知。而Intel的MIC虽然在软件编程上较易上手,但如果要进行深度的优化,则需要类似于汇编的手段进行处理,编程难度与效率也是一个较棘手的难题。同时还存在性能调优问题,仅GPU本身优化就得考虑寄存器使用、共享内存、内存访问、L1/L2缓存、线程数、数据传输等多方面因素,许多程序员对于运用GPU的缓存和其他特性仍显得手足无措,而且GPU的通用计算需要CPU与GPU协同工作,因此还得考虑CPU与GPU间任务分配与协同,以及多GPU负载均衡,软件在不同平台间移植等棘手问题,更何况还要避免分支的出现和适应复杂的GPU存储体系。

  2、生态系统尚待完善

  一个完整的GPU加速环境既包括硬件设备,也包括程序开发和运行环境如编译器、调试器、运行时库等,以及其它各种性能调优与任务管理工具。跟普通的多核CPU相比,集成数百内核的GPU在并行计算方面的硬件优势如成本低、功耗低、体积小、性能高等已经得到普遍认可,但仅有硬件是远远不够的,软件应用更加关键。

  针对GPU的软件开发,目前可选的工具已较多,如NVIDIA GPU支持CUDA C/C++、CUDA Fortran、CUDA Python、OpenACC、OpenCL、DirectCompute等;Intel Xeon Phi可支持Intel Ct、OpenMP、IntelMKL等,AMD GPU支持OpenCL、DirectX 11等。相对而言,CUDA是其中发展最为成熟的,众多编程工具都能融合在CUDA的架构上,如Nsight可以在诸如Visual Studio大众熟悉的开发环境上对GPU程序进行跟踪调试,其所采纳的方法和方便程度与在CPU上进行开发已经没有本质的区别。但与CPU编程环境发展的成熟度比较,目前并行加速器整体的开发环境还有进一步完善的空间。另外,现在能够进行GPU编程与开发的人才很缺,大多仅集中在科研院所、高校及极少数企业中,GPU软件编程人员也较匮乏,也极大的影响了并行加速器在生产性应用领域中推进速度与应用广度。

  二、中国并行加速器应用发展对策建议

  1、构建产学研用互动机制,推进生产性应用快速发展

  目前,中国并行加速器计算应用市场才刚刚起步,大部分并行加速器应用中科研性的应用比较多,生产性的应用比较少,主要原因是并行加速器应用研发与生产性的应用脱节。要推动生产性并行加速器应用的普及与发展,有必要构建产学研用形成互动机制,将产品与技术的研发与行业实际应用紧密结合,充分利用并行加速器的优势,进一步拓展并行加速器计算的应用范围。同时,通过用户对并行加速器应用中出现具体问题加速和优化并行加速器的技术与应用创新,从而使并行加速器通用计算具备更好的实用性,能够为更多行业用户接受和认可。

  2、以市场需求为导向,优化学科专业,积极培养适应性人才

  并行加速器的广泛应用依赖于对并行算法、编程效率、系统扩展性等技术的采纳,并且并行加速器在并行计算、编程效率、大规模计算性能上的难题也需要有专业的人才来解决。现阶段,中国专业GPU应用开发人才仍然存在较大的需求瓶颈,需要积极推进并行加速器人才培养计划:企业要加大与科研院校保持良好的合作,从师资力量的培养、课程教育方面提供更多支持;高校需加强GPU专业课程的建设,以市场人才需求为导向,优化学科专业,培养更多并行加速器领域适应性人才。另外,还要大力扶植行业应用典型案例,积极开展技术研讨活动,并通过建立权威的培训认证机制,从而切实推进GPU应用在中国的发展。

  3、以应用和服务为突破点,加大并行加速器技术实训投入

  尽管我国高等院校聚集了大批优秀科研人才和研发资源,但在并行加速器专业人才培养模式上仍不够成熟,对人才的培养更倾向于理论、技术为主,实际应用为辅。因此,从高校角度,应以并行加速器应用和服务为突破点,在充分传授基础理论和技术的同时,加大学生在并行加速器行业应用领域的实习实训力度,积极与并行加速器相关企业开展联合培养与实训基地建设,一方面满足并行加速器专业人才培养质量的需要,使其能够推动并行加速器应用发展的需要和企业的应用需求,另一方面,也能满足企业发现实用人才的需要,解决企业并行加速器应用人才短缺的局面。

  4、促进科技攻关与应用创新,推动科研成果快速转化

  目前,除大型的超算系统外,并行加速器在各行业通用也发挥了越来越大的作用,比如生命科学、分子动力学、基因排序、蛋白质折叠、石油石化、工程科学、医疗、金融都是并行加速器应用的热门领域,因此,要深化产学研用合作,根据不同领域应用特点致力于对并行加速器行业应用发展中的突出问题和核心、共性关键技术进行科技攻关与应用创新,鼓励高校与企业共享联合实验室的建设,强化与企业的联合攻关,积极与政府合作建设并行加速器公共测试和开发环境服务平台,有助于为用户带来更多更好的并行加速器应用程序与设计;与并行加速器厂商构建产学研用联盟,积极推动并行加速器科研成果向行业应用解决方案转化,使其能迅速转化为行业生产力,创造更多的商业价值。

收藏