说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

专访中科院贾海鹏:给异构开发者的六个建议

HTML文档下载 WORD文档下载 PDF文档下载
日前,CSDN专访了中科院研究员贾海鹏,他就异构计算的趋势、开发现状、AMD新推出的hUMA(异构统一内存访问)技术等话题分享了自己的看法。

CSDN专稿 异构计算被视为计算机处理器继单核、多核之后的第三个时代,它将实现使用不同类型指令集和体系架构的计算单元,比如CPU和GPU之间的“协同计算、彼此加速”,从而突破CPU发展的瓶颈,有效解决能耗、可扩展性等问题。而异构开发也在走进更广的领域和开发者。日前,CSDN专访了中科院研究员贾海鹏,他就异构计算的趋势、开发现状、AMD新推出的hUMA(异构统一内存访问)技术等话题分享了自己的看法。

贾海鹏

CSDN:请您先简单介绍一下自己以及目前主要关注研究的领域。

贾海鹏:大家好,我是贾海鹏,2013年1月毕业于中国海洋大学,获博士学位。现为中国科学院软件研究所并行科学与计算实验室助理研究员。主要科研方向为: 众核体系架构下并行编程方法与优化技术研究

CSDN:您如何看待异构计算/编程领域这些年来的技术演变、应用拓展状况及未来发展?

贾海鹏:近年来,异构计算受到了越来越多的关注,这主要是因为由于材料、制造工艺、功耗和散热的限制,传统的通过提升CPU时钟频率和内核数量来提高计算能力已经变的越来越困难。与此同时,GPU等专用计算单元拥有相对CPU高的多的计算能力、数据传输带宽以及性能功耗比,但计算能力却远没有得到充分利用。在这种情况下, 如何有效利用计算系统中各种计算部件,并根据不同计算部件的硬件架构特点调度运行相应的计算任务,以充分发挥不同计算部件的计算能力,成为研究热点,异构计算也应运而生。

总体上来讲,异构计算共经过了三次技术演变:2008年GPGPU(General-purpose computing on GPU)的提出及应用推广,GPU架构的革命性变革,使GPU具备了执行通用计算任务的能力;2010年CPU+GPU异构计算,CPU与GPU协同运作,充分发挥系统中各种处理器的计算能力;2011年即将来的异构融合计算,CPU与GPU(协处理器)集成到同一块芯片上,以期待实现内存共享和统一地址访问,消除不同处理器间的数据传输消耗。

当前,异构计算已经涵盖了许多计算领域,从传统科学计算(分子动力学,数值分析、计算流体动力学,量子化学等)到桌面级应用(图像处理、多媒体、立体3D制作、物体识别等),都可以看到异构计算的身影。

从某种意义上说,CPU+GPU(协处理器)的异构计算是未来计算的发展趋势。 2012年11月发布的世界TOP500高性能计算机,采用异构架构的高性能计算机有62套,其中Titan高性能计算机更是荣膺榜首。而在桌面级甚至是移动应用领域,也有越来越多的应用程序移植到GPU上,以期望取得更好的性能或者是更好的能效比。面对繁杂的计算任务,根据处理器硬件架构的特点,让不同类型的处理器各司其职,比如CPU负责逻辑密集型任务,而将计算密集型和数据密集型任务交给拥有更高计算能力和存储带宽的GPU负责,才能充分发挥其计算性能。充分发挥计算系统中不同架构处理器在不同方面的优势,从而实现系统整体计算能力的最大化(或者最优化)利用是异构计算的真正意义所在。

然而,个人认为,异构计算推广还需要解决两个主要问题:
1) 编程难度大,开发成本高。 GPGPU编程的一个重要特点是“实现容易,优化难”:要达到理想性能,需要针对硬件特征和应用程序特点,投入大量精力,进行各种优化方法组合的尝试、折中和权衡;而优化工作的开展会增加程序出现bug的可能性。不幸的是,虽然AMD和NVIDIA都发布了各自的调试工具,然而目前GPU程序的调试依然非常困难。软件开发生态的构建是否能跟上硬件发展的步伐,是异构计算推广的关键。

2) 不同处理器间存在着“昂贵”的数据传输开销。 当前,CPU+GPU异构计算的模式是首先CPU将计算任务及所需数据传递给GPU,GPU计算任务完成后,在将计算结果返回给CPU。CPU和GPU之间的数据传输消耗了大量时间,甚至会完全抵消我们耗费心血优化GPU程序所带来的性能提升。减少甚至是消除不同处理器间的数据传输开销,是异构计算发展的一个重要问题。当前AMD发布的APU和Intel发布ivy bridge已经做了很好的尝试。但两者都没有真正的实现异构融合:共享内存(统一地址访问)以及完善的任务调度机制(合适的任务调度到合适的处理器上运行)。而AMD采用hUMA技术的HSA(Heterogeneous System Architecture,异构系统架构)可能会带来新的尝试和突破。比较值得期待。

CSDN:作为领域内的专业人士,您认为哪些开发者应该优先学习异构编程的技能?未来异构编程的技能会成为开发者的通用技能吗?

贾海鹏:采用异构编程无非有两个目的:一是追求高性能,二是追求最佳能效比。因此,开发实时性较强、性能要求较高或者注重能效比应用程序的开发人员可关注下异构计算,并学习相关技术。

个人认为异构计算是未来计算的发展趋势。尽管厂商可能会尽可能的隐藏异构计算的底层细节,提供开发人员统一的开发接口,以降低开发人员负担。甚至厂商可能会做到不会改变开发者编程习惯(当然这个很难)。然而,建立异构编程观念,掌握异构编程技术应该对未来软件开发人员的重要要求。

CSDN:您如何看待AMD最新推出的hUMA(异构统一内存访问)技术对GPUCPU融合带来的影响力,它有哪些优势和劣势?(优缺点)

贾海鹏:hUMA技术对异构计算最大的贡献是实现了CPU和GPU的内存共享,解决了CPU和GPU间数据传输所带来的时间消耗,应该说是异构计算一次大的技术突破。然而,这个技术如何解决内存一致性问题,CPU和GPU共享内存是否会增加本来已经非常困难的异构编程和优化的难度,整个编程生态是否能够跟上硬件发展的步伐,让我们拭目以待。

CSDN:HSA帮助开发者更高效、更容易的进行开发,并获得可观的性能提升及功耗降低,但这还需要一至两代产品更新才能实现。在当下,开发者学习和使用异构编程有价值吗?

贾海鹏:HSA确实是异构计算的一次重要技术革新,表现究竟如何我们还需拭目以待。但在当前,异构计算依然是研究特点,CPU+GPU的异构计算模式在众多领域中都得到了广泛的应用。对于开发人员来说,特别是对于之前我提到过的对异构计算有需求的开发人员来说,学习异构编程和技术,掌握最底层和最前沿的异构编程和优化方法,非常重要,也非常有价值。

CSDN:C++大师Herb Sutter曾发表过一篇著名的文章《The Free Lunch Is Over》,他表示程序员不断获取硬件升级带来帮助的日子已经结束了,并行计算或异构计算将是未来的趋势。Intel在内的公司不断推出了多核、众核处理器,虽然包括AMD和英特尔等公司做了很大努力,开发者驾驭多线程的编程难度很大,现在学习异构开发的难度依然很大吗?开发工具、函数、算法成熟吗?

贾海鹏:尽管厂商在降低异构编程难度上做了大量工作,也有效推动了异构计算的发展。但就我的开发经验来说,异构编程“实现容易,优化难”的特点依然存在:

1) 将程序移植到异构平台上相对简单,但是要获得高性能,需要进行不断尝试、劳心劳力的优化工作。例如GPU程序优化是各种优化方法相互权衡和折中的过程,很难说最大化某种优化方法后就一定会带来性能提升;而针对那些线程间负载不均衡或者是线程间存在依赖的非规则应用,在GPU这种大规模细粒度并行处理上的优化更是困难,需要如persistent thread,Uberkernel,coarse-granularity parallelism,queue等新优化方法的开发和使用。

2) 虽然各厂商都推出了各自的调试工具,异构程序特别是GPU程序的调试依然非常困难。

总之,虽然各厂商对异构编程都建立了良好的开发生态,但异构程序的开发成本依然很高,编写高性能的异构程序依然很困难。

CSDN:对想学习或入手异构编程的开发者有什么建议吗?

贾海鹏:异构编程就是追求高性能和好的能效比,其本质就是实现算法特性向硬件架构特征的高效映射。因此,根据我的经验,学习异构编程需要以下几点:
1) 异构编程绝对不是对应用程序的简单并行化,需要对算法的深入了解
2) 异构编程,程序性能与具体硬件架构相关,需要对目标硬件架构有个深入了解
3) 可从一个应用程序(比如矩阵乘)出发,逐步了解异构程序编写和优化的主要技术
4) 多coding,经验很重要
5) 多看文档,特别是随SDK发布的编程指南和优化指导等官方文档
6) 随时关注硬件发展

注:本文由付江采访,季红整理成稿

亚信CFO武军谈进军海外市场成功经验 前瞻性思维是开路先峰 Swift,任重而道远! DevOps系统的变迁 玩转Docker镜像 “扫描建模”速建AR应用 Vuforia 4.0 SDK更新 硅谷里的外星人:纵观Reddit十年风雨路 不见不散 Cloud Foundry Meetup活动将首次走进杭州 独立开发者:新手做2D手游该用哪些工具? 求安全化危机!Uber研发生物识别技术、聘请前亚马逊运营 JavaScript社区开发者调查:服务端JS盛行 AngularJS使用者最多 去中心化、去中介化,微信商业化路径清晰了吗? 微信企业号认证简化了,你造吗? 专访瀚思安信联合创始人:大数据技术助力企业实现主动智能防御 挑选IBM Bluemix作为云平台的10大理由 10年技术积累成就极光压缩引擎,欧朋流量宝5.0面世 【图文实录】12月19日CTO俱乐部走进杭州 mlpack:可伸缩C++机器学习库 本地项目托管将死?类GitHub站点永存! 2014年讨论最多的编程语言:JavaScript称霸 移动Web应用UI框架大比拼:Ionic vs. Famo.us vs. F7 vs. OnsenUI 面包旅行CTO薛亮:做旅游与社交有机结合的先行者 盘点开发者最喜爱的Swift技巧 2017年,开发者还能从移动广告中收获什么? 《近匠》茄子快传,让设备更好地连接 面向移动应用程序的DevOps五大挑战和十个最佳实践 Ruby 2.2.0发布,支持回收Symbol类型对象 听UnitedStack、IBM、HP专家如何谈“OpenStack 存储”技术 专访POWER 8编程挑战赛选手孙冬冬:从C语言到人工智能、深度学习的技术演变 盘点2014:十家最酷的大数据创业公司 盘点2014:最受关注的十大云服务创业公司 基于Kubernetes构建Docker集群管理详解 请教各位高人,一个循环定义问题 Win98下为什么拦截不到从另一线程发过来的自定义消息 public class myclass 与 class myclass 一样吗? dbgrid 中,titleclick事件,如何判断选中的是 哪个字段 呢? 很简单 ADOtable 不支持 FindKey, 请教: 应该如何解决记录定位? 火急请教个“重新验证组织单元”问题! 想做一个报表但设置DataEnvironment的连接失败,不知为何错? 请教!linux下将.h和.c文件编译成动态连接库!!! 你真的懂SQL语句的编写吗?快来,我给你分 重载与模板的问题 出租魏公村西口两居之一 不知哪有好一点的聊天室,各位大虾请推荐几个小弟几个!!!! jsp里面有类似于asp的response.end语法吗? 求教各位大虾,这样的数据库程序如何实现。急切中。。。。。 vb中有没有像CommonDialog选文件的定位文件夹的控件? 怎么一次性加入多个子目录中的CPP文件到VC工程中 关于pos系统数据同步传输,欢迎大家进入讨论! 怎么得到本机的ip地址? 关于package 的问题 关于打开网页的问题 怎么在文本文件中的两行中添加一行?怎么删除一行? “split”分割问题 请教:怎么配置Tomcat可以禁止访问目录 ,比如访问 http://127.0.0.1/test 不会出现文件列表? 请问怎样在对话框窗口中的Edit控件里按下Enter键后不要退出 有关dremveaver ultradev 的动态网页制作问题, 请教高手。。 在delphi中如何实现全屏?? 100分。请大虾帮忙搞定 谁有存储过程的学习资料? 怎样判断计算机上有没有装madc数据库连接,? 项目中的一个问题,急待解决,请帮忙,谢谢 无聊散分 鼠标在图片上移动所发生的事件 一个怪问题:ping得通却NetTerm不上? JBuilder中如何拖动控件到面板,位置放置的问题。(高手指教) 请问在那里有csdn helper 下载 是否可以给表的字段编号? 我想让程序启动该怎么做 这样一个项目计划怎么写? vb.net 附值问题,请教高人 一次檢索出DataSet數據存至Session還是每次DataGrid翻頁時檢索為好? 一个程序不停的写一个文件,越来越大。怎样把以前的数据拷出来然后把他们从文件里删去? 会自动关机的电脑 怎样在listCTRL中加入彩色字?Waiting Online 请问到哪里去找w2k下编译需要的头文件和库文件呀 请问各位哪里有UNIX平台或LINUX平台的POWERBUILDER下载? 吐血给分!小问题,简单的很! 请教有关ServerSocket的问题 请问到哪里去找w2k下编译需要的头文件和库文件呀 想玩网络游戏,各位给推荐一下,谢了先!!! 请各位在这里留下已知的并已解决的BCB的BUG问题,也好让大家少走弯路了,谢谢! CMOS的问题,我是XP系统! 2011诺贝尔物理学奖获得者 我为留守儿童做什么300字作文 英文我爱你,丽丽简写怎么写 学生怎么理解“塞翁失马,安知非福”.学生价值观对吗? 会作文的点一下,300字题目为《盲人和我们》,这是看图写作,图上是一个健全人垃圾乱扔,和一个盲人:他用拐杖找垃圾桶扔垃圾.2011年1月14日前给我!谁快谁分多,+20啊. 关于和谐的作文(小学六年级500字) 宇宙将变成冰怎么回事,科学家说的怎么回事? 献你一束花答案“失败和胜利对于你同样重要”的意思“让失败属于过去,胜利才属于未来”的意思快╯﹏╰ ╯﹏╰ 求电影地球人乘飞机去火星遇到了火星人,没想到火星人非常害怕地球人前几年拍一个动画片(也算是电影吧),讲地球人第一次登上火星,然后那个人把国旗插上去的时候却发现火星上面有房 抗日战争片观后感五年级 尊严 这篇课文中描写哈默外貌、动作、语言的词语有哪些 一地球人去火星旅游见到火星人,火星人说什么? 为什么宇宙膨胀会变成冰? 献你一束花的第四自然段的叙述方法是( ). 与寒假有关的英语作文,70词 要带汉语 抗日电影观后感感人的 500字 第七课尊严,描写哈默外貌,动作,和语言的句子有那些. 让我们在从今天开始早睡英语怎么说急!!!!!! 雨过天晴,会有彩虹吗?的英文是什么 献你一束花中的“她”到底是谁?急用!作者是冯骥才.有人说是桑兰,有人也说只是代表了一种精神.可是到底是谁啊? 王阿姨骑自行车3分之2小时行了8千米平均每小时行多少千米 雨过天晴有彩虹吗? 尊严 :这篇课文描写哈默外貌.快,我要写作业 王阿姨骑自行车行9千米要5分之3小时,平均每小时行多少千米?把一根铁丝不折叠的剪断,剪五次,每段都是5分之4米,这根铁丝原来长? 骡子,马和驴的关系 献你一束花的情节曲线. 小亮骑自行车三分之二小时行了16km,照这样计算 他三小时行多少千米? 谁给我把马,驴,骡子的关系说清楚,给好评 中国抗日战争纪念馆的观后感200字 赶花——原文谁有, 中国人民抗日战争纪实片观后感! 求抗日战争纪念馆观后感!急!400字--500字 《自己的花是让别人看的》小学课本原文季羡林写的 整个宇宙将变为冰会是什么样子 《献你一束花》阅读答案,45分钟之内给我,鲜花,理应呈送给凯旋的英雄.难道献给这黯淡无光的失败者?  她一直垂着头.四天前,她从平衡木上打着旋儿跌在垫子上时,就把这美丽而神气的头垂 汽车的速度是60km/时,自行车的速度是15km/时.自行车驶的速度是汽车速度几分之几? 地球人都知道!除非你是火星人!(地球人)我家是木地板,不知怎么最近发现了小黑虫,个头跟大米一般,还长着小翅膀呢!不知是否吃木板呢?怎样去除,消灭它呢?不然的话.可想而知...它有时在地板 献你一束花 答案急用~~~~~~~~~~~~~ 《花的启示》原文急求1月31日要用,有的发一下,谢^-^ 宇宙的结局是什么? 以友善为话题的800字作文 花儿年年红 阅读原文 课文献你一束花的近义词,反义词,多音字 有关友善的作文400字 1和3是反义词的成语 献你一束花"是不是这就加重了她的思想负担?"中的"这"指的是 (用原文中的话回答),但实际指的是 (用自己的话回答) 五年级献你一束花课后问题正确答案快! (在有限数列{an}中,Sn是{an}的前n项和,若把(S1+S2+S3+…+Sn)/n称为数列{an}的“优化和”,现有一个共2006项的数列{an}:a1,a2,a3,…,a2006,若其“优化和”为2007,则有2007项的数列1,a1,a2,a3,…,a2006的“优 献你一束花 以友善为话题的作文 描写人物心里活动的句子块 跨 块 块 关于家庭温馨的场面 作文 300字以上 我爱你的英文和缩写 急 设Sn为数列{an}的前n项和,Sn=(-1)^n an - 1/(2^n),n∈N*,则 (1)a3=___ (2)S1+S2+…+S100=___ 地球人的祖先会是火星人吗人类的祖先是猿人但是他不可能是从石头里蹦出来的吧.我怀疑.火星人发现了地球.但是又舍不得自己的星球,就把一些低等生物恐龙放到了地球上去生活.但是由于 谁能告诉我 [我说] 的英文简写 比如说 我说我爱你 [两个字母]我爱你那我发誓 有没有英文简写? 设sn为数列an的前n项和,Sn=(-1)^n-1/2^n,n属于N*,则(1)a3=? (2)S1+S2+...+S100=?问题如上!求助! 塞翁失马,安知非福.——佚名 的意思 抗日战争的故事有感 要800字左右 快.......... 英语我爱你的缩写是什么?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘