POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: Elvis
打印 上一主题 下一主题

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

[复制链接]
41#
发表于 2009-7-8 07:46 | 只看该作者
用A卡的人这么多。。。 敢是他们于不顾那是会引起公愤的 呵呵
回复

使用道具 举报

42#
发表于 2009-7-8 10:29 | 只看该作者
电脑终端玩家的一切应用都是基于软件的,而软件都是由程序员来编写的。试想,如果没有程序员编写基于X86的软件,你买电脑来干啥?如果没有人使用DIRECTX编写游戏,那现在的显卡可能还停留在巫毒时代(那样的话GT ...
weihua8206 发表于 2009-7-7 22:55


这位仁兄的意思那些接口更不方便的OpenCL之类的

比CUDA Runtime API更底层的是根本没有存活之路了?
回复

使用道具 举报

Christ2002 该用户已被删除
43#
发表于 2009-7-9 09:35 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

Christ2002 该用户已被删除
44#
发表于 2009-7-9 10:17 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

45#
发表于 2009-7-9 10:51 | 只看该作者
阁下在说反话么?CUDA编程难度远远高于x86!
weihua8206 发表于 2009-7-9 07:51


CUDA编程难度起码比GeForce 6/7时代的GPGPU低吧.

这位仁兄的这句话的意思是否定全部的GPGPU了?
回复

使用道具 举报

46#
发表于 2009-7-9 10:53 | 只看该作者
反观CUDA,其架构最多支持32位浮点数(请注意,并不是说GPU是32位的),这个精度远远不够。
weihua8206 发表于 2009-7-9 08:02


从CUDA 1.2版本开始已经支持了double ,不过性能很低.

之前我已经说过:

目前CUDA的环境来说,只有GT200芯片才能支持double数据类型,其他所有芯片G9X和G8X系列都不支持double数据类型,仍然在32 位,这对一些高精度的数据类型来说是一个很糟糕的事情,而且GT200芯片对于double的运算性能非常差(64bit运算单元在每个SM中只有一个,因此运算速度只有32bit数据的八分之一到十二分之一左右.),不过NVIDIA已经在GT300中大幅加强了双精度的计算性能.
回复

使用道具 举报

47#
发表于 2009-7-9 15:42 | 只看该作者
与其辩论现阶段具体技术能够为我们提供怎样的未来,还不如对比一下几样最基础的东西吧。
一是体积。单单从cpu来说,近的能够想到的是486的四四方方那一块,如今的cpu只需要婴儿指甲盖般的体积就能实现功能类似性能强数百倍。
二是功能。不是是否还有人记得,电脑上看vcd需要一种叫做“影霸卡”的东西才能流畅,随着技术的进步,现在的显卡已经具备多种硬解码的能力了。
以上两种都是最简单的例子,在我看来,我们现在的主板、南北桥、声卡、显卡这些区分称呼的名词,都将变成一块芯片的功能延伸,你看苹果的mini mac也就一个光驱大小。
现在眼前被我们称之为机箱的东西,今后会变得更小,更强,基本上一块芯片解决问题
其实看看现在的cpu/gpu他们的内部,也是这样的趋势,划分越来越多,功能越来越延展
由于芯片所支持的指令集越来越丰富,差异将由软件来体现
电脑走向并不是简单的gpgpu计算时代,而是xpu时代。
回复

使用道具 举报

48#
发表于 2009-7-9 16:24 | 只看该作者
这位朋友应该是选错阵营了,呵呵。论XPU时代的话,AMD和英特尔都有能力让CPU集成上GPU,而英伟达的CUDA对CPU的兼容性为零。如果XPu时代是未来发展方向的话,那么CUDA就没有什么未来可言了
weihua8206 发表于 2009-7-9 16:06

大概我点错了
回复

使用道具 举报

49#
发表于 2009-7-9 16:51 | 只看该作者
。。。。这个,对方辩友,既然这个double性能很低(我没试验过,不敢妄言有多低,不过用起来已经比不上直接用CPU了吧?),那么它又有什么用呢?而且由于硬件局限,想提高其性能并不是继续升级就能做到的。
weihua8206 发表于 2009-7-9 12:35


但是毫无疑问 CUDA是在进步过程中的,而且已经明显走到了GPGPU领域的前列.
一个新事物的出现,总是不能做到什么都齐全的.
CUDA毕竟是刚刚出现的东西,而不能要求太多了.
从CUDA规范1.x进步到2.x信息很多人都能看到变化是巨大的.

毕竟GPGPU这属于新兴的学科.
回复

使用道具 举报

50#
发表于 2009-7-9 21:14 | 只看该作者
140# arnew  

32位 和 64 位 等等只系硬件的数据表示, 在高级语言上(软件层)可以实现128位甚至更高位的数据类型,譬如mathlab,mathmaticas 等数学软件的编程上。
tyro 发表于 2009-7-9 21:05


对于CUDA来说,通过软件层实现会有比较大性能损失.
回复

使用道具 举报

51#
发表于 2009-7-9 21:27 | 只看该作者
157# 玉清  

没错,是有损失, 就像你用高级语言写的程序 执行效率没有 汇编写的这么高,
tyro 发表于 2009-7-9 21:17


用软件层实现的话,恐怕性能损失很多时候是比较明显的.

CUDA并不适合具有复杂的数据结构和预测分支很多的程式.

关于分支预测:

NVIDIA的SM没有预测执行机制(分支预测单元(BranchPredicator))。这是与CPU一个重大区别的地方。GPU的任务是处理不需要预测的任务,因此也就可以省掉预测相关的电路,降低功耗。在需要分支时,只有当warp中所有的thread都计算出各自的分支的地址,并且完成取指以后,warp才能继续往下执行。一个warp内的线程是由同一个SM执行的,而一个SM只有一组取指、译码单元。如果一个warp中需要进行分支(即warp内的线程执行的指令指针指向不同的位置),性能将急剧的降低。

关于复杂的数据结构:

大家知道CUDA并行架构中的一个thread宽度是非常小的,但是却具有非常多的thread来实现大量计算,这和x86的CPU并行架构是一个明显区分的地方,在CPU的并行架构中,thread的数量往往远远少于CUDA的thread的数量,假如x86 CPU的thread过多的话则管理thread的时间开销将会很大,所以x86 CPU的thread宽度往往远远大于CUDA的thread。由于CUDA的thread宽度比较小,而且缺乏分支预测单元,假如有复杂的数据结构用于CUDA的话,恐怕反而会得不偿失。


小白观点,欢迎大家批评指正,谢谢.
回复

使用道具 举报

52#
发表于 2009-7-10 16:50 | 只看该作者
由上可见,CUDA的发展方向从根本上就是错误的!它并不能与CPU协同工作,这样一种从根本上已经落后的方案(乌龟),即使起跑再早,随着比赛的发展,被超过是必然且肯定的!要知道,科技的进步没有终点!
weihua8206 发表于 2009-7-10 12:53


它并不能与CPU协同工作.


这句话我该如何理解呢?
对方辩友是认为在CUDA程式中CPU 是完全没有作用了?
回复

使用道具 举报

Christ2002 该用户已被删除
53#
发表于 2009-7-11 09:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

54#
发表于 2009-7-11 09:40 | 只看该作者
CUDA在MS面前显得多么的渺小!而且新的DX11出来CUDA就更加边缘化了!
huketing 发表于 2009-7-11 07:36


请给出理由,谢谢.
回复

使用道具 举报

55#
发表于 2009-7-11 09:52 | 只看该作者
CUDA在MS面前显得多么的渺小!而且新的DX11出来CUDA就更加边缘化了!
huketing 发表于 2009-7-11 07:36


哈,难道CUDA不支持DX吗?
回复

使用道具 举报

56#
发表于 2009-7-11 22:54 | 只看该作者
CS4  使用用 OPENGL 做加速的,没用上CUDA。
tyro 发表于 2009-7-11 18:58


采用GPGPU 技术映射到OpenGL的?
回复

使用道具 举报

57#
发表于 2009-7-15 23:14 | 只看该作者
.....
一周还好,如果管理员宣布延长一年的话,那肯定没人愿意再说话了,哈哈

书归正传,181楼反方辩友提到的“PHOTOSHOP CS4 使用GPGPU 技术映射到OpenGL”这一说法显然是不成立的,在 ...
weihua8206 发表于 2009-7-15 20:14


我只是请教...提问...请注意 后面的那个问号......

对方辩友称“CS4  使用用 OPENGL 做加速的,没用上CUDA。”

所以我请教 是否采用了GPGPU技术.
回复

使用道具 举报

58#
发表于 2009-7-15 23:24 | 只看该作者
但是关键是应该提供给程序员一个方便而快捷的方法来从X86转换到CUDA,一个X86程序如果只需要通过在源代码中查找替换这种方式就转换为CUDA运行,在显卡上去更加高速的计算,这不是很吸引人吗,
所以我认为两点很重要,第一,能够提供更强的处理能力和效能;这点没有什么问题。第二,更强的易用性,包含更好的移植性和开放性;
虽然CUDA执行效率肯定会比OpenCL高,但是可能顶不过OpenCL和DirectX11CS使用的普遍性。不过就算OpenCL和DirectX11CS很普遍,CUDA还是工作在更低的层上的.
Mehus 发表于 2009-7-15 23:10


x86和CUDA是不冲突的,一个CUDA程式是需要运行在x86的CPU上面的,CPU是存在的.

通过替换查找就能实现的东西还不如直接typedef......

CUDA的执行效率比不比OpenCL现在还不好说,毕竟现在还难以看到OpenCL的编译器...
OpenCL的底层程度和CUDA的Driver API差不多...

CUDA工作层我想应该要比DX11的CS高吧..
回复

使用道具 举报

59#
发表于 2009-7-16 11:30 | 只看该作者
有人能推荐个比285*3的性能还好的么
tx00zzz 发表于 2009-7-16 11:03


Tesla S1070,谢谢.
回复

使用道具 举报

60#
发表于 2009-7-16 11:38 | 只看该作者
很有道理,我了解的程序员都是很勤奋的。
CUDA C、OpenCL和DX11都是在CUDA构架上运行的一种语言,都需要先通过驱动编译成PTX语言(类似于X86汇编)来在GPU上运行。
没错,这点我很赞成,使用CUDA C的程序是在VC下面挂CUDA的库来编写的,所以其本体是个能够将部分功能转移至GPU的VC程序。
Mehus 发表于 2009-7-16 00:35


额,首先我不知道typedef和程式员的勤奋有什么联系.
区别几个概念性问题.
CUDA C,DX11不是一门语言.
DX11,OpenCL是不可能 运行在CUDA 架构上面的.
VC不是语言,只是一个IDE....
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 08:01

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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