POPPUR爱换

 找回密码
 注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

搜索
楼主: Elvis

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

[复制链接]
发表于 2009-7-17 22:36 | 显示全部楼层
本帖最后由 weihua8206 于 2009-7-18 16:43 编辑
绝对支持NVIDIA 的CUDA技术(4)

4.通过期望最大化算法的高斯混合模型具体个案体现出CUDA技术的易用性,高效性,快速性。

他是一个CUDA技术实施期望最大化算法的高斯混合模型。在我的机器,它提供了性能提升与170x的CPU的参考版本。见该报告可在http://andrewharp.com/gmmcuda以获取更多信息

这是一个并行执行的期望最大化算法的高斯混合模型,旨在运行于NVIDIA显卡支持CUDA技术。 *在我的机器,它提供了性能提升与170x的CPU的参考版本。
见该报告的更多信息。
有趣的代码是在gpugaumixmod.h和gpugaumixmod_kernel.h 。提到CPU的执行情况列入cpugaumixmod.h 。
它可以被集成到任何C程序的CUDA技术使系统。此外, Matlab的一体化提供gmm.cu.
期望最大化是一个功能强大的方法收敛到一个地方的最高。 K -均值聚类是一种特殊情况,期望最大化高斯集群。
RoME仔 发表于 2009-7-17 22:21


提醒下这位反方辩友:抄袭文章的时候不要用机器自动翻译好么?要么你直接抄英文,要么认真手动翻译一下,这种火星文相信大家看了都很想打你一顿!

另外:摘录文章请注明出处,而且不能100%的抄录。一点自己的东西都没有怎么能行?
回复

使用道具 举报

发表于 2009-7-18 00:53 | 显示全部楼层
本帖最后由 天魔 于 2009-7-18 12:14 编辑
这位朋友说的不错,我不是底层架构的程序员,对CPU和GPU的底层架构并不很关心,也不想花很大的时间精力去研究英伟达的芯片组里面的SP单元和DP模块是怎样协同运作的。

但请你注意一个事实:世界上绝大多数的应 ...weihua8206 发表于 2009-7-17 22:19


也不知道你到底明白没有,CUDA本身就是不需要你接触微架构细节(这部分NVIDIA隐藏得很深),只是你需要做性能优化的时候,才需要进一步了解并行化的元素。

简单地说,如果你要编译一个程序,你可以什么开关都不加,直接编译得了,但是如果需要进一步优化性能,你就可能需要在编译器后面加个-O3。但是编译器并不总是那么聪明,这个时候你就需要做一些程序上的优化,例如un-loop什么的。

不管你写什么程序,这些过程对CPU和GPU都是一样的,我不相信你写什么程序都不需要做调试。如果你做matlab的话,本身就需要知道在浮点运算的情况下,(A+B)+C的运算结果在有些情况下就无法等同于A+(B+C),有些算式你就算用128位的精度,也不可能获得正确的运算结果,而这个误差为什么会造成,你是需要查阅处理器的浮点精度细节,这本身其实就是涉及到ISA,在这些过程中其实就很容易了解到微架构的大致情况。
回复

使用道具 举报

发表于 2009-7-18 02:11 | 显示全部楼层
241# weihua8206
插句嘴,觉得你有点放赖了。

NV绝对不会不努力让CUDA编程变得简单,绝对不会对你说你认为NV会说的话。

但是,目前来看,你并不如你的辩友了解CUDA编程则是事实,请正视。
回复

使用道具 举报

发表于 2009-7-18 02:12 | 显示全部楼层
241# weihua8206

另外,NV芯片的设计人员,他们会认为程序员应该了解门电路的开关通断吗?

你说话有点谱好不?
回复

使用道具 举报

发表于 2009-7-18 02:16 | 显示全部楼层
目前的CUDA编程环境,是NV在目前的硬件环境下在能力之内做出的最友好的,这一点难以否认吧。

CUDA编程的友好性缺陷,不是NV不想修正,是目前力所不能及。觉得还是不要把这个缺陷引申成为NV仇视程序员的结果吧。
回复

使用道具 举报

发表于 2009-7-18 02:28 | 显示全部楼层
不知道CUDA是啥东西,路过顺便进来看看。
回复

使用道具 举报

发表于 2009-7-18 12:37 | 显示全部楼层
本帖最后由 weihua8206 于 2009-7-18 16:48 编辑

插句嘴,觉得你有点放赖了。
NV绝对不会不努力让CUDA编程变得简单,绝对不会对你说你认为NV会说的话。
但是,目前来看,你并不如你的辩友了解CUDA编程则是事实,请正视。
长风 发表于 2009-7-18 02:12


我的反方辩友们有几个比我更了解CUDA,并且实际应用过,他们得出的结论都是CUDA不能代表GPGPU的未来,也列举了非常多的实例来证明,想了解的话,请你爬楼到前页好好看吧。
我没用过CUDA不假,因为我草草看了一遍就放弃使用它了,因为我不喜欢它的繁琐。
而正方的辩友们除了列举一大堆硬件规范出来,没有举出任何应用中的实例,他们自己都没有用CUDA做过项目,就大谈CUDA如何如何优秀:如果他们真的觉得CUDA好,你认为他们会不用么?



241# weihua8206  

另外,NV芯片的设计人员,他们会认为程序员应该了解门电路的开关通断吗?

你说话有点谱好不?
长风 发表于 2009-7-18 02:12


首先,这是夸张的修辞方法,本人辅修中文系的,不靠谱吧?(其实上,西方的科幻作家几乎都是理科辅修文学的,所以他们写的东西才能靠谱。)

其次,这位朋友既然连发了这么多贴批评我不专业,为什么对于前面那位用金山快译照抄枪文上来的正方辩友熟视无睹呢?如果说我不爱钻研技术,应该扣分的话,那位朋友是不是应该算作弊直接开除了?
回复

使用道具 举报

发表于 2009-7-18 13:24 | 显示全部楼层
CUDA 模型更像是一種CPU+GPU 模型,其中的設備也不一定是GPU或者是其他架構(或非X86架構),以便實現在CPU中調用某個在協作硬件中執行的函數,現在的設備大多數是GPU,據說以後還會添加CELL或者其他協作處理器.CPU雖然在通用性方面較好,但是在某些具體的算法模型上的欠缺效率,這樣"協作"處理器可以發揮較大的優勢.
在CUDA中,CPU執行"串行"代碼,然而,可以調用在設備(GPU)上執行的并行函數,做到相扶相稱的效果.
回复

使用道具 举报

发表于 2009-7-18 16:24 | 显示全部楼层
本帖最后由 weihua8206 于 2009-7-18 16:33 编辑
目前的CUDA编程环境,是NV在目前的硬件环境下在能力之内做出的最友好的,这一点难以否认吧。

CUDA编程的友好性缺陷,不是NV不想修正,是目前力所不能及。觉得还是不要把这个缺陷引申成为NV仇视程序员的结果吧。
长风 发表于 2009-7-18 02:16


非也,我并非针对英伟达,针对的是233楼的观点:按他的说法,我对英伟达架构不精通,论述中有概念不清的问题,说CUDA不易用就是完全没根据的,反对CUDA是因为我水平不够不会用了。

其实,就算把英伟达的芯片设计人员叫来,让他编个暗黑破坏神出来,他做得到么?做芯片做的再牛,应用方面一样得程序员帮忙,人家不用,你照样傻眼。

举个例子:我下围棋比刘翔好多了,是不是我就要看不起刘翔?我跑步比霍金快,是不是在我眼里霍金就是个废人?人各有所长,即使某方面比别人懂得多,其他方面也一样会不如别人,要尊重人,自大不得。

假如英伟达也自认为架构肯定是自己有理,别人不支持都是因为水平太差(当然,此假设基本是不成立的),那CUDA以后就是程序员们的公敌了:芯片设计人员牛是吧?那好,程序员都不用他们的东西。CUDA程序都让设计芯片的编去,看他们能编出什么东西来?

另外借用你的说法:“CUDA编程的友好性缺陷,不是NV不想修正,是目前力所不能及。”既然他们目前还没有能力解决这个瓶颈,而这个瓶颈又是由于CUDA本身的复杂性决定的,那么CUDA又何以引领GPGPU的未来呢?

就像奔腾四的NET BURST架构一样,英特尔发现这个架构已经没有前途,就转而开发了酷睿架构,这是很明智的策略。如果他们还要死抱着去对抗AMD的话,现在英特尔早就死了!同样的,发现了CUDA的缺陷之后,英伟达还会死撑着去拿它“引领GPGPU的未来么”?相信英伟达不会那么不明智,未来他们肯定会祭出更优秀的GPGPU体系,而没有未来的CUDA将会逐渐被人遗忘。
回复

使用道具 举报

发表于 2009-7-18 17:59 | 显示全部楼层
中间实用派。。。。
N卡支持的游戏越多,那就换N卡。相反就换A卡。、。。
回复

使用道具 举报

发表于 2009-7-18 20:19 | 显示全部楼层
界面的友好程度也不一定影响到CUDA的高效性和功能的强大,例如现在C/C++语言的友好程度虽然比不上C#/JAVA等等,但是它的高效和功能强大是无可否认的,据说强大的cryengineII也是由C++开发的。
回复

使用道具 举报

发表于 2009-7-18 21:23 | 显示全部楼层
界面的友好程度也不一定影响到CUDA的高效性和功能的强大,例如现在C/C++语言的友好程度虽然比不上C#/JAVA等等,但是它的高效和功能强大是无可否认的,据说强大的cryengineII也是由C++开发的。
tyro 发表于 2009-7-18 20:19


你还是没有理解大家说的cuda复杂的原因。cuda复杂主要并不是说他语法复杂,所以说写一个cuda程序很简单。
复杂是指优化复杂。优化之所以会复杂是因为需要开发者深刻了解和理解NV显卡的硬件构架。
c和c++只是一种语言,并不需要开发者考虑太多与硬件相关的问题。
回复

使用道具 举报

发表于 2009-7-18 21:31 | 显示全部楼层
本帖最后由 arnew 于 2009-7-18 21:32 编辑
非也,我并非针对英伟达,针对的是233楼的观点:按他的说法,我对英伟达架构不精通,论述中有概念不清的问题,说CUDA不易用就是完全没根据的,反对CUDA是因为我水平不够不会用了。

其实,就算把英伟达的芯片设 ...
weihua8206 发表于 2009-7-18 16:24

Intel并不是看P4的构架不行改core构架。Intel财大气粗,通常有好几个团队同时进行cpu构架的研发。

P4研发团队和酷睿是两个完全不同的团队。不过这不是其他公司,比方NV能做到的吧。

例如NV发现GT200的构架实际上已经存在问题了,但是短时间内根本无法拿出新的解决方案。
回复

使用道具 举报

发表于 2009-7-18 21:44 | 显示全部楼层
254# arnew

这样的复杂性存在也不为过,本人也是软件方向的,也接触不少编程的人,觉得较多编程的朋友(包括本人)太过讲专注力放在 编程语言本身上面,方便性,友好性,忽略的它背后根本的东西:算法/和数学模型,还有就是一些基本的硬件知识。一普通受过训练的编程人员写一个XX应用系统基本不成问题,但是要他们实现一些较为常用基本算法,编译原理中的一些算法,图像处理,关于树和图论的一些算法等等 就没多少人熟悉了。
回复

使用道具 举报

发表于 2009-7-18 22:21 | 显示全部楼层
本帖最后由 weihua8206 于 2009-7-18 22:28 编辑
Intel并不是看P4的构架不行改core构架。Intel财大气粗,通常有好几个团队同时进行cpu构架的研发。

P4研发团队和酷睿是两个完全不同的团队。不过这不是其他公司,比方NV能做到的吧。

例如NV发现GT200的构架实 ...
arnew 发表于 2009-7-18 21:31


英伟达是一家扩张型的企业,他们的科研实力也非常强大,他们的芯片开发肯定也是分好几个梯队的。

举个简单的例子:当年FX5XXX系列显卡在与ATI的竞争中一败涂地,但英伟达很快开发出了新一代的GF6系列,重新掌握了主动。

像英伟达这样的企业,不可能总让研发人员像蚂蚁一样不停地忙着干活:当这一代的技术正在开发中的时候,他们会组织另外一批人进行新技术的起草和筹备工作,等这一代产品面试之时,他们马上就能投入下一代产品的研制,正因为如此,他们才有能力像英特尔一样长期保持强势。

因此,我们有理由相信,英伟达不会把错误继续下去,用新的体系来代替CUDA体系是可以预见的。

题外话,如果没有AMD的K8来竞争,我们现在肯定用着数千元一片的P4 4.5G,资本家都是贪婪的,没有竞争压力,他们不会把好产片早早拿出来的。拿出来也是天文数字的价格。
回复

使用道具 举报

发表于 2009-7-18 23:40 | 显示全部楼层
在一个已经非常成熟的领域中另起炉灶,闭门造车,除非技术上有着无与伦比的优势,否则是不可能成功的。
回复

使用道具 举报

发表于 2009-7-19 00:00 | 显示全部楼层
顶顶更健康
回复

使用道具 举报

发表于 2009-7-19 00:26 | 显示全部楼层
249# weihua8206

朋友,首先,我没有支持正方或反方观点,我是对你的思辨方法提出了异议。

首先,你说NV的芯片设计人员与程序员作对,故意令CUDA编程繁琐无比,并趾高气昂地说“爱用不用”云云,这与实际情况绝对不是夸张修饰的关系,这是不同性质的两种情形,你虚拟一种不可能存在的情形用以证明你的观点,似有不妥;
其次,我不是因为你不懂CUDA编程才对你质疑,我是因为你不仅不懂CUDA编程,你对CUDA编程根本就是敌视,对掌握一定CUDA编程的人根本没有一点起码的尊重,不仅对CUDA知识,乃至对本人,都没有;
再次,你所说前面一位用GOOGLE翻译的网友如何如何,一、如上所言,我不是因为你不懂CUDA编程,才如何如何;二、用GOOGLE翻译说明不了人家没看懂,也说明不了人家不懂CUDA编程,你扯上这个算是哪门子事?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-28 20:22

Powered by Discuz! X3.4

© 2001-2017 POPPUR.

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