楼主: 图腾部落

第二期有奖讨论:CUDA你知道多少

[复制链接]
论坛徽章:
6
授权会员
日期:2008-03-12 11:00:47参与WIN7挑战赛纪念
日期:2009-11-06 10:44:24生肖徽章2007版:猪
日期:2009-11-17 16:40:482010新春纪念徽章
日期:2010-01-04 08:33:08数据库板块每日发贴之星
日期:2010-10-03 01:01:02ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27
61#
发表于 2009-12-22 09:49 | 只看该作者
CUDA是NVIDIA近来力推的东西,简单的说,CUDA可以认为是一种以C语言为基础的平台,主要是利用显卡强大的浮点运算能力来完成以往需要CPU才可以完成的任务。CPU的特点是什么都能干,但不够专,运算能力不高,而显卡则很专,专门运算图形方面的浮点运算,能力比CPU强10倍以上。但显卡的应用范围狭窄,所以NVIDIA为了让它的显卡在电脑中有更高的地位,就搞了这么个CUDA。
想用CUDA,必须是NVIDIA的显卡,而且要是GEFORCE 8以后的显卡。平常没什么用,只是在转换视频格式,以及看高清时有点作用。暂时CUDA的作用范围仍然比较狭窄,就看NVIDIA能把它如何发展了。

使用道具 举报

回复
论坛徽章:
19
生肖徽章2007版:鸡
日期:2008-05-06 11:09:502012新春纪念徽章
日期:2012-01-04 11:51:22灰彻蛋
日期:2011-12-09 13:09:14ITPUB十周年纪念徽章
日期:2011-11-01 16:21:15迷宫蛋
日期:2011-10-27 20:39:20ITPUB9周年纪念徽章
日期:2010-10-08 09:32:252010新春纪念徽章
日期:2010-01-04 08:33:08生肖徽章2007版:猴
日期:2009-11-17 16:39:51参与WIN7挑战赛纪念
日期:2009-11-06 10:44:24祖国60周年纪念徽章
日期:2009-10-09 08:28:00
62#
发表于 2009-12-22 09:51 | 只看该作者
CUDA(Compute Unified Device Architecture),显卡厂商NVidia推出的运算平台。

  随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的。

  目前只有G80平台的NVidia显卡才能使用CUDA,工具集的核心是一个C语言编译器。G80中拥有128个单独的ALU,因此非常适合并行计算,而且数值计算的速度远远优于CPU。

  CUDA的SDK中的编译器和开发平台支持Windows、Linux系统,可以与Visual Studio2005集成在一起。

  目前这项技术处在起步阶段,仅支持32位系统,编译器不支持双精度数据等问题要在晚些时候解决。Geforce8CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。它是一个完整的GPGPU解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。在架构上采用了一种全新的计算体系结构来使用GPU提供的硬件资源,从而给大规模的数据计算应用提供了一种比CPU更加强大的计算能力。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。

使用道具 举报

回复
论坛徽章:
259
2015年新春福章
日期:2015-03-04 14:19:112015年新春福章
日期:2015-03-06 11:57:31
63#
发表于 2009-12-22 09:52 | 只看该作者
怎么说GPU还是不能替代CPU的吧~
发展成互补也不错!

使用道具 举报

回复
论坛徽章:
4
授权会员
日期:2008-03-12 11:08:41生肖徽章2007版:龙
日期:2009-11-16 18:41:542010新春纪念徽章
日期:2010-01-04 08:33:08ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27
64#
发表于 2009-12-22 09:53 | 只看该作者
在2006年11月份, NVIDIA 引入了CUDA™概念, 一个通用并行计算架构—含有新的并行编程模型和指令架构– 其使得将NVIDIA GPU中的并行计算引擎的能力得以提升从而利用该架构能比在传统CPU上更加高效的解决许多复杂计算问题。

  CUDA 的软件环境使得开发者能够使用C作为高级语言来进行CUDA编程。如图1-3所示,其他的语言或者应用程序接口(API)在未来也会被支持,诸如 FORTRAN, C++, OpenCL, 以及 Direct3D 11 Compute。
多核 CPU 和多核 GPU 的出现意味着并行系统已成为主流处理器芯片。此外,根据摩尔定律,其并行性将不断扩展。这带来了严峻的挑战,我们需要开发出可透明地扩展并行性的应用软件,以便利用日益增加的处理器内核数量,这种情况正如 3D 图形应用程序透明地扩展其并行性以支持配备各种数量的内核的多核 GPU。

  CUDA 是一种并行编程模型和软件环境,用于应对这种挑战,同时保证熟悉 C 语言等标准编程语言的程序员能够迅速掌握 CUDA。

  CUDA 的核心有三个重要抽象概念:线程组层次结构、共享存储器、屏蔽同步(barrier synchronization),可轻松将其作为 C 语言的最小扩展级公开给程序员。

  这些抽象提供了细粒度的数据并行化和线程并行化,嵌套于粗粒度的数据并行化和任务并行化之中。它们将指导程序员将问题分解为更小的片段,以便通过协作的方法并行解决。这样的分解保留了语言表达,允许线程在解决各子问题时协作,同时支持透明的可伸缩性,使您可以安排在任何可用处理器内核上处理各子问题:因而,编译后的 CUDA 程序可以在任何数量的处理器内核上执行,只有运行时系统需要了解物理处理器数量。

  可伸缩的编程模型允许CUDA架构能够在处理器的数目以及内存分配上具备很大的市场跨度:从高端狂热玩家的 GeForce GTX 280 GPU 以及专业的Quadro 和 Tesla 计算产品到主流的价格便宜的GeForce GPU。

使用道具 举报

回复
论坛徽章:
3
参与WIN7挑战赛纪念
日期:2009-11-12 13:57:40生肖徽章2007版:狗
日期:2009-11-17 16:40:29ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27
65#
发表于 2009-12-22 09:58 | 只看该作者
CUDA是什么?很多人认为它是一个由NVIDIA设计的一种新软件或者新API,其实CUDA是一种硬件架构,也就是说目前NVIDIA的GeForce产品全都基于CUDA架构设计。CUDA架构最主要的包含两个方面:一个是ISA指令集架构;第二硬件计算引擎。实际上它就是硬件和指令集,这两个方面是CUDA的架构。

      NVIDIA GPU的架构就是CUDA的架构,举例来说,你可以把它看成是跟Intel的X86或者IBM的Cell,他们都是CPU架构,而CUDA架构是基于GPU的架构。

      CUDA的GPU架构和CPU架构很类似,比如X86是包含一套指令集和执行X86各种各样的CPU,而对于CUDA也是一样的,NVIDIA有一套指令集ISA,还有各种各样执行指令集和各种各样的硬件引擎。另外CUDA到目前为止,它包含了一个C语言的编译器,就是在CUDA上面的C语言,CUDA这个架构还可以支持其他的API,包括OpenCL或者DirectX,同时以后NVIDIA的CPU还支持其他语言,包括Fortran、Java、Python等各种各样的语言,可以说这种架构是原生的,专门为计算接口而建造的这样的一个架构。CUDA硬件架构包括指令集都是非常适合于并行计算,为异构计算而设计的一整套架构。

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2009-11-06 16:09:08生肖徽章2007版:狗
日期:2009-11-16 18:46:47ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27
66#
发表于 2009-12-22 10:00 | 只看该作者
CUDA是NVIDIA近来力推的东西,简单的说,CUDA可以认为是一种以C语言为基础的平台,主要是利用显卡强大的浮点运算能力来完成以往需要CPU才可以完成的任务。CPU的特点是什么都能干,但不够专,运算能力不高,而显卡则很专,专门运算图形方面的浮点运算,能力比CPU强10倍以上。但显卡的应用范围狭窄,所以NVIDIA为了让它的显卡在电脑中有更高的地位,就搞了这么个CUDA。想用CUDA,必须是NVIDIA的显卡,而且要是GEFORCE 8以后的显卡。平常没什么用,只是在转换视频格式,以及看高清时有点作用。暂时CUDA的作用范围仍然比较狭窄,就看NVIDIA能把它如何发展了。
    CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。将来还会支持其它语言,包括FORTRAN以及C++。
    目前,支持CUDA的GPU销量已逾1亿,数以千计的软件开发人员正在使用免费的CUDA软件开发工具来解决各种专业以及家用应用程序中的问题。这些应用程序从视频与音频处理和物理效果模拟到石油天然气勘探、产品设计、医学成像以及科学研究,涵盖了各个领域。目前市面上已经部署了超过一亿颗支持CUDA的GPU,数以千计的软件开发人员正在使用免费的CUDA软件工具来为各种应用程序加速。

使用道具 举报

回复
论坛徽章:
3
授权会员
日期:2009-11-06 16:09:08生肖徽章2007版:狗
日期:2009-11-16 18:46:47ITPUB9周年纪念徽章
日期:2010-10-08 09:32:27
67#
发表于 2009-12-22 10:03 | 只看该作者
CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。它是一个完整的GPGPU解决方案,提供了硬件的直接访问接口,而不必像传统方式一样必须依赖图形API接口来实现GPU的访问。在架构上采用了一种全新的计算体系结构来使用GPU提供的硬件资源,从而给大规模的数据计算应用提供了一种比CPU更加强大的计算能力。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。
从CUDA体系结构的组成来说,包含了三个部分:开发库、运行期环境和驱动(表2)。
开发库是基于CUDA技术所提供的应用开发库。目前CUDA的1.1版提供了两个标准的数学运算库——CUFFT(离散快速傅立叶变换)和CUBLAS(离散基本线性计算)的实现。这两个数学运算库所解决的是典型的大规模的并行计算问题,也是在密集数据计算中非常常见的计算类型。开发人员在开发库的基础上可以快速、方便的建立起自己的计算应用。此外,开发人员也可以在CUDA的技术基础上实现出更多的开发库。
运行期环境提供了应用开发接口和运行期组件,包括基本数据类型的定义和各类计算、类型转换、内存管理、设备访问和执行调度等函数。基于CUDA开发的程序代码在实际执行中分为两种,一种是运行在CPU上的宿主代码(Host Code),一种是运行在GPU上的设备代码(Device Code)。不同类型的代码由于其运行的物理位置不同,能够访问到的资源不同,因此对应的运行期组件也分为公共组件、宿主组件和设备组件三个部分,基本上囊括了所有在GPGPU开发中所需要的功能和能够使用到的资源接口,开发人员可以通过运行期环境的编程接口实现各种类型的计算。
由于目前存在着多种GPU版本的NVIDIA显卡,不同版本的GPU之间都有不同的差异,因此驱动部分基本上可以理解为是CUDA-enable的GPU的设备抽象层,提供硬件设备的抽象访问接口。CUDA提供运行期环境也是通过这一层来实现各种功能的。目前基于CUDA开发的应用必须有NVIDIA CUDA-enable的硬件支持,NVIDIA公司GPU运算事业部总经理Andy Keane在一次活动中表示:一个充满生命力的技术平台应该是开放的,CUDA未来也会向这个方向发展。由于CUDA的体系结构中有硬件抽象层的存在,因此今后也有可能发展成为一个通用的GPGPU标准接口,兼容不同厂商的GPU产品
CUDA的出现,使一直孤军奋战的CPU终于有了工作伙伴,提高运行速度不再是无限压榨CPU的最高速度,在几百个辛勤的“小弟”的帮助下,CPU从抹桌洗碗的孤单打工族,摇身一变成了部门总管,哪里有工作,指挥小弟们一拥而上。有了CUDA,几乎已到极限的运行速度再提高几百倍不是梦,计算机业似乎踏入了一个全新的领域。
但对于这种速度的提升,前途却不是那么坦荡,开发人员现在可以用C语言编写程序,利用GPU来协助CPU处理数据,听起来似乎万事俱备,但其复杂度却不是C语言编写程序可比的,CUDA编程语言几百页的说明要烂熟于心,这已经不是易事,缺乏专业的开发工具,使编程的第一步难上加难,不管是WINDOWS还是LINUX,在安装了对应的驱动,SDK,工具包之后,还要配合别的软件以及修改N多注册表项,一个字节的修改错误导致的出错提示,让初学者们已经搜尽百度。高手们不断的写出模式包,安装教程,说明,却又被软件版本不断淘洗,某个模式包对应某个版本,某种修改对应某个版本的工具包……
用CUDA编写程序时,又被各种数字的乘法搞晕,栅格中的几行几列,乘以几加几,全部要用编程员的大脑计算,检验起来更是头大如斗,从LOCAL到SHARED,各种不同的缓存速度又不同,可以处理的数据也不同……
开发环境的简化,需要大量程序员的努力,但这种大量努力的前提,是GPU技术的需求性的提高。利用GPU提高运算速度是可行的,但必须是大量单调却统一的计算工作,再分配给所有GPU并发执行,所以提速几百倍只限于一部分工作,而且需要很好的统筹安排,这也要耗费CPU的传统能力和程序员的脑细胞。

使用道具 举报

回复
论坛徽章:
2
2012新春纪念徽章
日期:2012-01-04 11:55:42ITPUB社区12周年站庆徽章
日期:2013-10-08 14:59:19
68#
发表于 2009-12-22 10:11 | 只看该作者
CUDA是NVIDIA近来力推的东西,简单的说,CUDA可以认为是一种以C语言为基础的平台,主要是利用显卡强大的浮点运算能力来完成以往需要CPU才可以完成的任务。CPU的特点是什么都能干,但不够专,运算能力不高,而显卡则很专,专门运算图形方面的浮点运算,能力比CPU强10倍以上。但显卡的应用范围狭窄,所以NVIDIA为了让它的显卡在电脑中有更高的地位,就搞了这么个CUDA。
想用CUDA,必须是NVIDIA的显卡,而且要是GEFORCE 8以后的显卡。平常没什么用,只是在转换视频格式,以及看高清时有点作用。暂时CUDA的作用范围仍然比较狭窄,就看NVIDIA能把它如何发展了。

使用道具 举报

回复
论坛徽章:
6
八级虎吧徽章
日期:2010-03-11 00:01:07NBA常规赛纪念章
日期:2010-04-15 14:01:10授权会员
日期:2010-07-01 16:39:34ITPUB十周年纪念徽章
日期:2011-11-01 16:25:22蜘蛛蛋
日期:2011-12-12 13:29:542012新春纪念徽章
日期:2012-01-04 11:56:01
69#
发表于 2009-12-22 10:58 | 只看该作者
CUDA是NVIDIA近来力推的东西,简单的说,CUDA可以认为是一种以C语言为基础的平台,主要是利用显卡强大的浮点运算能力来完成以往需要CPU才可以完成的任务。CPU的特点是什么都能干,但不够专,运算能力不高,而显卡则很专,专门运算图形方面的浮点运算,能力比CPU强10倍以上。但显卡的应用范围狭窄,所以NVIDIA为了让它的显卡在电脑中有更高的地位,就搞了这么个CUDA。想用CUDA,必须是NVIDIA的显卡,而且要是GEFORCE 8以后的显卡。平常没什么用,只是在转换视频格式,以及看高清时有点作用。暂时CUDA的作用范围仍然比较狭窄,就看NVIDIA能把它如何发展了。
    CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员现在可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。将来还会支持其它语言,包括FORTRAN以及C++。
    目前,支持CUDA的GPU销量已逾1亿,数以千计的软件开发人员正在使用免费的CUDA软件开发工具来解决各种专业以及家用应用程序中的问题。这些应用程序从视频与音频处理和物理效果模拟到石油天然气勘探、产品设计、医学成像以及科学研究,涵盖了各个领域。目前市面上已经部署了超过一亿颗支持CUDA的GPU,数以千计的软件开发人员正在使用免费的CUDA软件工具来为各种应用程序加速。

使用道具 举报

回复
论坛徽章:
65
双鱼座
日期:2016-01-05 20:12:37咸鸭蛋
日期:2013-06-14 15:32:57迷宫蛋
日期:2013-05-12 08:44:37IT宝贝
日期:2013-04-23 10:39:15蛋疼蛋
日期:2013-04-15 13:49:052013年新春福章
日期:2013-02-25 14:51:24双黄蛋
日期:2012-12-17 11:07:42鲜花蛋
日期:2012-12-12 09:00:39ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:20ITPUB 11周年纪念徽章
日期:2012-09-28 17:34:42
70#
发表于 2009-12-22 11:04 | 只看该作者
- -!好多垃圾信息。。
比较关注GPU可以加速图形、数值计算方面的应用。。相信cad,cae,cfd等厂商关注比较多吧。。。现在计算个算例要很久的时间,如果加速明显,前景还是很光明地。。。

使用道具 举报

回复

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

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表