POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
查看: 64994|回复: 257

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

[复制链接]
发表于 2009-7-4 00:56 | 显示全部楼层 |阅读模式
本辩论赛为第一届PCINLIFE显卡达人精英辩论赛,其目的和动机是提升PCINLIFE网站显卡玩家的整体技术水平和对产品的认知深度,与此同时发掘更多的顶级显卡高手来为我站会员服务,引导他们挑选适合自己的显卡。本辩论赛将会从中挑选优秀的5名辩手成为第一届PCINLIFE显卡达人,从而在一个季度里免费试用某著名显卡厂商提供的最新款顶级显卡。

考量标准: 语言表达要通顺,有逻辑,另外要有深度,有独特的视觉,其它大家就自然发挥吧。

补充: 什么是NVIDIA CUDA技术?

1、CUDA 引入了多层次内存、线程架构,特别是 shared memory 概念的引入,让线程可以在程序员控制下实现片上共享,显著提高 GPGPU 的性能。
2、CUDA 是一个硬件和软件架构的统称,在硬件上而言,特指提供了将 SIMD 单元 SOA 化使其达到标量化执行、片上 shared memory 的 G80+ 架构,这些概念已经被 OpenCL 和 Compute Shader 全盘接纳。
在软件上而言,则是指可以直接使用 C 语言编程编写 SPMD 程序,程序员无需有图形编程的经验。
3、NVIDIA 支持使用 CUDA C 语言扩展以及 OpenCL、Compute Shader 等 API 编写在 CUDA 硬件上执行的程序。

更多与NVIDIA CUDA技术有关的参考资料:
http://www.nvidia.com/object/cuda_home.html

结束时间: 2009-7-19 00:47 裁判: Edison

正方观点 (53)

可以,NVIDIA的CUDA就代表着未来显卡发展和通用计算的将来

反方观点 (140)

不行,Intel和AMD将会放出更强力并且具有超强并线执行能力的通用运算器,例如是Larrabee。才代表未来电脑通用运算性能提升的将来

辩手:70 ( 加入 )
 
辩手:93 ( 加入 )
发表于 2009-7-4 01:43 | 显示全部楼层
普通人买中高端显卡是打游戏用的  n卡玩家已经承担了the way的成本 没理由为再GPGPU买单
回复

使用道具 举报

发表于 2009-7-4 06:41 | 显示全部楼层
普通人买中高端显卡是打游戏用的  n卡玩家已经承担了the way的成本 没理由为再GPGPU买单
ft5555 发表于 2009-7-4 01:43



这话说的,现在同价位A和N卡游戏性能差的很远么?

给GPGPU买单从何谈起?
回复

使用道具 举报

发表于 2009-7-4 07:25 | 显示全部楼层
按照e版的定义,cuda c和cuda架构是不是一体的?讨论其前途是一起讨论还是分开来看?

我一直觉得论坛上很多xd所谓的cuda没竞争力的标准说的是cuda c部分,没有涉及cuda硬件架构部分。
回复

使用道具 举报

发表于 2009-7-4 10:50 | 显示全部楼层
CUDA是不可能取代CPU的计算功能的:

首先,是架构的不统一:英伟达的CUDA运算体系与X86是互不兼容的,而绝大多数的海量运算都是基于X86架构的。从事科学计算、数据库、底层开发的程序员绝大多数都不熟悉CUDA,而且,为了使用CUDA而使自己的程序不兼容于没有使用英伟达显卡的PC,这是很可笑的事情(除非英伟达CUDA的运算速度几何倍数的强于英特尔和AMD,这可能么?NO!)
其次,是商业壁垒的束缚:英伟达要依赖于IBM的架构而生存,推翻X86架构,并且与INTEL分庭抗礼,对于英伟达来说是不切实际的。那意味着一切都推倒重来,就像龙芯。。。
回复

使用道具 举报

发表于 2009-7-4 11:30 | 显示全部楼层
通用计算是发展方向没问题,nvidia的cuda也是这个领域的领先技术,也可以说nvidia推动了通用计算的发展。但是说cuda代表着“未来显卡发展和通用计算的将来”有点言过其实。我认为当前通用计算还处在形成阶段,只能说cuda暂时是领先的,但是未来的发展方向还要看各个厂商的支持和市场的反映。
回复

使用道具 举报

发表于 2009-7-4 13:43 | 显示全部楼层
按照e版的定义,cuda c和cuda架构是不是一体的?讨论其前途是一起讨论还是分开来看?

我一直觉得论坛上很多xd所谓的cuda没竞争力的标准说的是cuda c部分,没有涉及cuda硬件架构部分。
westlee 发表于 2009-7-4 07:25


在一个已经非常成熟的领域中另起炉灶,闭门造车,除非技术上有着无与伦比的优势,否则是不可能成功的。就算有着很大技术优势的项目(比如网络电话),在传统产业巨头(比如移动电信运营商)的压制下,也很难发展起来。

况且,CUDA与X86-64架构比起来并没有遥遥领先的优势,英特尔和AMD有着足够的能力升级其架构以保证不落后于英伟达。由此可见,CUDA这个架构不兼容的运算处理单元只会局限于3D领域,不会有很好的发展前途。
回复

使用道具 举报

发表于 2009-7-4 14:20 | 显示全部楼层
1、CUDA 引入了多层次内存、线程架构,特别是 shared memory 概念的引入,让线程可以在程序员控制下实现片上共享,显著提高 GPGPU 的性能。
2、CUDA 是一个硬件和软件架构的统称,在硬件上而言,特指提供了将 SIMD 单元 SOA 化使其达到标量化执行、片上 shared memory 的 G80+ 架构,这些概念已经被 OpenCL 和 Compute Shader 全盘接纳。
在软件上而言,则是指可以直接使用 C 语言编程编写 SPMD 程序,程序员无需有图形编程的经验。
3、NVIDIA 支持使用 CUDA C 语言扩展以及 OpenCL、Compute Shader 等 API 编写在 CUDA 硬件上执行的程序。

Elvis 发表于 2009-7-4 00:56


1、多线程、内存分片、线程共享等技术早已在传统CPU架构中实现,而多层次内存将使指令集复杂化,更难于调试,程序员也更难上手、运算效率的优化极其困难。在数字运算领域RISC优于CISC、2进制优于10进制,这已经被无数事实证明!而英伟达此时弄出个“多层次内存”来使内存控制器复杂化,属于典型的逆潮流而行,故对其不看好。

2、兼容C语言是“皇帝的新装”,是一种华而不实的宣传:世界上还有不兼容C语言的处理器么?单片机都支持C语言!

关键在于:可以用C语言编程 不等于 用C语言编的程序都能运行!不能改变它不能运行X86指令集的硬伤!原先任何基于X86的程序(包括WINDOWS)都不能被其运行
3、为什么程序员要使用英伟达提供的API编写通用程序??这将会造成程序在任何没有安装英伟达硬件的电脑上都运行出错!对于一个新架构来说,不兼容老架构是绝对没有前途的:君不见即使是先进的i7,也不敢抛弃386时代的X86指令集么?所以,相对来说,我更看好拥有x86使用权的AMD的“一体化CPU ”构想,英伟达的CUDA即使再成功,也只是在遥远的将来有可能和POWER MAC一样成为另类罢了。
回复

使用道具 举报

发表于 2009-7-4 18:28 | 显示全部楼层
GPU应该和显示器整合啊
回复

使用道具 举报

发表于 2009-7-4 20:23 | 显示全部楼层
关键在于:可以用C语言编程 不等于 用C语言编的程序都能运行!不能改变它不能运行X86指令集的硬伤!原先任何基于X86的程序(包括WINDOWS)都不能被其运行


汗,nv的显卡在cuda运算的时候根本就不需要运行x86指令,显卡是通过驱动把x86指令编译,解释成显卡可以直接执行的二进制代码运行的,难道现在的游戏,是因为显卡可以执行x86指令才可以运行的吗?

如果程序本身设计成特定硬件相关的话,无论是不是x86指令的东西,没有特定硬件一样是无法运行的(比如我们用的银行的u盾)

nv目前又不是打算做cpu,nv只是想让显卡从cpu那里分担一部分工作而已,并不需要单独运行windows。
回复

使用道具 举报

发表于 2009-7-4 20:38 | 显示全部楼层
我认为CUDA技术能引领PC进入GPGPU计算时代,CUDA应用已经进入了很多领域,
比如多媒体编码领域有BADABOOM、TMPGENC,图形编辑领域有PHOTOSHOP CS4,图形渲染领域有GELATO,游戏领域有PHYSX物理加速,等等。。。这些都曾是CPU计算所力不从心的领域,在CUDA的加入后效率得到了质的飞跃。
CUDA支持的范围很全很广,见http://www.nvidia.com/object/cuda_home.html

而INTEL和AMD方面却迟迟不能拿出通用计算助力产品,一直停留在落后的架构,在这段时间里CUDA已经发展壮大,支持度越加广泛,就比如我从事的设计领域,CUDA对效果图渲染和后期图像编辑的助力就很有意义。
我所关注INTEL的LARRABEE声称可以实现光线追踪级的通用渲染,但是雷声大雨点小,而且INTEL自己也曾证实过目前研究中,要渲染 320X240这个级别不带AA的光线追踪,游戏速度也仅仅达到30FPS,可以看到LARRABEE真正到达使用阶段离现在还很遥远。
看到光栅化架构的CRYSIS能实现如此好的效果,让我相信随着光栅化渲染的发展,日后将会非常接近光线追踪的效果。。。并且能达到更好的效能。所以LARRABEE我不是很看好,而CUDA却是实实在在摆在眼前的好东西。
回复

使用道具 举报

发表于 2009-7-4 20:40 | 显示全部楼层
本帖最后由 iverlin 于 2009-7-6 01:33 编辑
1、多线程、内存分片、线程共享等技术早已在传统CPU架构中实现,而多层次内存将使指令集复杂化,更难于调试,程序员也更难上手、运算效率的优化极其困难。在数字运算领域RISC优于CISC、2进制优于10进制,这已经被 ...
weihua8206 发表于 2009-7-4 14:20


1,不管是什么机制,CUDA的效能已摆在面前,优秀与否,事实胜于理论。
另外,难以上手不说明什么,PS3比XBOX360编写游戏难的多,还不是一样成功的站在XBOX360同样的高度。再说,一切成熟起来后,难度也就会降低。就拿左数学题来说,做的多了,会做就不难,不会做的人就觉得难。

2,现在一大堆支持CUDA软件,比如PHOTOSHOP CS4, 没N卡的电脑就不能运行了吗?比如支持PHYSX的游戏,没N卡就出错了吗?显然这个论点不成立,CUDA只是助力性的,而不是替代性的存在。

3.MAC不能喝CUDA混为一谈,属于偷换概念,CUDA是软体,MAC是硬体,CUDA可以支持A卡,而且不脱离CPU,但能做CPU能做的事,而且更高效,本质上属于加速型技术,适用性广。如果AMD愿意接受CUDA,那CUDA就会成为绝对主流。
    当然,你说AMD不肯,别忘记现在不是谈市场,而是CUDA技术本身,CUDA本身是具有这个能力,引领GPGPU时代。如果要谈市场,AMD自然比不过NV,而INTEL的LARRABEE市场定位并不是PC,所谓CUDA市场优势很明显。
回复

使用道具 举报

发表于 2009-7-4 20:55 | 显示全部楼层
我认为CUDA技术能引领PC进入GPGPU计算时代,CUDA应用已经进入了很多领域,
比如多媒体编码领域有BADABOOM、TMPGENC,图形编辑领域有PHOTOSHOP CS4,图形渲染领域有GELATO,游戏领域有PHYSX物理加速,等等。。。这些都 ...
iverlin 发表于 2009-7-4 20:38


恩,说得非常好;
既然你支持CUDA能走向GPGPU时代;
那请你详细辩证如何让CUDA替代INTEL+AMD的运算技术?
回复

使用道具 举报

发表于 2009-7-4 20:58 | 显示全部楼层
从发展的眼光看,我支持反方,不过从现实的实用价值来说,我支持正方.
回复

使用道具 举报

发表于 2009-7-4 21:25 | 显示全部楼层
本帖最后由 iverlin 于 2009-7-4 22:12 编辑
恩,说得非常好;
既然你支持CUDA能走向GPGPU时代;
那请你详细辩证如何让CUDA替代INTEL+AMD的运算技术?
腰花 发表于 2009-7-4 20:55


首先,要清楚CUDA是加速性技术,是在CPU力不从心的领域加以助力。
比如,为CPU独立难支而且效果欠佳的游戏物理效果上,提供更好的效能和效果。又比如,在PHOTOSHOP处理大幅图片时,CPU要花很长的时间,而支持CUDA的显卡能在很短的时间内完成。

而INTEL的LARRABEE是CPU+GPU的集合体,好比是基于X86架构的显卡,虽然能实现X86完整的通用计算,但是八字还没有一撇,效能低下。愿望是美好的,但是现实是残酷的,INTEL想一家独大,一颗LARRABEE想取消显卡的存在,垄断CPU和GPU市场,其实不切实际。

而NV的CUDA是显卡加速通用计算,并不是吞噬CPU的存在,开放性强,适用性广。

所以,CUDA不取代INTEL和AMD的CPU,而是让计算能力更上一层楼。而INTEL和AMD的GPGPU技术还远远没有成熟,在技术架构方面,也不具有压倒性的优势。



而且从市场定位上来说,“Larrabee从定义之初,就一直瞄着PC架构的大变革:CPU将不再作为全功能的处理器,而逐渐偏重于商用和事务处理,要求高计算能力的浮点计算工作则由Larrabee通用处理器负责。对于普通家用和商用的PC而言,Larrabee并非是必需品,但在图形工作站、超级计算机等要求强劲效能的设备中,Larrabee将逐渐成为必需品。”

从另外一个角度来看,CPU+GPU的LARRABEE,功耗巨大,按照现在的制程发展速度,很不乐观。而且由于强制整合了GPU,成本高决定价格高,不是所有消费者都需要如此强大的处理器,所以决定了LARRABEE不会走向大众化,因此也不会由它产生一个GPGPU时代。
回复

使用道具 举报

头像被屏蔽
发表于 2009-7-4 21:36 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

发表于 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 的支持面会非常广泛,这对于从事计算密集型研究的人来说,都是好事。
回复

使用道具 举报

发表于 2009-7-5 00:44 | 显示全部楼层
首先,要清楚CUDA是加速性技术,是在CPU力不从心的领域加以助力。
比如,为CPU独立难支而且效果欠佳的游戏物理效果上,提供更好的效能和效果。又比如,在PHOTOSHOP处理大幅图片时,CPU要花很长的时间,而支持CU ...
iverlin 发表于 2009-7-4 21:25


对方辩友请注意:辩论的主题是“CUDA能否引领GPGPU运算时代”,而不是“CUDA是否比LARRABEE优秀”!!

举个例子:“你百米跑比我跑得快,所以你是百米跑世界冠军”,这句话成立么?笑话,比我跑得快的人地球上有10亿以上,比我跑得快就冠军,那全世界的金子都用来铸金牌算了。

同样的:LARRABEE有着严重缺陷,并不证明CUDA就能引领未来,英特尔私心很重,想独占市场,但其缺乏硬件浮点运算的技术。LARRABEE事实上是在用软件强行捆绑自己的硬件。…………跑题了


对方辩友论证了LARRABEE不行,而世界上并非只有LARRABEE和CUDA两种GPGPU结构体系! 应该说:CUDA不行,LARRABEE也不行!!
回复

使用道具 举报

发表于 2009-7-5 01:37 | 显示全部楼层
本帖最后由 weihua8206 于 2009-7-5 16:01 编辑
1,不管是什么机制,CUDA的效能已摆在面前,优秀与否,事实胜于理论。
另外,难以上手不说明什么,PS3比XBOX360编写游戏难的多,还不是一样成功的站在XBOX360同样的高度。再说,一切成熟起来后,难度也就会降低。就拿左数学题来说,做的多了,会做就不难,不会做的人就觉得难。

2,现在一大堆支持CUDA软件,比如PHOTOSHOP CS4, 没N卡的电脑就不能运行了吗?比如支持PHYSX的游戏,没N卡就出错了吗?显然这个论点不成立,CUDA只是助力性的,而不是替代性的存在。

3.MAC不能喝CUDA混为一谈,属于偷换概念,CUDA是软体,MAC是硬体,CUDA可以支持A卡,而且不脱离CPU,但能做CPU能做的事,而且更高效,本质上属于加速型技术,适用性广。如果AMD愿意接受CUDA,那CUDA就会成为绝对主流。
    当然,你说AMD不肯,别忘记现在不是谈市场,而是CUDA技术本身,CUDA本身是具有这个能力,引领GPGPU时代。
iverlin 发表于 2009-7-4 20:40


对方辩友在理论方面十分专业,在下佩服,但是有以下事实是对方不能忽视的:

1、首先,CUDA的软件体系走在错误的发展轨道上:基于CUDA的软件编写困难、维护复杂、指令集晦涩。作为一种开放的加速技术接口,既然英伟达不在自己的GPU硬件上捆绑CUDA,开发商就完全有理由抛弃这种接口,转而使用更简便的指令集来实现GPGPU。

2、借用对方辩友的例子:支持PHYSX的游戏,没N卡就出错了吗?是的,假如一个游戏只使用PHYSX,而放弃对传统的3D架构支持,那么没有N卡必然运行出错!看过PHYSX的宣传DEMO吗?在A卡平台上运行时是什么样子?画面破碎、物体移动规律全都不对,重力缺失,帧数惨不忍睹!如果这还不算运行错误,我想不出什么才能算错误了!
英伟达用硬件绑定了PHYSX,PHYSX不能被AMD的GPU所支援,这是PHYSX存活的一大优势。而CUDA不具有这种优势,我们完全可以用更友善的指令集来实现GPGPU,从而淘汰CUDA。那么,请问对方辩友,一个编写得不很成功的软体指令集何以引领GPGPU的未来呢?

3、对方辩友避而不谈市场,说CUDA单从技术上有能力引领GPGPU时代。这是形而上学的片面观点,是在用静止、孤立的观点来看问题:没有市场的技术是引领不了任何时代的,它只能走向消亡!当年的RAMBUS总线规格要比DDR266先进很多,按您的观点,"RAMBUS技术本身是可以引领高速内存时代"咯?事实如何呢?现在DDR已经发展到第5代,而RAMBUS早已被世人遗忘!如果当初英特尔还死抱着RAMBUS,现在他们将和RAMBUS一起被PC市场遗忘!没有市场、何谈时代!RAMBUS引领过什么时代么?没有!同样的,CUDA也同样不会有未来!况且,CUDA并不先进,从软件架构上来讲,CUDA的设计思想是落后的:
(1)CUDA目前只有在linux下提供了64bit支持,windows还是32bit,而且只支持单精度
(2)CUDA的开发界面很不友好,廉价高速计算方面,一般大家公认为开发难度的难易顺序是CUDA、SPU CLE然后是Ct。
由此可见,CT、CLE等指令集均优于CUDA,CUDA即使单从技术上讲也不能引领什么潮流!

(管理员害苦我了,这么多字差点白打了 )
回复

使用道具 举报

发表于 2009-7-5 01:59 | 显示全部楼层
汗,nv的显卡在cuda运算的时候根本就不需要运行x86指令,显卡是通过驱动把x86指令编译,解释成显卡可以直接执行的二进制代码运行的,难道现在的游戏,是因为显卡可以执行x86指令才可以运行的吗?

如果程序本身 ...
westlee 发表于 2009-7-4 20:23



CUDA的开发界面很不友好,廉价高速计算方面,一般大家公认为开发难度的难易顺序是CUDA、SPU CLE然后是Ct。

CT、CLE等指令集均优于CUDA,那么,既没有野心吞并X86,又不捆绑英伟达的GPU硬件来强行推广,请对方辩友告诉我,这样一种相对落后的软件架构如何才能不被淘汰?
回复

使用道具 举报

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

本版积分规则

QQ|网站地图|小黑屋| ( 粤ICP备13038377号-1 )

GMT+8, 2019-9-17 14:39

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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