POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

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

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

[复制链接]
1#
发表于 2009-7-15 23:10 | 显示全部楼层
本帖最后由 Mehus 于 2009-7-16 01:12 编辑

我觉得作为一个用户最希望看到的是能够出现更多基于CUDA技术的应用程序,我认为GPGPU没有必要兼容X86,完全可以在软件设计中将各种任务进行合理分配,其实这点也很简单就可以做到,CUDA已经提供了一系列的平台方案,但是关键是应该提供给程序员一个方便而快捷的方法来从X86转换到CUDA,一个X86程序如果只需要通过在源代码中查找替换这种方式就转换为CUDA运行,在显卡上去更加高速的计算,这不是很吸引人吗,当然还不是这么简单,而很多需要进行大量计算又愿意付出一些时间重写代码的人现在已经这么做了。如果可以更简单,CUDA程序肯定会爆炸性的出现(最好给OpenCL的代码也提供一个代码转换工具或方便的转换方法)。
这肯定是一个趋势,计算机需要处理的数据会越来越多,程序会越来越庞大,数据处理肯定也是会多流向分布式计算发展,当然CPU肯定还是中央处理器,而GPGPU我觉得完全可以理解成一颗很强的协处理器。
对于普通用户也是愿意接受的,因为买了一个显卡就已经拥有硬件平台了为什么不让他发挥能力呢。对于专业用户他们更愿意接受,因为花更少的钱他们可以获得更强大的计算性能。
未来会不会出现类似这样的一张“显卡”——上面的主芯片也就是“GPGPU”是插在GPGPU插槽上的,旁边插有“显存条”,卡的接口是PCI-E X64,而那时的主板上可以同时插上4块这种卡……
所以我认为两点很重要,第一,能够提供更强的处理能力和效能;这点没有什么问题。第二,更强的易用性,包含更好的移植性和开放性;
CUDA是又优越又有危机的东东。“GPGPU“,也许以后不叫GPGPU,他肯定会发挥其强大的计算能力。CUDA可以说是一个市场和应用的开山人,虽然CUDA执行效率肯定会比OpenCL高,但是可能顶不过OpenCL和DirectX11CS使用的普遍性。不过就算OpenCL和DirectX11CS很普遍,CUDA还是工作在更低的层上的,有不需要跨平台的计算仍然可以直接使用CUDA C以获得更高的效能。

结论:“GPGPU”的崛起并非CUDA一人的功劳,CUDA开启了在GPU上的通用计算之门,通用计算技术带领大家进入“GPGPU”时代。

尾语:我觉得大家应该跳出某种现有状况的局限,事物都是发展变化的。我不是学计算机专业的让大家见笑了,说得不对的请见谅
回复

使用道具 举报

2#
发表于 2009-7-16 00:35 | 显示全部楼层
本帖最后由 Mehus 于 2009-7-16 05:09 编辑

我是中立的,对标题我只赞成一半
通过替换查找就能实现的东西还不如直接typedef......
玉清 发表于 2009-7-15 23:24

很有道理,我了解的程序员都是很勤奋的


x86和CUDA是不冲突的,一个CUDA程式是需要运行在x86的CPU上面的,CPU是存在的.
玉清 发表于 2009-7-15 23:24

没错,这点我很赞成,使用CUDA C的程序是在VC下面挂CUDA的库来编写的,所以其本体是个能够将部分功能转移至GPU的VC程序。
从某种意义上看,我觉得GPGPU不支持X86并不是劣势。


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

CUDA工作层我想应该要比DX11的CS高吧..
玉清 发表于 2009-7-15 23:24

关于OpenCL和CUDA C的效能我主观上感觉CUDA C会好一点,毕竟他和CUDA是同生的,从NV的解释看CUDA应该理解成一种指令集,CUDA C、OpenCL和DX11都是在CUDA构架上运行的一种语言,都需要先通过驱动编译成PTX语言(类似于X86汇编)来在GPU上运行,虽然NV的驱动也会对OpenCL做优化但肯定没有CUDA C更适应NV的GPU的硬件结构和内存管理特性,CUDA C来得更直接,DX11就说不清楚了,这就有点战略性了,对谁优化多一点NV的PTX编译驱动很关键,但我觉得可以大胆推测现有平台上:效率(OpenCL on AMD)<效率(OpenCL on NV)<效率(CUDA C on NV)。效率应该是(单位时间内数据处理量)/(晶体管数*工作频率)。未来AMD也可能改善它的底层构架来更好的支持OpenCL,但是NV也没停下,而且起点比他高。

CUDA是好东西,是很好的开拓者,当然现在也是领先者,但是进入“GPGPU”时代并非完全是CUDA的功劳,而是多种通用计算平台整合的结果,主要是DX11和OpenCL,虽然CUDA C可能比他们更快。
回复

使用道具 举报

3#
发表于 2009-7-16 15:55 | 显示全部楼层
本帖最后由 Mehus 于 2009-7-16 16:02 编辑
额,首先我不知道typedef和程式员的勤奋有什么联系.
区别几个概念性问题.
CUDA C,DX11不是一门语言.
DX11,OpenCL是不可能 运行在CUDA 架构上面的.

VC不是语言,只是一个IDE....
玉清 发表于 2009-7-16 11:38


这是NV发布支持OpenCL时的资料图片,连带的两段话是复制过来的,不是我写的
下面这张图也许是在此次OPENCL发布后较为常见的一个,不过其中意义大家不一定能够完全领会,我们在这里做一个说明。这是一张能够解释大家对OPENCL与CUDA关系疑问的重要“结构”图。NVIDIA第一次明确了两个重要名词“CUDA架构”与“CUDA C语言”。在以往理解中,我们常默认CUDA就是指基于NVIDIA GPU或并行处理器的编译器、C语言、库和相关软件开发环境;而硬件方面,则是指所有支持CUDA的GPU。今天,NVIDIA明确了包括硬件支持和软件环境一起,我们称之为CUDA架构,而常用的基于C语言的开发环境则是CUDA C,或者CUDA Fortran,CUDA C++,以及今后的CUDA JAVA等等。而OPENCL,也与之并列。


实际上CUDA C语言是一种C语言的扩展,这扩展的一部分主要是进行并行运算编程的方面,这些是通过C的扩展来获得的。基本上认为CUDA的程序也是一种标准的C语言的程序,然后使用一些关键字然后来对并行这方面计算,最后做一些区分。CUDA C语言最终编译会成为PTX的代码,然后在GPU上执行。OpenCL是一个API,就是应用程序的编程接口,OpenCL和OpenGL很像,这种API可以调用API最底层的数据,通过程序开发调用各种各样的函数,实现各种各样的功能。对于API来说一般它对硬件设备有比较完整的访问权,以访问硬件的设备,可以对内存进行管理,这是由开发人员通过编程来做的这些事情。最后OpenCL通过编译、通过驱动程序可以生成PTX代码在GPU上进行执行。


VC是语言还是IDE,就有点钻牛角尖了,对于标题内容不重要
回复

使用道具 举报

4#
发表于 2009-7-16 18:01 | 显示全部楼层
本帖最后由 Mehus 于 2009-7-16 18:17 编辑
恕我眼拙,我没有看到这段文字的任何一个地方写着DX11 CS和OpenCL是运行在CUDA架构之上.
那幅图片显示着:第一层是CUDA,第二层是C,C++,DX11,OpenCL,Fortan..................第三层 显示的是应用程式.
难 ...
玉清 发表于 2009-7-16 16:38

不是的,我不太喜欢你说话的语气,我没有说这些语言只能运行在CUDA构架上,而是CUDA架构上支持这些语言“CUDA C,或者CUDA Fortran,CUDA C++,以及今后的CUDA JAVA等等”,也就是说CUDA专门为这些语言提供了开发支持,使得它们能够在CUDA构架上运行,这应该很好理解吧。构架——不是狭义的CUDA C 或者GPU硬件,而是整个体系所形成的支持。
回复

使用道具 举报

5#
发表于 2009-7-16 18:27 | 显示全部楼层
207# kaa
所以看出坛子的老大出题是很有艺术的,“您认为CUDA技术最终能让我们电脑发展走向GPGPU计算时代吗?”,“CUDA技术”是一个体系又包含应用,如果在技术枝节上都开始辩论,会论很多出来,“让”字是一个模糊的动词,是“领导”、“引导”或是“助力”都可以,到底是在哪个层次,也值得讨论。
我还是中立的观点:CUDA技术打开了并行计算推广的大门,通用并行计算技术的整合让我们电脑发展走向GPGPU计算时代,好像倾向于正方。
回复

使用道具 举报

6#
发表于 2009-7-16 19:51 | 显示全部楼层
本帖最后由 Mehus 于 2009-7-16 20:05 编辑
呵呵,请这位朋友注意,语言是软件层面的!只要投入精力去开发,任何架构的东西都可以用C++、JAVA之类的语言来封装并提供支持!而CUDA已经包含了软件层面的接口!用这个接口去二次开发做CUDA C,相当于一栋100层 ...
weihua8206 发表于 2009-7-16 19:14

你的比喻很有意思,所以我也觉得CUDA 应该提高他的易用性,我在前面的帖子已经提到了这点,这篇帖子也应该将“让”字的层次清晰出来,应该在相关的技术、平台上多做一些对比。CUDA技术是“领导”“引导”还是“助力”GPGPU时代,需要从技术构架甚至是枝节上去做对比,但各平台有长有短,我还是发在208楼的观点,继续中立...

我确实不是计算机专业的,所以希望正反方都能够更加深入的交换意见(不要太尖刻,大家都可以学习),最好能扩展到CUDA以外的平台讨论对比,让“让”字清晰出来,最后请版主再来个总结帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 10:06

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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