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

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

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

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

直接改应用!Flipboard开源iOS应用内调试工具FLEX 专访腾讯游戏运营总经理崔晓春:云时代游戏运营的变革与创新 嵌入式专家Bruce Douglass经验谈 门票销售过半 从2014微信开发者大会购票者特征说起 当来自金星的Devs碰上火星的Ops——共话应用扩展 移动平台市场占有率:Android首次赶超iOS 豌豆荚范怀宇 I/O大会总结:Android无处不在 轻博客始祖Tumblr:哈希以支撑2.3万Blog请求/秒 《近匠》FIR.im:简单易用的内测分发工具 传苹果公司将于9月9日召开新一代iPhone发布会 近百家微信开发商参与征集评选活动 TOP10正浮出水面 Java程序猿,手游引擎怎么选? MDCC 2014优秀移动团队免费展位火热申请中 【微信讲师面对面】你在企业服务号开发中遇到的坑和难点 五个解决方案让MongoDB拥有RDBMS的鲁棒性事务 浅谈Apache Spark的6个发光点 安卓 “假ID” 签名漏洞,竟然骗过了支付宝和360 从Social到Big Data,移动App蚂蜂窝转型推新品 《近匠》nice曹大鹏,从男装导购到潮人社区的心路历程 DevOps扼杀的不是开发者,而是开发生产力! 利用Docker构建开发环境 Netflix公布Cassandra新性能:基于AWS的百万次写入每秒 一周消息树:谷歌Android遭遇“颠覆”危机 微软发布新应用Snipp3t,iOS平台首发且无Windows Phone版 TOP10优秀微信开发商随后揭晓 2014微信开发者大会开幕在即 8月12日:PC鼻祖IBM 5150迎来33周年 平板创作3D展现:蒙特利尔大学发明Hyve-3D设计系统 Quick Charge技术解析:关于手机快速充电的那些事儿 性能分析十八招,你用哪一招? 流程在企业内的作用及成熟度 Gartner:至2017年Chromebook销量将增2倍 确认页面问题。 AfxMessageBox话框标题问题 不是我重复,只是这个问题让我发疯,旦求解决这个问题,死而无怨 smtp认证发信的源代码 在DLL中如何知道自己父进程(ParentProcess)的路径和文件名? cview里的precreatewindow和cframewnd的precreatewindow应该调用那个? 如何在dw4中给已做好的FLASH动画加上超链接? 关于Jmail组件的问题! 袁飞请进! redhat linux下jbuilder安装问题!!!帮帮忙!! 怎样得到一天的起始时间,例如:今天是2001-11-1,则我希望得到:2001-11-1 00:00:00 求教CEditView 华硕P2B主板怎么装联想商博士6xxx的内猫,猫是好的,可插上后怎么也找不着,怎么办? CSDN的服务器太差劲了!老是结不了分的! 有没有第二种方法加入2000的域呢?(详见正文) 时钟的实现初始化问题?? 我今天买了一本,这本书如何? 那儿有perl for win32的开发资料下载的! 我想知道鼠标在COMBOBOX上移动时所处的选项,在LISTBOX上可以实现,在COMBOBOX上如何实现,它没有MOUSEMOVE事件。 请问怎样自动捕捉网格啊? 定义以下变量,并以赋确定的值:char w;int x;float y;double z;则表达式:w*x+z-y所求的值的数据类型是什么 为什么我的treeview 值都成了双份的呢??? 哪人在线观看的源代码?比如:CIH,I LOVE YOU 怎样自动捕捉网格啊? 本人就快作毕业设计了,想作个vc项目,大家给我点意见吧! 怎么把CByteArray型数组转换成char*型. 关于纯资源DLL的问题! 超难问题:如何将一个EXE转换成SWF? 关于PHP程序员工资待遇问题的讨论! 网页中嵌入ActiveX控件,遇到的问题。 问个比较简单的问题:关于ASP上传的 送分啦~~~~~~~用什么方法可以获得鼠标的移动到那里的句柄(包括窗体和环境),就向SPY++里面的findwindows一样的功能 关于vb数据库的问题,请教了!!!!! 1982.12.12,2001.12.12是19岁生日还是20岁生日? 寻找调查投票程序,66分 在printf格式字符串中,用于输出字符串的格式字符是什么? 哪里有这样的jsp程序 轻松一分钟,统计一下看流星雨的程序员们是单身还是成双成对? c语言程序的基本单位是什么? 是什么原因产生stop:0x0000001e故障的,有办法解决吗 如何虚拟键盘输入?急!!! 请问怎样才能将用户选择的行或列在打印预览窗口中? 如何获得所运行的进程列表 设i,j,k均为int形变量,执行下列语句:for(i=0,j=10;j<=j;i++,j--)k=i+j;则k的值是多少? 怎样把kv3000解密到一张软盘????? 是高手的进来赚点分(全给) delphi中如何定义过程与函数,请帮我各写一行带参数与不带参数的例子, 有谁用过EXPRESSO开发过JSP吗 如何在MTS对象中使用现有控件? 求救!!!WINNT 4.0下无法显示中文! 请各位指导,如何查出QQ的区IP地址? 已知sin求cos怎么求如题 甲圆的半径是乙圆的4倍,甲圆的周长是乙圆的( )倍;甲圆的面积是乙圆面积的( )倍. 苯甲酸钠和山梨酸钾两个哪个当防腐剂更健康 Sin15度=cos多少度 甲、乙两个圆,甲圆的直径等于乙圆的半径.①写出甲、乙两圆的周长比.②写出乙圆和甲圆的面积比甲、乙两个圆,甲圆的直径等于乙圆的半径.①写出甲、乙两圆的周长比.②写出乙圆和甲圆的 什么酱油不含苯甲酸钠和山梨酸钾 甲圆的面积是乙圆的3分之1,甲乙两圆的周长比是多少 计算,sin75°*cos75°= 防腐剂,苯甲酸钠、山梨酸钾在我国还是被允许使用的是吗?不被允许使用的食品添加剂,防腐剂有哪些? 若甲圆的周长是乙圆半径的三分之一,大圆的面积是763.02平方厘米,小圆的面积是多少平方厘米? 学校开联欢会 买了水果糖9千克 买的奶糖是水果糖的三分之二 又是酥糖的四分之五 学校买了酥糖多少千克 ?为什么除以四分之五 那块不明白 求讲解 甲乙两圆的周长比是4:5,两个圆的面积相差2.7平方分米,甲的面积是() sin15° 学校开联欢会,买了酥糖12千克,买的水果糖是酥糖的四分之三 ,是奶糖的12 ,买了奶糖多少千克? 山梨酸钾和苯甲酸钠如何鉴别如题,从化学的角度如何鉴别这两者请从从山梨酸和苯甲酸各自的功能基团的角度,谢谢 以在食品中做添加剂为主,纯品的用焰色反应就够了是吧? sin15度cos165度的值是? 学校开联欢会,买了酥糖12千克,买的水果糖是酥糖的四分之三 ,是奶糖的二分之一 ,买了奶糖多少千克? 食品中的苯甲酸钠的测定 有什么标准吗? 求sin15°+cos165°的值 甲圆的半径等于乙圆的直径,甲圆的周长是乙圆的( ),乙圆的面积是甲圆的( ). 食品中苯甲酸钠如何测定(主要是样品的处理不会) sin15°*cos165°= 求解答 甲圆的半径等于乙圆的直径,甲圆的周长是乙圆的[ ].乙圆的面积是家甲圆的【 】 如果两个圆的面积比是1:9,呢么两个圆的周长比是 有一批糖果,每袋装二分之有一千克,装4袋后,才装完这批糖果的五分之四,问这批糖果共有多少千克 甲圆的半径是乙圆的3倍,甲圆的周长是乙圆的______,甲圆的面积是乙圆的______. sin75°两角差的余弦公示求 现在有相同只数的大袋和小袋装248千克的苹果已知每只小袋装1千克每只大袋装苹果的重量比小袋的2倍多1千克它们各有几袋 甲圆的半径是乙圆的4倍,甲圆的周长是乙圆的[ ]倍,甲圆的面积是乙圆的[ ]倍. 苯甲酸钠在食品的比例怎么用? 为什么9^9/9^99=1/9^90它是如何约分的?约分的原理是什么? 向某0.5mol/L的ALCL3溶液100ml中加入一定量的1mol/L的NaOH溶液,得到3.12g沉淀.问:加入的NaOH溶液可能是多少毫升? 苯甲酸钠是什么东西 一个圆的周长是75.36厘米,这个圆的面积是( )平方厘米? 90分之81约分是多少,怎么约分 食品级苯甲酸钠和药用级苯甲酸钠有什么区别? 把5g食盐倒入20g水中,这份盐水的含盐率是25%. 一堆马铃薯6025千克,已经装了40袋,每袋装85千克,剩下的平均每袋装87千克,还要装多少袋? 向10毫升1mol/l的Al2(SO4)3溶液中加入1mol/l的NaOh溶液求:(1)当沉淀的量达到最多时加入的NaOh溶液的体积 (2)当沉淀恰好完全溶解时加入的NaOh溶液的体积 12000平方米等于多少公顷 一千克的蛋糕白砂糖要0.25千克,一千克的蛋糕鸡蛋要0.4千克, 向20mL 1mol/L Al2(SO4)3溶液中,加30mL NaOH溶液(1)反应中生成沉淀质量的最大值可能为多少?(2)充分反应后,得0.78g沉淀,求NaOH溶液的物质的量浓度可能是多少少? 是实验室需要0.1mol每升的氢氧化钠溶液100mL,现有2MOL每升氢氧化钠溶液. 计算所需2M是实验室需要0.1mol每升的氢氧化钠溶液100mL,现有2MOL每升氢氧化钠溶液.计算所需2MOL每升氢氧化钠的体积.(2) 一个鸡蛋多少千克,又是多少克,多少个几鸡蛋一千克谢谢了, 甲乙两个圆,甲圆的周长是9.42米,乙圆的面积是94.2平方米,甲圆与乙圆的半径之比是()两个圆周长的比是5:8,直径比是()半径比是()面积比是()?半圆的半径是d,周长是()面积是()?用 计算:cos15°sin15°=? 用分部积分法, 今有0.1mol/L的Na2SO4溶液300mL,0.1mol/LMgSO4溶液200mL和0.1mol/L Al2(SO4)3溶液100mL.这三种溶液;硫酸根离子浓度之比是多少?问题很长,百度不让发.问题就在这里了要详细的解答步骤哦我们很多同学都算成3 包装工人一共要帮装240千克水果糖,每袋包装四分之一,已经装完了四分之三,已经装完了多少袋 我是一名高中生,每天为了方便,在铁饭盒里放保鲜袋,就是那种透明的,仔细看还有许多小孔的,然后去打热饭菜,知道塑料受热分解会释放致癌物质,长期这样做好吗? sin75度= 一共有240千克水果糖,每袋装四分之一千克,才装完了总量的四分之三,已经装完了多少袋? 一共有240千克水果糖,每袋装4分之1千克,4位工人用了3小时装了4分之3,他们已经装完了多少袋? 求解答316分之88约分和36,28的最小公倍数 一共有280千克的水果糖,每袋装四分之一千克,已经装完了这些糖果的四分之三,已经装完了几袋 sin75的理论计算值写出计算过程 人一天需要摄入脂肪、碳水化合物、蛋白质各多少g 如果要减肥的话,脂肪、碳水化合物和蛋白质的摄入不能低于多少g 一共有240千克水果糖,每袋装四分之一千克.可以装多少袋?如果只装了四分之三,你知道装完了多少袋吗? 甲圆的半径是乙圆半径的3分之2,甲圆和乙圆的周长比是多少?乙圆的面积和甲圆的面积比是多少? 苯甲酸钠和山梨酸钾能混用吗?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn