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

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

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) 随时关注硬件发展

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

VB6制作Win98风格的工具栏 VB实现窗口的弹出式菜单 用VB做个漂亮的进度条 Cool 3D 浮動按鈕的模擬作法-VB资料 VB 5.0中实现鼠标拖放 VB5.0下工具条的制作 VB5.0中基于桌面的屏幕技巧 VB5.0中实现字体闪烁效果 VB5实现窗口图像缩放、滚动技巧 VB6.0动态加载ActiveX控件漫谈 VB编程步步高-表单篇 VB编程常见问题 VB编程中如何锁定鼠标 VB创建位图菜单 VB实现按钮浮动效果 VB应用程序中的工具提示和状态显示 VB中处理长列表框项的两种方法 VB中多级下拉列表的实现 VB中防止将重复项目添加到列表框控件中 VB中实现菜单分割 VB中实现带预览的对话框 VB中实现同一窗口的多个实例及控件的动态增减 VB中阴影字体的实现 VB自定义数据结构的传输转换 Visual Basic 窗体背景花纹的实现 Visual Basic 中的界面设计原则和编程技巧 Visual Basic 中文本框处理技巧集萃 Visual Basic 中字符淡出淡入的实现 Visual Basic窗体背景花纹的实现 Visual Basic下工具条的制作 Visual Basic中的界面设计原则和编程技巧 我在SQL2000中有个字段类型是SMALLDATE,与CEDIT控件联结后,类型是CTIME,但显示不出? 我该怎么学? 怎样让我的程序运行时,始终在最前面 散分!!!回到CSDN!! 经常在运行屏幕保护时VC6.0 就出现了运行错误 嘻嘻~`问同学借了一台数码相机回家,自已拍了几张房间里的照片.大家有兴趣的就去吧!小A房间大暴光 请众位大侠,能不能强烈的推荐一本关于Delphi入门级的经典著作!谢谢了!推荐者必有分 请教! 关于Win32下的字符串操作 菜鸟提问,估计大家都会,指点一下 为什么我用ie的时候,新打开一个页面,他的还原形式的大小总是最小化的? var oXL = new ActiveXObject("Excel.Application")这句话有什么问题? 高分求算法 如何根据IP来得的到对方的操作系统类型 怎么这么老套,大家想想办法啊! 我要学DirectX了,请大家帮忙找一些这方面的资料。 关于出错信息的问题,多谢指教! Csdn,为什么你现在不忙了! asp.net的优点到底在哪里 大家能否推荐几本无线应用方面的书(如:短信编程、WAP编程), 谢了! 最基本问题 哪位写过控制摄像头的例子, 如何使用XP的远程桌面管理?远程控制. float 5.29 显示出来会是什么? 要不要学c++ 不能保存文件了,怎么回事? CString的一个问 在vs,net中创建用户控件和组件有什么区别? Lotus Notes and Domino与LOTUS 1-2-3有什么差别? 问路 JBuilder中类找不到 Montaque,看到后请进,问题有点菜,但希望你尽快回答! 大家帮帮我啊谢谢 private的意义是什么呢? 这是怎么回事啊,经常遇到的问题 请问windows编程和windows网络编程哪种编译器最好 新手提问--初装redhat7.2问题多多 请问如何在iis中提供证书认证?急! ASP.NET能不能用记事本写?! ??如何获得在DataGrid控件中选中一条纪录的消息?? 在win2000上调试好的程序,为什么到了xp的iis下面关于access数据库写入的页就打不开了? 不通过键盘,不通过初始化,不用SetWindowText(),如何向一个编辑控制加字符串 maya里的动画如何渲染? 数据库中的超键是什么意思? 组件如何发布? 一个小问题(请斑竹不要删) 菜鸟提问:怎样才能在编程中把一个数据库生成一个HTML文件! long型能转换为int型么? datagrid中RadioButtonList被自动选择问题? c#中如何比较两个string的大小,如"AB">"AA" return * this 问题 人口过快增长会给国家造成哪些压力?人类的哪些活动会导致水污染?如题 many,much的最新反义词是什么much 不是 little many 不是few除了这个还有什么 蛇的牙齿有毒吗?蛇的牙齿有没毒!他的毒液是从牙齿里输出吗? 用一般现在时介绍你和家人是怎样度过春节的(英语)急,急,急 各位精通英语的哥哥姐姐们, 弟子规圣人训什么意思急用帮帮忙 想找一些英语的动画片,最好有剧本 春节用英语对家人说的一句话 弟子规是儒家的吗?它的里面有一句:圣人训:的圣人指谁?又有什么关系呢? 有人知道美国动画片《新三只小猪》的英文剧本? 弟子规总序的第一章是从哪到哪啊 弟子规,圣人训,下一句是什么 造句,有水平点幸福是贫穷中相濡以沫的一块糕饼,患难中心心相印的一个眼神.仿写这个句子 第六题, 弟子规圣人训 背面滑滑黑色,腹部黄色的小蛇是什么蛇,有毒么? 第六题 弟子规,圣人训 神学(包括上帝,佛,道)除了心理上(可以归类为心理学哲学)到底能不能给个人以实际的帮助 弟子规内容 东阿拉伯语的朋友帮我看看这是什么意思 是否可以推荐一些神学、哲学、心理学的书籍?(与EVA挂钩的) 第6题, 哪位朋友帮我看看这两句阿拉伯语什么意思? 心理学和哲学,在学术上结合得紧密么?它们是怎么结合的? 弟子规谁有 整样捉有毒的蛇要安全!能否再详细一点 英语翻译我有格朋友在国外,英语不好,请问有能直接翻译整句汉语的发音词典啊? 2012年世界末日电影?2012年世界末日电影 哪里可以看?不要预告片 刚才抓了一条蛇,不知道是否有毒,请问是什么蛇? 为什么会要求具备这三种学问:哲学、心理学、金融学.而且重要性是这样依次排列的. much的反义词 请问一下这是什么蛇,在家里抓到的,有毒没毒? 1英汉双解高级词典是不是分别用英语和汉语解释一个英语单词2《中学英语语法》在市里的新华书店能买到吗 very much 反义词 抓到条蛇, 中西方文化的矛盾以前喜欢中国古典文化,现再则更倾向於西方文化,注意:是倾向一些,更注重的还是中国文化,比如说:以前喜欢故宫类型的建筑,现再比较喜欢欧州建筑风格等等等等……… too much的反义词?太少?有too little这种表达吗?顺便帮我讲一下little、less、much的用法吧~ 哪里有弟子规全文 "随便"的英语怎么说 和家长的对话写—遍150多字的作文. 弟子规 全文全文,尽量有翻译(谢谢) "我们离得好远"用英语怎么说 这个英国男孩姓格林名叫汤姆英语怎么写?这个英国男孩姓格林英语怎么说我的意思是整句话的意思 弟子规多少为一则 要弟子规的全文,坚决不要它的意思.有意思的不给分.好的多给. 请问广大网友哲学里的"范畴"是什么意思?在哲学里"范畴"这个词常常出现,但我就是不知道它的确切涵义,望广大网友帮帮我. 弟子规里面的一个问题弟子规 圣人训 首孝悌 次谨信泛爱众 而亲仁 有余力 则学文出 则 悌为什么经常有人把这个悌打成弟字?仅仅是因为打错了? 《苏菲的世界》 中按顺序分别提到哪几个哲学家、谢谢哈~~ 什么是哲学范畴 全国大学英语四级评分标准 各个题几分 苏菲的世界中苏菲和席德到底是怎么个关系啊?苏菲就只是席德的爸爸写的小说中的人物?席德的爸爸为什么那么神奇? 英语四级的每大题分值是多少 09年英语四级的评分标准是怎样的啊?09年英语四级的评分标准,就是每道题的每个小题多少分. 在《苏菲的世界》一书的最后,那本书已经结束了,为何还有关于苏菲与艾伯特的故事继续呢,请教作者是何用有没有比较权威的答案? 请写出四种会导致水污染的人类活动 CET4的每道题目的评分标准是怎样的? 为什么蛇的牙齿会有毒?还是最毒的,而人为什么没有 大学英语四级的每大题的分值各是多少每题的具体分值 求高手写以家长的角度写一篇作文主要内容是孩子入学考试时成绩中等、通过老师、 、 、 、的栽培在第一次月考中取得优异成绩、表示感谢、对学校高效课堂的学习方式表示赞赏.再在结尾 请问这是什么蛇,有毒么,现在还是幼蛇,还没长牙,应该怎么饲养,喂些什么,现在小蛇不张嘴吃东西,应该怎么灌喂
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘