中国教育和科研计算机网
EDU首页 |  中国教育 |   高校科技 |   教育信息化 |   CERNET
教育信息化

资讯 | 专题 会议 观点 专栏 访谈 企业 产品 CIO 技术 校园信息化 下一代互联网 IPv6视频课堂

中国教育网 > 教育信息化
您现在的位置: EDU首页 > 教育信息化 > 集成应用 > 科研应用 > 高性能计算
“管窥GPU”九则
http://www.edu.cn   2012-05-04 中国教育网络 作者:林新华

字体选择:【大】 【中】 【小】

  软件篇

  4 王者归来的SIMD编程模式

  在M.J.Flynn眼里,Cray的向量机,Intel的SSE和AVX指令集与nVIDIA的GPU都可以归到单指令、多数据(SIMD)这一模型中。斯坦福大学校长John Hennessy和伯克利计算机系前主任DavidPatterson在合著的《计算机体系结构:量化研究方法》最新第5版中就遵循这种思路,将这三者放在一章中串讲。现代的GPU使脱胎于古老向量机的SIMD编程模式重新焕发青春,这就如同多核CPU使原先针对SMP机器设计的OpenMP再次流行起来一般。与目前常用的并行工具MPI、OpenMP等多指令多数据(MIMD)模式相比,SIMD模式编程的思维方式更接近串行程序,功耗也更低,因为一条指令能同时处理多个数据。

  5 另一个GPU编程选择,OpenCL

  2008年,Apple首先提出OpenCL,随后Intel,nVIDIA和AMD各自派人跟进,希望借鉴OpenMP的成功经验,在CUDA之外,制定为各公司广泛接受并支持的通用GPU编程标准。但与PC时代的Windows,智能手机时代的Android一样,出于对抗CUDA的目的,OpenCL希望支持尽可能多的厂商设备,因此在技术上它遇到的“性能可移植性”非常棘手,即为设备A所编写的程序如何在不修改源代码的情况下,在设备B、设备C 上继续获得良好的加速性能。让人郁闷的是,虽然OpenCL的设计初衷是“通用”的CPU+GPU异构计算标准,但现实中出于商业利益的考虑,号称支持OpenCL的厂商都只做了“半吊子”的实现。Intel的OpenCL只支持Intel CPU,nVIDIA的OpenCL只支持nVIDIA GPU,AMD的OpenCL倒是能同时支持CPU和GPU,但只是AMD 自家的产品。随着2011年底nVIDIA宣布会陆续开放CUDA源代码之后,OpenCL最大的亮点“开放性”也似乎黯淡了不少。

  6 “巧妇难为无米之炊”的OpenACC

  CUDA之父Ian Buck博士毕业后加入nVIDIA,从他在斯坦福做的Brook中获得了不少启发,开创性地引入了SM内部线程同步机制,实现了单指令多线程SIMT的编程方式,并在2007年发布1.0版本,之后每个版本都有相当的提高。与FPGA和CELL相较,CUDA当然简单易学,但对于一般应用开发者来说,上手还是比较困难。因此当Cray 前CTO Steve Scott加入nVIDIA成为Tesla部门的CTO之后,他力推基于编译器指令的编程方式,联合了老东家Cray、Portland Group和法国的CAPS,一起推出OpenACC规范,希望做到真正的简单易学好上手。但目前并没有支持OpenACC的免费编译器可用:Cray的编译器可以免费赠送,但只针对购买了Cray机器的用户;Portland和CAPS的编译器都是要收费的。现在让开发者自个掏钱买开发工具的比较少见,在国内就更难了。或许nVIDIA收购其中一家的编译器,然后免费发布给开发者倒不失为一个良策。

页面功能 【打印】 【关闭】 【我有话说

MOOC风暴来袭

版权所有:中国教育和科研计算机网网络中心 CERNIC,CERNET,京ICP备15006448号-16,京网文[2017]10376-1180号

关于假冒中国教育网的声明 | 有任何问题与建议请联络:Webmaster@staff.cernet.com