楼主: 图腾部落

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

[复制链接]
论坛徽章:
3
2008新春纪念徽章
日期:2008-02-13 12:43:032010广州亚运会纪念徽章:自行车
日期:2010-11-29 10:29:42ITPUB社区12周年站庆徽章
日期:2013-10-17 13:56:59
61#
发表于 2010-1-8 09:45 | 只看该作者
完美的适合并行运算,代号为“Fermi”的下一代CUDA架构是有史以来最先进的GPU计算架构。Fermi拥有超过30亿个晶体管,最多具备512个CUDA核心,可实现超级计算特性与性能。与仅基于CPU的传统服务器相比,而其成本仅为十分之一,而且功耗则仅为二十分之一。

使用道具 举报

回复
论坛徽章:
0
62#
发表于 2010-1-8 11:44 | 只看该作者
认为更倾向软体架构。

使用道具 举报

回复
求职 : 运营总监
论坛徽章:
5334
季节之章:春
日期:2012-10-18 11:31:282014年世界杯参赛球队: 比利时
日期:2014-06-17 14:51:542014年世界杯参赛球队: 希腊
日期:2014-06-17 14:52:18土豪章
日期:2014-06-17 14:56:11季节之章:夏
日期:2012-10-18 11:31:28季节之章:秋
日期:2012-10-18 11:31:28保时捷
日期:2014-01-16 15:25:49生肖徽章:鼠
日期:2014-12-29 16:57:00季节之章:冬
日期:2012-10-18 11:31:28奥运会纪念徽章:跆拳道
日期:2012-08-15 14:36:06
63#
发表于 2010-1-8 14:12 | 只看该作者
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架构深入解析

使用道具 举报

回复
论坛徽章:
66
现任管理团队成员
日期:2011-05-07 01:45:08版主9段
日期:2013-04-21 02:21:02ITPUB年度最佳版主
日期:2014-02-19 10:05:27ITPUB年度最佳版主
日期:2013-01-30 17:30:25ITPUB年度最佳技术原创精华奖
日期:2012-03-13 17:12:05优秀写手
日期:2013-12-18 09:29:15元宝章
日期:2015-02-10 19:57:54金牌徽章
日期:2015-02-10 19:59:42银牌徽章
日期:2015-02-10 19:59:42铜牌徽章
日期:2015-02-10 19:59:41
64#
发表于 2010-1-8 18:21 | 只看该作者
CUDA在国内项目中有啥好的应用?

使用道具 举报

回复
论坛徽章:
124
信息化板块选型征文获奖徽章
日期:2007-09-07 11:21:25马上有车
日期: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-06-10 06:00:28青年奥林匹克运动会-网球
日期:2014-09-13 10:31:45祖国65周年纪念徽章
日期:2014-09-26 23:23:05马上有对象
日期:2014-11-04 23:17:36
65#
发表于 2010-1-8 20:12 | 只看该作者
原帖由 wangfans 于 2010-1-8 18:21 发表
CUDA在国内项目中有啥好的应用?

粉丝送我P,我就说一说

使用道具 举报

回复
论坛徽章:
58
2012新春纪念徽章
日期:2012-01-04 11:56:01
66#
发表于 2010-1-8 21:08 | 只看该作者
代号为“Fermi”的下一代CUDA架构是有史以来最先进的GPU计算架构。Fermi拥有超过30亿个晶体管,最多具备512个CUDA核心,可实现超级计算特性与性能。与仅基于CPU的传统服务器相比,而其成本仅为十分之一,而且功耗则仅为二十分之一。
Fermi通过处理各种各样的计算应用程序,使GPU(图形处理器)与CPU协同处理能够得到广泛应用。Fermi专为C++而设计并附带Visual Studio开发环境,它让并行编程工作变得更加轻松并可加速各种各样的应用程序性能,其覆盖的应用程序范围比以往任何一款架构都更加广泛。Fermi可在光线追踪、物理效果、有限元分析、高精度科学计算、稀疏线性代数、排序以及搜索算法等领域中大幅提升性能。

Fermi包含多项重大创新:
• 512个CUDA核心
• NVIDIA®(英伟达™)并行数据缓存(Parallel DataCache™)技术
• NVIDIA®(英伟达™)GigaThread™ 3.0引擎
• 完全支持ECC

使用道具 举报

回复
论坛徽章:
7
2012新春纪念徽章
日期:2012-01-04 11:56:01itpub13周年纪念徽章
日期:2014-10-08 15:16:50itpub13周年纪念徽章
日期:2014-10-08 15:16:50itpub13周年纪念徽章
日期:2014-10-08 15:16:50
67#
发表于 2010-1-8 21:10 | 只看该作者
随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的。
  目前只有G80、G92、G94和GT200平台的NVidia显卡才能使用CUDA,工具集的核心是一个C语言编译器。G80中拥有128个单独的ALU,因此非常适合并行计算,而且数值计算的速度远远优于CPU。
  CUDA的SDK中的编译器和开发平台支持Windows、Linux系统,可以与Visual Studio2005集成在一起。

使用道具 举报

回复
论坛徽章:
1
68#
发表于 2010-1-8 21:18 | 只看该作者
觉得软件架构更有前景,CUDA所提供的最重要的创新在于,它使得工作在GPU上的线程可以协作解决问题。在线程间通讯实现以后,CUDA将允许应用程序更加高效的执行。由NV GPUs的支持,CUDA有一个直接在GPU上的并行计算缓存,它用于保存频繁使用的信息。在GPU上保存信息可以让计算线程即刻得到共享数据而不是去漫长的等待off-chip的DRAM上的数据。 引入双精度运算能力,可以在一定程度上增强GT200在科学计算领域的适用性.尽管在实际的相关领域中其实有部分甚至只需要16位精度就足够了,但GTX200核心的每一个SM都包括了一个双精度64Bit浮点运算单元,所以每个周期GT200能达成1MAD*30SM=30MAD,在1.5GHz的shader频率下可以达到90 GFLOPS(MAD)的双精度浮点性能, NVIDIA(英伟达)对其称之为可以与8核Xeon处理器(我想应该是指45nm Hypertown内核Xeon E5440 2.83GHz)的水平。不过需要注意的是,Xeon每个内核的浮点单元组合是每两个周期完成一个ADDPD或者一个周期完成一个MULPD,在双精度浮点峰值性能上"含金量"方面似乎要比GT200每个SM单周期MAD高一些。 NVIDIA(英伟达)的对手AMD在RV670上实现了硬件(非模拟)的FP64支持,双精度MAD性能为单精度MAD的1/5,GT200架构的双精度浮点支持应该是 NVIDIA(英伟达)迈向双精度浮点加速器的第一步,未来的架构很可能会把浮点双精度的性能做到单精度的1/2水平,这将是非常可观的。

使用道具 举报

回复
论坛徽章:
0
69#
发表于 2010-1-8 21:28 | 只看该作者
CUDA计算架构已经被业界广泛采用,从CUDA体系结构的组成来说,包含了三个部分:开发库、运行期环境和驱动
  开发库是基于CUDA技术所提供的应用开发库。目前CUDA的1.1版提供了两个标准的数学运算库——CUFFT(离散快速傅立叶变换)和CUBLAS(离散基本线性计算)的实现。这两个数学运算库所解决的是典型的大规模的并行计算问题,也是在密集数据计算中非常常见的计算类型。开发人员在开发库的基础上可以快速、方便的建立起自己的计算应用。此外,开发人员也可以在CUDA的技术基础上实现出更多的开发库。
  运行期环境提供了应用开发接口和运行期组件,包括基本数据类型的定义和各类计算、类型转换、内存管理、设备访问和执行调度等函数。基于CUDA开发的程序代码在实际执行中分为两种,一种是运行在CPU上的宿主代码(Host Code),一种是运行在GPU上的设备代码(Device Code)。不同类型的代码由于其运行的物理位置不同,能够访问到的资源不同,因此对应的运行期组件也分为公共组件、宿主组件和设备组件三个部分,基本上囊括了所有在GPGPU开发中所需要的功能和能够使用到的资源接口,开发人员可以通过运行期环境的编程接口实现各种类型的计算。

使用道具 举报

回复
论坛徽章:
0
70#
发表于 2010-1-8 21:34 | 只看该作者
苦学了一段时间后,感觉对CUDA开发已经有点兴趣了。
CUDA的本质是NVIDIA为自家的GPU编写了一套编译器NVCC极其相关的库文件。CUDA的应用程序扩展名可以选择是.cu,而不是.cpp等。NVCC是一个预处理器和编译器的混合体。当遇到CUDA代码的时候,自动编译为GPU执行的代码,也就是生成调用CUDA Driver的代码。如果碰到Host C++代码,则调用平台自己的C++编译器进行编译,比如Visual Studio C++自己的Microsoft C++ Compiler。然后调用Linker把编译好的模块组合在一起,和CUDA库与标准CC++库链接成为最终的CUDA Application。由此可见,NVCC模仿了类似于GCC一样的通用编译器的工作原理(GCC编译CC++代码本质上就是调用cc和g++)。整个CUDA平台是通过运用显卡内的流处理器进行数学运算,并通过GPU内部的缓存共享数据,流处理器之间甚至可以互相通信,同时对数据的存储也不再约束于以GPU的纹理方式,存取更加灵活,可以充分利用统一架构的流输出(stream out)特性,大大提高应用效率。

使用道具 举报

回复

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

本版积分规则 发表回复

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