楼主: 图腾部落

CUDA第四期有奖讨论:谈谈你对CUDA的架构的理解(活动已结束)

[复制链接]
论坛徽章:
0
71#
发表于 2010-1-8 21:43 | 只看该作者
呵呵,大家说的真是太好了!
CUDA平台是透过运用显卡内的Unified Shader Processor进行数学运算,透过这项技术,应用软件可利用显卡强大的浮点处理能力进行运算,相较现时最快的处理器仍有十数倍的优势。CUDA平台支援C语言及在科学研究常用的Fortran语言,透过驱动程式的API接口,达成平行运算,若用户拥有超过两张或以上支援CUDA平台的显卡,驱动程式将透过PCI Express总线自动分配工作至不同GPU上,进一步提升效能。
 NVIDIA将在6月17日跟随GeForce GTX 200系列同日发布CUDA2.0平台,加入双精度运算支援,为应用提供更准确的运算结果,以气像预测为例,使用GeForce8800 GTX对比Pentium D 2.8GHz用于WRF模式气像运算,发现 GeForce 8800 GTX 拥有17倍的效能优势,Cost per FLOP则约为1.2X。

使用道具 举报

回复
论坛徽章:
0
72#
发表于 2010-1-8 21:43 | 只看该作者
学习学习再学习!

使用道具 举报

回复
论坛徽章:
20
青年奥林匹克运动会-竞技体操
日期:2014-09-21 17:40:36马上有房
日期:2014-10-31 14:02:43马上有车
日期:2014-10-31 14:15:27马上有车
日期:2014-10-31 14:16:00NBA常规赛纪念章
日期:2015-04-17 16:16:13NBA季后赛之星
日期:2015-06-25 09:17:08NBA季后赛纪念徽章
日期:2015-06-25 09:36:04佛罗伦萨
日期:2016-05-20 14:08:09NBA季后赛纪念徽章
日期:2016-06-24 10:30:41
73#
发表于 2010-1-8 23:54 | 只看该作者
在 CUDA 的架构下,一个程序分为两个部份:host 端和 device 端。Host 端是指在 CPU 上执行的部份,而 device 端则是在显示芯片上执行的部份。Device 端的程序又称为 "kernel"。通常 host 端程序会将数据准备好后,复制到显卡的内存中,再由显示芯片执行 device 端程序,完成后再由 host 端程序将结果从显卡的内存中取回。

使用道具 举报

回复
论坛徽章:
20
青年奥林匹克运动会-竞技体操
日期:2014-09-21 17:40:36马上有房
日期:2014-10-31 14:02:43马上有车
日期:2014-10-31 14:15:27马上有车
日期:2014-10-31 14:16:00NBA常规赛纪念章
日期:2015-04-17 16:16:13NBA季后赛之星
日期:2015-06-25 09:17:08NBA季后赛纪念徽章
日期:2015-06-25 09:36:04佛罗伦萨
日期:2016-05-20 14:08:09NBA季后赛纪念徽章
日期:2016-06-24 10:30:41
74#
发表于 2010-1-8 23:55 | 只看该作者
由于 CPU 存取显卡内存时只能透过 PCI Express 接口,因此速度较慢(PCI Express x16 的理论带宽是双向各 4GB/s),因此不能太常进行这类动作,以免降低效率。

在 CUDA 架构下,显示芯片执行时的最小单位是 thread。数个 thread 可以组成一个 block。一个 block 中的 thread 能存取同一块共享的内存,而且可以快速进行同步的动作。

每一个 block 所能包含的 thread 数目是有限的。不过,执行相同程序的 block,可以组成 grid。不同 block 中的 thread 无法存取同一个共享的内存,因此无法直接互通或进行同步。因此,不同 block 中的 thread 能合作的程度是比较低的。不过,利用这个模式,可以让程序不用担心显示芯片实际上能同时执行的 thread 数目限制。例如,一个具有很少量执行单元的显示芯片,可能会把各个 block 中的 thread 顺序执行,而非同时执行。不同的 grid 则可以执行不同的程序(即 kernel)。

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
75#
发表于 2010-1-9 01:07 | 只看该作者
先发表声明,我的内容为原创,是近期对CUDA技术跟踪的一点总结,并非网络拷贝!!!。很多数据及内容依据NVIDIA的官方文档。

一、什么是CUDA?
CUDA是Compute Unified Device Architecture,统一计算设备架构,是NVIDIA提出的一种硬件架构,NVIDIA的GeForce显示处理器芯片产品全都基于CUDA架构设计。CUDA架构最主要的包含两个方面:第一是ISA指令集架构;第二是硬件计算引擎。实际上它就是硬件和指令集,这两个方面是CUDA的架构。
CUDA是NVIDIA的GPU计算引擎。它使用“C for CUDA”(带CUDA扩展的C语言)进行编程,通过PathScale的Open64 C编译器完成编译,生成的代码由GPU负责执行。

CUDA架构支持一些第三方计算接口,包括OpenCL和DirectCompute。

二、CUDA支持的GPU包括:
了解这一点在开发上有用,至少你需要清楚你的PC是否支持CUDA技术。
Nvidia GeForce
GeForce GTX 295、GeForce GTX 285、GeForce GTX 280、GeForce GTX 275、GeForce GTX 260、GeForce GTS 250、GeForce GTS 240、GeForce GT 240、GeForce GT 220、GeForce 210/G210、GeForce 9800 GX2、GeForce 9800 GTX+、GeForce 9800 GTX、GeForce 9800 GT、GeForce 9600 GSO、GeForce 9600 GT、GeForce 9500 GT、GeForce 9400 GT、GeForce 9400 mGPU、GeForce 9300 mGPU、GeForce 9100 mGPU、GeForce 8800 Ultra、GeForce 8800 GTX、GeForce 8800 GTS、GeForce 8800 GT、GeForce 8800 GS、GeForce 8600 GTS、GeForce 8600 GT、GeForce 8600 mGT、GeForce 8500 GT、GeForce 8400 GS、GeForce 8300 mGPU、GeForce 8200 mGPU、GeForce 8100 mGPU

Nvidia GeForce Mobile
GeForce GTX 280M、GeForce GTX 260M、GeForce GTS 260M、GeForce GTS 250M、GeForce GT 240M、GeForce GT 230M、GeForce GT 220M、GeForce G210M、GeForce GTS 160M、GeForce GTS 150M、GeForce GT 130M、GeForce GT 120M、GeForce G110M、GeForce G105M、GeForce G102M、GeForce 9800M GTX、GeForce 9800M GTS、GeForce 9800M GT、GeForce 9800M GS、GeForce 9700M GTS、GeForce 9700M GT、GeForce 9650M GT、GeForce 9650M GS、GeForce 9600M GT、GeForce 9600M GS、GeForce 9500M GS、GeForce 9500M G、GeForce 9400M G、GeForce 9300M GS、GeForce 9300M G、GeForce 9200M GS、GeForce 9100M G、GeForce 8800M GTX、GeForce 8800M GTS、GeForce 8700M GT、GeForce 8600M GT、GeForce 8600M GS、GeForce 8400M GT、GeForce 8400M GS、GeForce 8400M G、GeForce 8200M G

Nvidia Quadro
Quadro FX 5800、Quadro FX 5600、Quadro FX 4800、Quadro FX 4700 X2、Quadro FX 4600、Quadro FX 3800、Quadro FX 3700、Quadro FX 1800、Quadro FX 1700、Quadro FX 580、Quadro FX 570、Quadro FX 380、Quadro FX 370、Quadro NVS 450、Quadro NVS 420、Quadro NVS 295、Quadro NVS 290、Quadro Plex 1000 Model IV、Quadro Plex 1000 Model S4

Nvidia Quadro Mobile
Quadro FX 3700M、Quadro FX 3600M、Quadro FX 2700M、Quadro FX 1700M、Quadro FX 1600M、Quadro FX 770M、Quadro FX 570M、Quadro FX 370M、Quadro FX 360M、Quadro NVS 320M、Quadro NVS 160M、Quadro NVS 150M、Quadro NVS 140M、Quadro NVS 135M、Quadro NVS 130M

Nvidia Tesla
Tesla S1070、Tesla C1060、Tesla C870、Tesla D870、Tesla S870

三、第三方封装语言
CUDA通过很多爱好者的努力,已经支持如下语言:Python、Fortran、Java和Matlab。
比如PyCUDA库,可让Python编程者用Python语言访问CUDA并行计算API。
JCuda库则允许从Java程序与CUDA运行时和驱动API交互。
JCublas库则使得Java程序员可使用CUBLAS(基本线性代数子程序的实现)。
JCufft提供了通过Java使用CUFFT的方法,CUFFT是NVIDIA CUDA的快速傅里叶转换的实现。

四、文档
开发文档,下载地址:http://www.nvidia.cn/object/cuda_develop_cn.html
开发文档目前最新版本为2.2版。
《CUDA 2.2 Quickstart Guide》
《CUDA 2.2 Programming Guide》
《CUDA 2.2 Reference Manual》
《CUDA 2.2 Toolkit Release Notes》
《CUDA 2.2.1 SDK Release Notes》
《CUDA Visual Profiler v1.2 Readme》
《Documentation for CUDA BLAS (CUBLAS) Library》
《Documentation for CUDA FFT (CUFFT) Library》
CUDA Plug-in Documentation
《MathWorks MATLAB® Plug-in》
《CUDA Photoshop Plug-ins (documentation): Source code examples for Windows and Mac OS (for CUDA 1.1 and later)》
《CUDA Photoshop Plug-ins: Documentation (for CUDA 1.1 and later)》

五、开发工具
NVIDIA为CUDA架构推出了一系列综合的开发工具。请下载安装文件并按照规定顺序进行安装。
1. CUDA驱动程序
2. CUDA工具包
3. CUDA软件开发包代码实例
CUDA工具包3.0 Beta版:http://forums.nvidia.com/index.php?showtopic=149959 ,它支持Windows  XP、Vista、Win7、32位及64位的Linux、MacOS等。

六、CUDA的发展趋势
CUDA的最初定位是实时、高清3D图形、可编程的图形处理器单元,也即GPU,逐步发展、演进到高度并行、多线程、多核处理器的通用并行计算处理器。换句话说,早期可以把CUDA技术定位为专业级图形图像处理,而到了后期,则必须把CUDA归纳到高性能计算领域。

七、有趣的问题集
1)GPU的浮点计算能力为什么比CPU强太多?
CPU和GPU的浮点计算能力差异大的主要原因是:GPU是专为密集运算、高度并行计算而设计(比如图形渲染就需要大量的密集运算、并行运行)。与CPU相比,GPU内部更多的晶体管用于数据处理而不是数据缓存或流量控制。因此GPU是特别适合处理可作为数据并行计算。如图所示:(GPU&CPU.png)

2)CUDA开发就是C语言编程开发?
这么说是不准确的。虽然目前CUDA技术使用C作为编程语言,但是其设计架构是支持多种语言和多种应用编程接口的,在不久的未来,会支持Fortran、C++、OpenCL、.NET等语言。
如图所示:(Language.png)

最后,希望以上内容为想学习CUDA架构技术的爱好者起到抛砖引玉的作用!!!

[ 本帖最后由 jieforest 于 2010-1-9 01:11 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

使用道具 举报

回复
论坛徽章:
0
76#
发表于 2010-1-9 11:33 | 只看该作者

關注!

各位MM,我叫锄禾,你能叫当午吗?

使用道具 举报

回复
论坛徽章:
0
77#
发表于 2010-1-9 11:42 | 只看该作者

OpenCL的面世,不管对开发人员还是业界人员来说还是消费者来说都是一个非常好的API,它可以使得开发者很容易的开发出跨平台的GPU计算的程序,充分利用GPU强大的计算能力然后应用在各种各样计算的方面。 除了CUDA的架构上除了C语言以外,现在新增加了OpenCL或者DX11这样的API,对于开发人员来说也提供了一种更多的GPU计算的开发环境的一种选择。如果对API很熟悉的程序员,肯定会很高兴的看到OpenCL或者新的API的加入,对于这些人来说他们很容易利用这种计算的API然后开发各种各样GPU计算的程序。NVIDIA也会继续对C语言包括其他语言的支持,实对NVIDIA CUDA C语言来说目前还是唯一的针对GPU的runtime C的语言环境(runtime C的语言环境是指GPU直接执行这个C语言)。CUDA C语言还会进一步的发展,不断会有新的版本推出。CUDA C语言会和OpenCL和DX11这种计算API会共存。除了C语言以外NVIDIA还会推出更多的其他CUDA的语言,包括Fortran,还会有Java等。不管C语言还是Fortran,与OpenCL、Computer shader这种API是一种长期共存的关系。 GPU通用计算时代已经到来了!
以上引用:OpenCL与CUDA架构深入解析

使用道具 举报

回复
论坛徽章:
0
78#
发表于 2010-1-9 15:10 | 只看该作者
如有需要工作流基础架构(提供源代码)或桌面应用软件可联系我!QQ:

876519883  谢谢!

使用道具 举报

回复
论坛徽章:
9
79#
发表于 2010-1-10 09:59 | 只看该作者
很多人对什么是CUDA可能还有一些疑虑,并没有搞清楚CUDA到底是什么。实际上CUDA最主要的包含两个方面:一个是ISA指令集架构;第二硬件计算引擎;实际上是硬件和指令集。 也就是说我们可以把CUDA看做是与X86或者cell类似的架构,但是是基于是GPU,而不是传统的CPU。

  这个其实很好理解,把它和传统的和CPU的架构比较下相信就更容易理解,传统X86是包含一套指令集和执行X86各种各样的CPU,对于CUDA也是一样,CUDA有一套指令集ISA,还有执行指令集各种各样的硬件引擎。CUDA到目前为止包含了一个C语言的编译器,当然CUDA架构还可以支持其他的API,包括OpenCL或者DirectX,同时CUDA还会有其他的语言,包括Fortran、Java、Python等各种各样的语言,可以说CUDA架构是原生的,专门为计算接口而建造的这样的一个架构,这种硬件架构包括指令集都是非常适合于这种并行计算,为异构计算而设计的一整套的架构。

使用道具 举报

回复
论坛徽章:
0
80#
发表于 2010-1-10 10:01 | 只看该作者
CUDA编程的道理和CPU的编程很类似,比如有了X86的指令集,又有X86各种各样的CPU,那么我们只需要对这个指令集编程即可。X86架构上有各种各样的开发工具,当然也有C语言,Fortran语言,Python语言,Java或者以前的Pascal语言,不论你使用什么语言进行开发,最后还是在X86的架构上执行。CUDA也是一样,有了CUDA的指令集,有了支持CUDA的硬件,我们就可以采用不同的途径来进行开发,比如可以采用OpenCL或者DirectX这样的API,也可以用C语言或者Fortran或者Java开发,最终都可以在CUDA架构上运行

使用道具 举报

回复

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

本版积分规则 发表回复

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