用户
 找回密码
 立即注册
发表于 2011-12-28 18:17:58
61650
2011年9月6日上午10:00

邓仰东 清华大学微电子研究所副教授

主持人:
各位观众朋友们大家好,欢迎收看it168访谈栏目,我是今天的主持人王玉圆,也是CUDA频道的编辑,今天我们有幸邀请到了清华大学微电子研究所邓仰东教授作客我们的访谈,为我们解读即将在北京举办的GPU技术大会,以及GPU技术的最新研究成果,邓老师跟我们的观众朋友打个招呼好吗?

邓仰东:
大家好,我是清华大学邓仰东,我从事的研究领域是集中电路设计自动化,并行计算体系结构和算法,好,谢谢大家。

主持人:
非常感谢邓老师来到我们现场,我们知道邓老师在CUDA的教学和推广领域一直扮演着先行者的角色,也是国内系统化讲授CUDA技术的第一人,所以我想问一下邓老师,您认为目前GPU技术发展现状如何呢?

邓仰东:
应该说GPU现在是一个非常热门的趋势,它怎么说呢,越来越多的应用在使用GPU,像NVIDIA也说,做的一个Project叫Exascale Computing,也叫超大规模的并行计算,可能在2018年计算能力会比现在的超过100倍,此外,越来越多的应用使用GPU,有些很漂亮的应用,比如像医疗的,特别有名的比如像美国的无人驾驶车辆,也应该使用GPU嵌入式计算,因为以前要使用10个双核的CPU,功耗很大,现在可能4片GPU就可以解决问题,有很多这样漂亮的应用。比如像并行实验室,他们将来2020年可能每一台计算机上都会有一个GPU,也会有一个CPU,当然GPU不只做图形处理,也做并行计算,GPU应该是计算机发展史上一个非常重要的步骤,一个里程碑。

主持人:
我们了解到由NVIDIA主办的GPU技术大会亚洲站,将于12月14日到15日期间在北京国家会议中心举办,这对于国内从事GPU技术的研究者,还有开发者来说都是一次不容错过的盛会,我们知道GPU技术大会之前都是在美国举办的,国内只有少数科研人员和媒体参加过,邓老师也是其中之一,邓老师能不能给我们分享一下之前在美国参加GPU技术大会的感受还有经历呢?

邓仰东:
好的,我参加过两次GTC大会,就是GPU Technology Conference,第一次是学术报告,去年有两个报告,一个是代表清华CUDA Excellent Center做的报告,另一个报告是我自己的Research,GTC是一个非常好的交流GPU技术的这么一个平台,为什么这么说呢,就是说它首先是像NVIDIA非常重视,每次GTC上会展示他们最新的产品和相关的技术,华人区会做一个很酷的报告,一般会发布很新的产品,然后他会邀请一些领先的厂商或者是研究人员和他一起展示那个产品,然后整个过程非常吸引人,这是一点,第二点就是说他组织一个很好的平台,让大家能够很好的交流,比如每个学术报告是50分钟的报告,一般的国际上这种学术会议最多给30分钟,一般是20分钟或者是15分钟的讲话,50分钟是很宽裕的时间,可以把很多事情说得很清楚,讲的和听的都比较舒服,这种机会非常难得,再一个就是集中所有关心GPU和使用GPU的专家都在这,它给很多机会进行交流,大家可以有很多研讨的机会,很多新的思想从那产生,我有一个朋友在某国外大学当教授,他说GTC是世界上最好的关于计算机的体系结构的学术会议。

主持人:
那么您认为这次在北京举行的GPU技术大会有哪些亮点呢?

邓仰东:
这刚刚了解了一下,首先第一个亮点是所谓超大规模的并行计算,可能就是我刚才说过的Exascale Computing,NVIDIA它现在首先有一个Project,是由他们首席科学家Bill Dally领导的,他们大概在单片上作出我记得应该是20倍于现在GPU的性能,我不知道他们会不会具体展示,但肯定是他们重要的趋势之一,另外一个应用方面的一个新的结果,使用GPU进行计算,我记得可能是加州大学圣芭芭拉分校,他们已经GPU做了世界上最快的基因数列分析的这样一个软件,去年在GTC美国有展示,今天在中国可能也有展示,中国科学院系统他们也做了很多这样的工作,可能我猜也是一个展示的亮点,此外当然还有很多具体的应用,比如中国的石油勘探使用GPU做得很好,想必也会是很吸引眼球的一个事情。

主持人:
我们知道邓老师来自清华大学,我们知道2009年的时候清华大学被授予CUDA卓越中心的称号,不仅开设了CUDA的编程课程,而且在大量的科学研究中都成功应用GPU技术,那么邓老师您在最近的研究中有哪些与GPU技术有关的课题吗?

邓仰东:
最近我们在做几件事情都是和GPU有关的,一件事情是说为GPU寻找最新的应用,特别是中国最近一些国防应用的,以及一些民用的应用,像软件化的雷达,一个雷达前端的天线可能是不一样的,到后面处理平台可能都是统一的,用计算机来处理,GPU提供很好这样的平台。
我们最近在做一些工作,比如把一些时空雷达做到GPU上面,大概能有比CPU处理大概30倍以上的加速,和IPG这样的专用硬件平台可能速度都能达到差不多,但是开发成本会低很多,所以这是一个很重要的应用,有可能在很大规模上部署这样的软件系统,当然随着这种做GPU应用,也发现GPU有一些缺点,所以我们也在对GPU架构进行改进,当然NVIDIA也一样,全世界的研究人员和开发人员都在对GPU架构进行改进,特别是我们希望它支持所谓的流处理,比如信号进来一系列的处理,然后在GPU上可以寻求一个流水线的形式,我们也在做这方面的工作。
此外我们希望和国家仪器他们有个著名产品叫Labview,它是针对各种数据信号处理平台进行原型验证这么一种工具,他们把Labview这种代码可以自动转换成GPU代码,CUDA代码,我们也在帮他们做这种工作,就是说用一个编译工具拿到这种比如Labview代码,它可能是数据流的一种格式,我们自动把它转化成CUDA代码,这样省去了直接编写CUDA代码的时间,这也是最近在做的工作。

主持人:
我还想问一下,您觉得在您研究当中,GPU比CPU有哪些更好的地方?

邓仰东:
GPU它最大的好处实际就是它速度快,比我们以前加速最好的结果可能能到100倍的加速,也就是电路的仿真,以前像NVIDIA,设计集成电路的时候必然有一个过程,逻辑仿真,看你设计的东西是不是满足你设计的要求,这个过程以前像NVIDIA自身用内部的超级计算机去做,这是一个很厉害的机器,大概全世界能排到前十的一个机器,他们做要上月的时间,我们最近用GPU去加速,同样我们大概能加速到30倍到100倍,主要的优势在于速度快。
从第二点,GPU它的编程显然比CPU困难一些,从研究的角度给我们很多机会,我们怎么去编程或者设计算盘,或者开发编译工具,对研究来说是一个非常好的机会。

主持人:
刚才您也说到,就是GPU技术有很多的应用,比如能源勘探、超级计算机,那么您比较看好哪个应用呢?

邓仰东:
我觉得结合我们现在自己的研究,我比较关心的是GPU嵌入式系统,所谓嵌入式系统就是说它是用于某一个目的的这样一台计算机,比如你看不见的,比如电冰箱、微波炉,都是一种嵌入式系统,现在很多新的嵌入式系统,比如像智能车辆,比如大规模的路由器,比如像手机的基站可能都需要很高的处理能力,另外就是编程能力,比如基站以前是用专用集成电路去做的,缺点是维护性比较差,升级也不太容易,因为它不能重新编程,但是我们觉得现在拥有GPU处理能力很高,同时具有编程能力,所以很多基站可以用GPU来实现,比如说基站用GPU实现有很多好处,比如基站它有一个高峰的问题,可能一天某些时候上班的时候,手机基站客户量很大,下班之后客户量就变小了,你如果硬性的靠硬件去堆是很浪费的,但如果你GPU建立集群,动态去调配这种处理的能力、处理的容量,特别是既环保成本又低的Solution,所以嵌入式应用是一个很好的未来的GPU的应用。
此外我想可能一些消费应用也会出来,以前GPU主要是用于高性能计算,但事实上人们的生活中很多应用用GPU来加速也是很好的一个事情,比如现在特别是随着GPU普及之后,现在基因排序这个工作可能在家里就可以做了,就会出现一些新的应用,比如非典的时候,当然我是瞎想,有非典的时候大家可以算一算我对非典的感染概率有多大,感染概率很低的话我就可以随便上街不用戴口罩,很高的话我就在家歇着,会有这样的一些应用出现。
我有一些年轻的朋友,他们开一家公司,做的是Photoshop加速,他们用GPU写了一个自己的Photoshop,就是说可以很炫的性能,用很快的时间就能算出来,消费的应用,还有一些嵌入式的应用是以后的热点。

主持人:
下面我们来说一下CUDA程序设计大赛的问题,我们知道CUDA校园程序设计大赛今年已经是第三界了,之前已经成功举办过两次,然后2011年的比赛正在进行中,现在是处在一个初审的阶段,凡是想要提交作品的同学,都可以在10月15日之前登陆it168CUDA专区进行报名提交作品,凡是提交的作品符合要求的同学都可以获得300元的奖励,具体的内容请登陆it168CUDA专区,或者是登陆CUDA论坛与我们在线交流,我们知道邓老师是CUDA校园设计大赛的评委,您对本届的参赛选手有什么建议呢?

邓仰东:
是这样,CUDA比赛是两次,以前非常成功,世界上最大的GPU并行计算,有些非常好的结果,像去年我的学生也得过奖,今年如果说有希望大家注意的事情就是说是一些很宏观的事情,首先是有一个域名叫do it smart,就是说你要用聪明的方式去做它,就是说技术和编程是一个很困难的事情,很多时候需要新的算法,希望大家不要硬性的去优化这个性能,尽量引用一些理论的指导,典型的例子比如说像著名的CUDA有个reduction的例子,它里面可能有七种不同的优化,其中最厉害的一种是它引用一些并行计算理论,所谓的算法级联这样的一个理论,把一些工作转成顺利的,一个线程要多做一些顺序的工作,反而提高了并行的性能,就是用这样的理论去指导大家,可能会把工作做得更漂亮。
另一条,做任何事情都是这样的,所谓的never enough,你的性能永远可以再提升,任何事情都是可以被改进的,就是说希望大家去坚持,不要满足于一点点的改进,去坚持、去挖掘里面的真正的有研究的内容,希望大家结合自己的研究,能够把竞赛顺便做成最好的研究,或许是用最好的研究结果来参加竞赛,主要的想法是这两个。
此外,还希望大家把CPU程序也写得好一点,不要写一个很滥的CPU程序,所以我们也会去看,CPU程序是不是特别初级的算法去做,如果那样的话不能那样去算加速比,我们的评价是一个整体的过程,不是说只有加速比一个目标。

主持人:
那么您刚才也提到了GPU优化,我们在CUDA社区上有一个网友问了一个问题,他说CUDA优化方面有没有什么比较好的资料,然后邓老师您在优化时常用哪些步骤?

邓仰东:
是这样的,CUDA优化的确是一个很难做的事情,现在应该说还没有特别好的书直接讨论这个问题,现在可以得到的课本是他们写的那本书是教你怎么做编程,有一些简单优化的事情,还有一本书是CUDA BY EXAMPLE,那里面大概也是类似的,但另一方面讲,程序优化实际上没有一个菜谱这样的东西,你看了就能够优化你的程序,还是要靠你的理解。实际上以前有一本书是很早以前95年左右的一本书叫《代码优化》,那本书里面其实它倒不是针对CUDA的,它是针对一般计算机的应用,那里面的优化其实很多东西是用得到的。

主持人:
可以通用。

邓仰东:
对,可以通用,具体到我呢,肯定是GPU程序首先它肯定全局内存联系特别大,优化主要是结合这个东西来做,实际上我们现在的办法是结合一些理论的办法,用一个叫做多面体分析的这样一个理论框架去做一些分析,然后基于可以优化的事情来,这样做效果看起来不错,但是主要是针对全局内存,此外Share Memory,也要优化一些,还有一些算法上的问题,当然这个可能还是没有一定之规,还要根据具体算法以及这个领域的了解,特别是要采用一些新的算法,最好的顺序算法不见得是最好的并行算法,所以大家可能要看很多的文章自己去思考,找出一个最好的优化办法来。

主持人:
目前的并行算法跟之前的算法是不是差别很大?

邓仰东:
不一定,有时候差别很大,大多数人去做实际上还是直接把顺序程序进行并行化,直接去里面找可以并行的,但也有别的例子,比如我们做这个逻辑仿真的时候,逻辑仿真的时候,以前采用事件驱动算法,基本上本质就是顺序的,找不出并行来,所以我们重新进行改造,使用了一个基于很古老的算法,80年代初期出来的算法,那个算法当时的并行计算机性能不好,结点间通信代价太好了,所以反而性能很差,我们把这个算法拿出来转到现在机器上,和现在通用的顺序算法非常不一样,性能就很好,所以这个没有一定的规律。

主持人:
都可以试一下。

邓仰东:
对,就是说Never Enough。

主持人:
还有一个网友问这样一个问题,他说频繁在显卡和内存之间进行数据传输的应用,是不是不太适合使用GPU计算。

邓仰东:
这个事情是这样的,也是也不是,是的话就是说因为CPU和GPU之间的带宽肯定是很差的,所以你要老频繁交换,写出来的程序真的是这样子,性能不会太好,但是你可以对它进行一些改造,另外就是新的GPU上也就是新的机制叫Zero Copy,它允许CPU和GPU之间少量的数据,必须少量,很快速的交换,我们也用过这个技术,效果不错,就是说CPU和GPU都在做一些事情,有一些数据必须同步一下,我们这方面也在做,基本上对性能没有太坏的影响。
另外就是它现在有一个叫异步传输的机制,流处理,GPU会把数据切成一块一块的,每一小块数据传过来GPU开始计算,GPU计算的时候CPU还在传下一块数据,这样可以隐藏很多CPU和GPU之间的通信,也是可以做的,就是说还是在于大家对算法的重新的设计和重新的组织,如果你能找到很好的方式,不见得GPU/GPU通信频繁一定不能用GPU实现。

主持人:
他还追加了一个问题,他说GPU与内存之间的数据传输通道有没有可能实现像CPU与内存之间的传输?

邓仰东:
应该说这是可能的,比如现在黄仁勋,他已经宣布了一个叫Denver Project,就是丹佛计划,他的意思是说把一个ARM CPU的核集成在GPU上面,这个ARM核可以启动一个操作系统,这样子的话所有的内存就是GPU内存了,就是说你和内存之间通信也变成CPU和GPU,现在的CPU和主存之间通信一样,肯定是可以做到的。
另外我们其实在去年也做过一个这样的工作,我们尝试把一个GPU和CPU集成在统一的架构里面,之间会有一套机制同步上,肯定是可以实现的,而且这样做之后性能经常可以直接提升五到六倍,一样的程序立刻提升五到六倍,所以将来一定是可以实现的,而且是不远的将来,可能五年之内一定会有相应的东西出来。

主持人:
其实这就相当于把CPU跟GPU融合在一起用了。

邓仰东:
对,实际AMD已经有一个芯片叫APU,它实际上已经把CPU和GPU做到一个芯片里面去了,但是Memory还是分开的,这已经表现出一个趋势,就是说大家一定会做这件事情,只不过现在比较仓促去做的,它可能是集成,但是并没有实现逻辑上的集成,但下一步可能就是说真正的所有的通信体系、通信架构都会集成到一块。

主持人:
那么我们还有一个问题想要问一下邓老师,就是说目前有没有系统的讲解GPU是如何实现通用计算的这样一个资料,还有就是它的硬件结构是怎么样的?

邓仰东:
现在系统的书其实最好的还是NVIDIA出版的叫CUDA Progranmming Guide,优化他们也有一本类似的电子文档,叫Best CUDA C Programming Practice之类的,我记忆上可能有刚才说的胡美文教授,他们俩写的一本书教GPU通用计算的,基本上把他们在UIUC大学讲课的讲稿写成一本书,国内的话,我们在和中国高性能计算中心,还有高教出版社在做一本GPU通用计算的教材,今年可能还不能出版,明年可以出来了,会有这样一本书。
此外如果说GPU架构,可能直接的书还没有,就是说也有一些书,中国有一些年轻人,比如像赵开勇他们写过一本书,已经出版了,可能叫CUDA Programming,中文的,那这本书里面会有一些关于GPU硬件的内容,但比较深入的GPU硬件的没有直接书的事情,但有很多论文,大家可以去查,尤其是NVIDIA首席科学家Bill Dally,他写过几篇文章,关于GPU架构的文章是有的。

主持人:
感谢邓老师接受我们今天的采访,我们在未来的两个月内还会连续对GPU技术的专家以及CUDA设计大赛往届的获奖选手进行采访,欢迎各位网友在CUDA论坛上进行提问,非常感谢您今天的收看,我们下期再见。

邓仰东:
好,谢谢。
(结束)

使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册