POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 75134|回复: 257
打印 上一主题 下一主题

您认为CUDA技术最终能让我们电脑发展走向GPGPU计算时代吗?[NVIDIA达人挑选赛]

[复制链接]
1#
发表于 2009-7-5 00:16 | 显示全部楼层
目前的情况看,CUDA 在GPGPU 领域是暂时领先的,但是问题是,GPGPU 是否需要这样的领先,特别是CUDA 的发展方向是否正确。从nVidia 的规划看,CUDA 在HPC 领域推广最不惜血本,对于某些用户,白送一套理论峰值128T 的S1070,如此的大手笔,今年实在罕见,不过从HPC 这个领域看,很不看好。
CUDA 面临几个方面的问题:
首先是算法适应性,大部分HPC 算法,数据吞吐量大,对于CUDA 架构来说,当数据大量通过PCIE 传送,整体效能会非常低,这不仅仅是CUDA 的问题,任何GPGPU 的结构,都无法解决;
其次是计算精度,多数的HPC 算法,要求双精度,甚至四倍精度,而CUDA 仅仅提供单精度非标浮点,在若干次迭代后,结果误差累计会比较大,无法满足计算要求。在我们做的一些理论化学计算中,CUDA 的误差高达7%极限情况达到15%,远远超过0.3%的误差许可。
第三是移植复杂度,目前的CUDA 程序,以一个3000行的MPI 程序为例,移植到CUDA 上,需要2个熟练的CUDA 程序员,三个月时间,而针对不同的CUDA 设备,优化工作还需要从做,这对于CUDA 软件的开发和维护成本是不可想象的。即使在国内,维护一套CUDA 软件,也是多数单位无法承担的。
Intel 在年底会发布CT 的beta 版,我们已经拿到并测试,同时通过Intel 方面,拿到了一些Larrabee 在我们用到算法的实测数据,基本结论如下:
1. CT 的开发维护复杂度,大致是CUDA 的1/5 甚至更小,后期升级系统维护的成本,基本上是0。比较显著的例子是CT 一段15行的程序,CUDA 大致需要90行来完成。
2. Larrabee 的性能效率最高可以到57%,平均42%,CUDA 则最高45%,平均19%,二者完全不是一个量级的产品;
3. Larrabee 的单精度累计误差较CUDA 低一些,最高3%,极端情况下可能到5%。
就上述的数据,我们和ARSC 的朋友交流,他们也确认了类似的结论,我们共同对明年Larrabee 上市表示了期待,他们有希望在明年年初拿到测试板,比预计晚了四个月。
除了HPC 外,CUDA 在桌面个人程序上也有一定进展,包括CODEC,这方面由于nVidia 的持续投入,已经有很明显的效益,如我之前所说,CUDA 软件的维护升级可能会消耗一些人力,很难说nVidia 是否会持续投入下去,软件开发商是否有意愿维护这部分代码。
CUDA-PHYSX 是nVidia 自己的产品,理论上不会受到影响。
目前,我们还在维护用到的CUDA 相关代码,但是已经基本暂停进一步的开发,主要精力转移到CT 上,如果Intel 愿意,CT 的支持面会非常广泛,这对于从事计算密集型研究的人来说,都是好事。
回复

使用道具 举报

2#
发表于 2009-7-5 08:18 | 显示全部楼层
CUDA 是一种从硬件体系结构,到软件编程结构的概念。
体系结构理论上是软件和硬件的结合,对于many core 来说,很重要的是可编程性问题,CUDA 的软件支持,解决了对CUDA 架构硬件的可编程性问题,但是暂时CUDA 的编程优化的难度还非常高,一般要求有较多经验的程序员做。
CUDA CBE CT 都不是,或者不仅仅是指令系统。
CUDA 也谈不上落后,不过要改善其可编程性,可能要对软件支撑环境做比较大的改变,并有新的方法来解决其优化问题,很重要的问题是,硬件架构需要有什么样的变化,是否符合nVidia 的战略规划,是否依旧能够在GPU 上保持较高的效率。
Larrabee 做GPU 是副业,而GPU 做GPGPU 也是副业,二者的目的不同,Larrabee 做GPU 是摊薄开发成本,提高市场的生存能力,GPU 做GPGPU 是为了拓展市场,这两方面在GPGPU 市场必然会有竞争,我想和GPU 市场竞争的态势类似,更专业的,会有一定优势。
从体系结构的角度,越专越强,但是从商业的角度,越博越廉,当many core  成为一种潮流,GPGPU 可能逐步走向衰落。
回复

使用道具 举报

3#
发表于 2009-7-5 16:11 | 显示全部楼层
拿PHYSX 来说明CUDA的可编程性没有多少意义,多数支持PHYSX 的游戏,根本不牵扯CUDA 的编程,仅仅利用PHYSX CUDA 提供的API 做计算而已,未来还会有OPENCL CS 可以用来调用,从高层逻辑隐藏CUDA 的复杂性是可能的,但是GPGPU 的目标恐怕不是仅仅提供一个调用接口,否则就不用叫GPGPU了,BROOK已经做得相当好了。
CUDA 通过从硬件结构到软件架构一整套解决方案,提供了可以控制的,一定效能基础的,相对较好的可编程性,至于这个解决方案,能否使GPGPU 成为计算的主流,目前我感觉基本上没什么希望。
Larrabee 和CT 的出现,可能会成为GPGPU 的主流,唯一的问题是,那时候的GPGPU 可能就不是GPGPU 了,而是Many Core 计算时代。
HPC 领域,Many Core 和异构计算无可置疑是未来几年的主流方向,民用服务器和桌面领域,会晚一些,迟早的问题。
回复

使用道具 举报

4#
发表于 2009-7-5 16:26 | 显示全部楼层
38# iverlin
Larrabee 也不仅仅是一个处理器,也并非仅仅针对服务器领域,从目前的消息看,至少比G300 进度要乐观很多。经过两次流片,现在的主要问题还是软件驱动,CT on Larrabee 目前也处于测试阶段。
我来解释一下CT 是什么,CT 首先是一种C 语言的并发程序设计标准,是一种C语言扩展,实现上,是一套源代码,一套编译器,运行时自动在不同的处理器平台并行化,换句话说,今天写的程序,今天编译,对于Intel 未来的Many Core 或者Multi Core 都可以直接运行,运行的效率,由Intel 开发的RT 支持决定,这和CUDA 相比,实在是天上地下的差别,对于做计算应用的开发人员来说,如何选择是很容易的。
目前科学计算软件,大一点的,代码量超过百万行,用CUDA 改写再调优,恐怕这个工作本身就会消耗数以千计的人年,未来硬件架构的变化,未来计算规模的变化,都可能影响这几千人年的工作,这是任何软件公司都无法承受的,对于这样的项目,CT 很明显是更好的选择,也许是目前能够看到最好的选择,所以保持观望的人非常多。中科院在IPE 采购了800+TFlops 的Tesla 后,又设立基金鼓励使用IPE Telsa 并购买GPU 系统,申请者寥寥,多数开发者试水后,基本是保留态度。
回复

使用道具 举报

5#
发表于 2009-7-5 21:51 | 显示全部楼层
43# iverlin
不仅仅针对服务器领域,请完整理解我的话。
Larrabee 面向的是包括游戏显卡在内的众多领域,至于价格,基本上是主流GPU 的水平,不过有可能会在驱动或者显卡硬件做一点手脚,做显卡用,不能完全发挥性能。
Larrabee 已经经过了两次流片,硬件设计包括后端,基本凝固,进度上,G300 离这个目标还很遥远。
我们现在的比较是Larrabe 24c 800M 和i7 965 做对比,单精度amber 变换 上可以做到10倍左右加速比,和S1070 做得差不多,而精度要强一些。
要知道,CT on Larrabee 我们只用了一个星期就完成了代码移植,而CUDA 我们做了近3个月,二者差距多大,不言而喻。
以CUDA 来说,CUDA 能够做到的,Larrabee CT 可以做得更快更好,开发难度更低,而Larrabee 在GPGPU 领域做不了的,CUDA 一定也做不了,CUDA 做不了的一些算法,Larrabee CT 仍然可以做得很好,我想这就是二者目前的基本比较了。
另外,我好象没有看到任何你用CUDA 做的例子,能脱离空想说点实在的吗?
回复

使用道具 举报

6#
发表于 2009-7-5 21:55 | 显示全部楼层
44# tomsmith123
另外,Larrabee 不是救世主,聚合计算能力1G 的Larrabee 24C 也只有1.5T 单精度,这和大约120G 的I7 来说,至少不是天上地下的差别。
回复

使用道具 举报

7#
发表于 2009-7-5 22:33 | 显示全部楼层
47# iverlin
龙芯3 今年6月第一次流片完成,你的龙芯流过几次片从何说起?
如果G500 出来,Larrabee 没有上市,我输你1万人民币,否则你输我1000人民币,你觉得如何?
说话尽量负责一点,不要信口开河。
回复

使用道具 举报

8#
发表于 2009-7-5 22:47 | 显示全部楼层
50# iverlin
龙芯2F 已经上市了,所谓龙梦就是用的龙芯2F,目前流片的是四核的龙芯3,计算所原计划6月下旬给我们一批样片,因故推迟了。
回复

使用道具 举报

9#
发表于 2009-7-5 23:02 | 显示全部楼层
52# iverlin
这篇应该是CSDN 上介绍CUDA 的入门贴。
用CUDA 写程序本来不难,但是写好就太不容易了。
回复

使用道具 举报

10#
发表于 2009-7-5 23:08 | 显示全部楼层
54# 玉清
抱歉,这样的帖子看得比较多。
不过我实在看不出哪里是新意。
回复

使用道具 举报

11#
发表于 2009-7-5 23:14 | 显示全部楼层
56# 玉清
至于你提到的60倍加速比,参照系统是什么?使用的平台是什么,能大致说一下吗?
回复

使用道具 举报

12#
发表于 2009-7-5 23:22 | 显示全部楼层
58# 玉清
哦,我想数字恐怕有不少问题。
理论上,2G 的X2 大致有10-18GFlops 的性能,96GT 大致是200-220GFlops 单精度的性能,也就是说,理论上二者差距也仅仅是不到20倍,当然,如果你在X86 上性能不高,GPU 上发挥到极限,也不能排除有这样的结果。
目前单精度看,最好的GPU 是最好的CPU 的10倍左右,而实现GPU 高效率,难度远远高于CPU。
回复

使用道具 举报

13#
发表于 2009-7-5 23:46 | 显示全部楼层
60# 玉清
加速比达到多少,看参考系统是什么。
研究CUDA 研究得最深的UIUC,Hwu Wenmei 和我们交流的时候,他是这么说的,目前CUDA 更多是寻求建立某种事实标准,在性能和加速比上,不能过多苛求。CUDA 是解决了编程的问题,至于解决到什么程度,看未来的发展。

单核CPU 在SSE 的情况下,是很容易达到7,8GFlops 的实际性能的,而GPU 而言,1TFlops的理论性能,实际算法中,达到50% 可以成为完美。
坦白说,如果96GT 能够达到3G X2 的60倍加速比,我想计时出故障的可能性非常大。
回复

使用道具 举报

14#
发表于 2009-7-5 23:59 | 显示全部楼层
62# 玉清
国内其实CUDA 的研究和开发,完全没有展开,浪潮OEM Tesla,请的顾问是赵开勇,至于CSDN 的竞赛,抄袭,调用现成库,虚报加速比,也不能说太多。
回复

使用道具 举报

15#
发表于 2009-7-6 11:55 | 显示全部楼层
65# 玉清
中科院主要是李静海在推,IPE 目前的机器用得就很不好,基本没有应用在跑,路甬祥用院长基金鼓励CUDA 的开发,情况也不好,李静海向科技部汇报是很美好的,但是实际情况,葛巍最有发言权。
回复

使用道具 举报

16#
发表于 2009-7-6 12:00 | 显示全部楼层
71# iverlin
就实际性能和理论分值的比例来谈效率,很明显是GPU 要低。
GPU 的特点是从晶体管效能,功耗效能,die size 效率,要高于CPU。
CPU 的单线程性能远高于GPU,GPU 是理论聚合性能高。
回复

使用道具 举报

17#
发表于 2009-7-6 14:01 | 显示全部楼层
77# iverlin
CUDA 目前可以用在大约30%的计算上,其中性能比相同价格CPU系统 强的情况,只占30%的40%,大幅度超过相同价格CPU 系统的,大约是30%中的20%,也就是说,以CUDA 为例,对于约6% 的计算负载,有比较显著的加速效果,代价则是开发复杂度的提升,开发成本的上升,后期代码维护的复杂度高。
基于以上原因,大规模向CUDA 移植的商业计算软件,比如FLUENT,NASTRAN,基本还没有,少数软件的局部模块试水,并不能改变应用的全局状况。
回复

使用道具 举报

18#
发表于 2009-7-6 14:42 | 显示全部楼层
80# iverlin
Larrabee 如果不面向桌面和个人计算,就不会做GPU了,直接就是个many core 产品,现在就可以上市了。作为主流显卡定位的GPU产品,你感觉它离普通消费者还有多少距离?
CUDA 进入大学已经是很早之前的事情了,UIUC 今年已经第三年开GPGPU 的课程,有些学校开了CUDA 已经停开了,国内来说,都是跟着走,现在用还没用起来,推广就更不必说了。
我强调的始终是实用性,脱离实用性,盲目做CUDA 的移植,问题会非常多。
07年开始,华尔街就有不少公司巨资研究CUDA 的实用性,期望通过CUDA 来提高风险模拟的效率,有一家投行和nVidia 合作,投入1000万美金,在08年一无所获,最终尴尬收场,当时的结论是CUDA 在这个方向的效能优势不明显,而开发周期太长,不实用。
忽视开发的复杂度,忽视CUDA 算法适应性的问题,忽视CUDA 计算精度的缺陷,盲目投入CUDA 的开发,最终只能买个教训。年轻学生头脑发热问题不大,决策者头脑发热,就只能自食其果了。
回复

使用道具 举报

19#
发表于 2009-7-6 16:02 | 显示全部楼层
83# iverlin
给你复制一点WIKI,你看看Larrabee 到底是什么。主流一块显卡的价格,昂贵吗?
LarrabeeIntel正在研发中的显卡,预计会在2008年第三季推出样本,而会在2009年正式发布。与现时的显卡不同,它是建基于x86架构,内有多个称为IA的核心,数量亦可以随意增加或减少(12-32个),官方报称浮点性能可达到TeraFLOPS级别。此外,还有矢量处理单元,用作支持SIMD。它与中央处理器相似,有一个缓存架构。核心亦支援一套新的矢量指令集,用作矢量内存、整数和浮点计算。[1]Larrabee可以同时支援DirectXOpenGL。由于是通用核心,亦可以支援物理加速。[2]2008年8月,Intel称核心数量是8的倍数,总数最少是8个,最多32个。图形API方面,它支援主流的DirectXOpenGL,Intel亦会推出自家的标准。目的是充分发挥多X86核心的性能。浮点运算方面,支援IEEE标准的单双精度。显示内存接口与ATIRadeon R600相似,探用环形总线,每个方向是512-bit。[3]各X86核心亦使用此总线互相通讯。针对影像方面,Larrabee核心内有专门的VPU元件。[4]

Larrabee 从设计最初,就明确了作为GPU 产品摊薄成本的战略,这注定了它不是奢侈品,如果这个形势都认不清,谈CUDA 或者GPGPU,是不是有点不合适?
回复

使用道具 举报

20#
发表于 2009-7-6 18:36 | 显示全部楼层
86# iverlin
Larrabee 的显卡产品,特别是游戏显卡的价格,就是一块主流显卡的价格。
对于Intel 来说,Larrabee 就是第一个many core 的产品,通过显卡市场实现摊薄规模化,是否可以回收投资,并不是大的问题。
Larrabee 的主要研究基础就是80核,80核这样的项目又有什么回报呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

广告投放或合作|网站地图|处罚通告|

GMT+8, 2024-5-20 00:23

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

快速回复 返回顶部 返回列表