楼主: 图腾部落

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

[复制链接]
论坛徽章:
0
201#
发表于 2009-12-27 11:25 | 只看该作者
CUDA基本原理是利用几百个GPU同时执行计算命令,把一个计算工作分割成几百份,每个GPU读取自己的部分计算,所以对每个GPU来说读取量很小,读完少量数据马上计算,同样的系统带宽可以有更高的效率,但我的观点还是,利用几百个GPU并行运算,并不能达到几百个CPU那样的理想速度,一方面需要调用资源,会花费时间,另一方面每个线程之间很难进行通信,这样效率快,但计算中途要进行同步,同步就需要等所有的同类进程都完成,总之操作起来很多地方会浪费时间,更何况很多运算只能用线性计算,因为每一步都需要上一步的结果。另外我觉得CUDA还有一个很大的不利条件,从来没见有人提过,GPU是显卡的计算核心,家用计算机的显卡一般都有很多工作,即使用户不开很多程序,切换程序和调整分辨率都会影响GPU资源的占用,这在设计软件的时候肯定要有影响,所以软件可能测试的时候有很高的效率,但开几个网页就可能慢很多,再或者这种软件一开始运行就禁止运行其它软件。利用GPU是不错,但GPU本身有它自己的工作,分配缓存等资源的时候应该会有很多麻烦。至于服务器应该没有这方面的问题,但我不太懂。

使用道具 举报

回复
论坛徽章:
1
2011新春纪念徽章
日期:2011-02-18 11:42:48
202#
发表于 2009-12-27 13:43 | 只看该作者
CUDA是由NVIDIA(英伟达)推出的通用并行计算架构。该架构充分将GPU强大的并行计算能力调动起来,使GPU能够在解决复杂计算问题上发挥其先天的优势。开发人员现在仅使用C语言(C语言是应用最广泛的一种高级编程语言),就能在基于CUDA架构的GPU(图形处理器)上编写程序,所编写出的程序可以在支持CUDA的处理器上以超高性能运行。CUDA将来还会支持其它语言,包括FORTRAN, Python以及C++。

CUDA技术开启了GPU实现通用运算的大门,是GPU从专用平台走向通用平台的一个里程碑,自然也是下一场计算革命的真正起点。

与英特尔的X86架构不同,CUDA基于GPU,但不拘于GPU,而是取长补短,将CPU串行计算和GPU的并行计算融合,开启“CPU+GPU协同计算”的全新时代,即“异构计算”。

“异构计算”真正实现了系统整体计算能力的最大化利用:GPU和CPU协同工作,GPU处理大量的图形和并行处理,CPU处理操作系统和指令的逻辑控制。

簡而言之,CUDA的出現,使GPU不仅成为游戏玩家的最爱,也受到科研机构的青睐。從而使GPU更具有與CPU并驾齐驱,或說更高一層的能力。CUDA也使得个人超级计算机的普及成为可能,成为一场真正的革命。

使用道具 举报

回复
论坛徽章:
1
2011新春纪念徽章
日期:2011-02-18 11:42:48
203#
发表于 2009-12-27 13:46 | 只看该作者
CUDA开发者软件开发包(SDK)提供了一些范例(附有源代码),以帮助使用者开始CUDA编程。这些范例包括:
· 并行双调排序
· 矩阵乘法
· 矩阵转置
· 利用计时器进行性能评价
· 并行大数组的前缀和(扫描)
· 图像卷积
· 使用Haar小波的一维DWT
· OpenGL和Direct3D图形互操作示例
· CUDA BLAS和FFT库的使用示例
· CPU-GPU C—和C++—代码集成
· 二项式期权定价模型
· Black-Scholes期权定价模型
· Monte-Carlo期权定价模型
· 并行Mersenne Twister(随机数生成)
· 并行直方图
· 图像去噪
· Sobel边缘检测滤波器
· MathWorks MATLAB® 插件

使用道具 举报

回复
论坛徽章:
1
2011新春纪念徽章
日期:2011-02-18 11:42:48
204#
发表于 2009-12-27 13:47 | 只看该作者
CUDA(Compute Unified Device Architecture),CUDA的出现,使一直孤军奋战的CPU终于有了工作伙伴,提高运行速度不再是无限压榨CPU的最高速度,在几百个辛勤的“小弟”的帮助下,CPU从抹桌洗碗的孤单打工族,摇身一变成了部门总管,哪里有工作,指挥小弟们一拥而上。有了CUDA,几乎已到极限的运行速度再提高几百倍不是梦,计算机业似乎踏入了一个全新的领域。
但对于这种速度的提升,前途却不是那么坦荡,开发人员现在可以用C语言编写程序,利用GPU来协助CPU处理数据,听起来似乎万事俱备,但其复杂度却不是C语言编写程序可比的,CUDA编程语言几百页的说明要烂熟于心,这已经不是易事,缺乏专业的开发工具,使编程的第一步难上加难,不管是WINDOWS还是LINUX,在安装了对应的驱动,SDK,工具包之后,还要配合别的软件以及修改N多注册表项,一个字节的修改错误导致的出错提示,让初学者们已经搜尽百度。高手们不断的写出模式包,安装教程,说明,却又被软件版本不断淘洗,某个模式包对应某个版本,某种修改对应某个版本的工具包……
用CUDA编写程序时,又被各种数字的乘法搞晕,栅格中的几行几列,乘以几加几,全部要用编程员的大脑计算,检验起来更是头大如斗,从LOCAL到SHARED,各种不同的缓存速度又不同,可以处理的数据也不同……
开发环境的简化,需要大量程序员的努力,但这种大量努力的前提,是GPU技术的需求性的提高。利用GPU提高运算速度是可行的,但必须是大量单调却统一的计算工作,再分配给所有GPU并发执行,所以提速几百倍只限于一部分工作,而且需要很好的统筹安排,这也要耗费CPU的传统能力和程序员的脑细胞。
然而目前来讲,GPU并不是电脑的“制式武器”,只有NVIDIA的显卡支持此种技术,这使得有些初学者不得不用CPU来模拟GPU的功能,性能方面的数据完全无法参考。打开市场,让NVIDIA显卡成为电脑内必要的组成部分,成了一切进展的前提,由此推断,NVIDIA与两大CPU厂商合作,使其集成在主板上的可能性是很高的,也有可能与笔记本厂商合作,使大部分笔记本带有NVIDIA的显卡,使之有CUDA开发的可能。
总而言之,提高市场占有度,才能提高CUDA开发的可能性和必要性,需求量有了,才能推动开发环境的简化,编程员们才能更快的使用GPU进行大规模的软件开发。CUDA的GPU加速之路似易实难,好象战士的武器升级了,射程增加10倍,以为是激光武器,谁知道到手的是使用专用子弹,操作繁索,根据天气条件命中率不同的越远程狙击步枪。究竟有几个战士会选择这种射程的升级呢?

使用道具 举报

回复
论坛徽章:
1
2011新春纪念徽章
日期:2011-02-18 11:42:48
205#
发表于 2009-12-27 13:50 | 只看该作者
CUDA是一种通用并行计算架构.可用于科学研究,模拟计算,动画制作等!CUDA在专业音频处理上的应用


GPU Impulse Reverb一定会在电脑音乐发展历史上记下一笔,它是目前第一款可以利用显卡来运算的效果器插件,这意味着你可以用它来得到高精度的卷积混响效果,而不费CPU一丝一毫之力!
GPU Impulse Reverb利用NVidia显卡的CUDA运算技术,可运行在NVIDIA的显卡上,推荐使用G80系列显卡(G8xxx及以上型号的显卡),并使用最新的支持CUDA的驱动。
GPU Impulse Reverb很简单,就是读取一个8-32bit的立体声wav文件,将它作为脉冲响应来运算卷积混响效果。    难道它的声音就比其它卷积混响效果器软件要好吗?目前还没有详细对比,但可以肯定的是:你完全解放了CPU资源(虽然GPU Impulse Reverb也需要消耗1%的CPU资源,但几乎可以忽略不计)理论上你可以得到音质更好的混响效果,因为卷积是一种非常复杂的算法,目前的卷积混响效果器软件都会在运算精度上有所妥协。
GPU Impulse Reverb只是实验的第一步,这虽然只是一小步,但确实是电脑音乐发展历史上的一大步!

使用道具 举报

回复
论坛徽章:
1
2011新春纪念徽章
日期:2011-02-18 11:42:48
206#
发表于 2009-12-27 13:51 | 只看该作者
GPU超强的计算能力让它在通用计算领域大有可为,而CUDA则让它变成可能,简单易用的开发环境让CUDA主导起GPU计算的革命。
CUDA(Compute Unified Device Architecture)是一个新的基础架构,这个架构可以使用GPU来解决商业、工业以及科学方面的复杂计算问题。跟以往的GPGPU概念不同的是,CUDA是一个完整的解决方案,包含了API、C编译器等,能够利用显卡核心的片内L1 Cache共享数据,使数据不必经过内存-显存的反复传输,shader之间甚至可以互相通信。对数据的存储也不再约束于以往GPGPU的纹理方式,存取更加灵活,可以充分利用stream out特性。以上几点都将大大提高GPGPU应用的效率。例如,在游戏中我们可以使用CUDA来让GPU承担整个物理计算,而玩家将会获得另他们感到惊奇的性能和视觉效果。另外,用于产品开发和巨量数据分析的商业软件也可以通过它来使用一台工作站或者服务器完成以前需要大规模的计算系统才能完成的工作。这一技术突破使得客户可以任何地方进行实时分析与决策。同时,一些以前需要很先进的计算技术来达到的强大计算能力的科学应用程序,也不再受限在计算密度上;使用CUDA的计算可以在现有的空间里为平台提供更强大的计算性能。CUDA采用C语言作为编程语言提供大量的高性能计算指令开发能力,使开发者能够在GPU的强大计算能力的基础上建立起一种效率更高的密集数据计算解决方案。
CUDA工具包推出已有1年,它的推出马上受到了众多软件/游戏开发商以及科研机构和程序爱好者的欢迎,NVIDIA方面也将发布最新的CUDA 2.0版本。相信在未来,CUDA将会受到越来越多的领域的支持。目前,支持CUDA环境的GPU主要有采用统一渲染架构的显示核心。

CUDA的未来
首先我们从GPU的处理能力来看,现在的显卡和游戏是互相推动的发展,游戏需要更强劲的GPU,GPU为了满足游戏的需求也必须要不断的升级,可以预计未来GPU计算能力还会继续不断的增加。那么现在对于CUDA的开发者来说,CUDA学习还有CUDA的软件能够随着GPU的性能提升而获利。
目前已发布软件众多的CUDA技术的软件,比如鼎鼎大名的PhotoShop CS4,根据NVIDIA表示在未来一段时间里也将会有不少其他方面的CUDA软件将出现。
视频功能的日渐丰富是当今计算机发展的主流趋势,这些软件通过GPU 的提升可以明显的得到更快、更连贯的显示效果。而这些性能的改变单靠提升CPU的运算性能,是无法完全实现的。可以说,CUDA将GPU强大的浮点运算能力转化为全新的应用方式更加简单,将成为PC机正在经历的一场全新变革;我们的数字生活也将会因CUDA开发GPU强大运算能力而步入全新的视觉时代。未来随着更多的软件开发人员加入CUDA开发GPU强大的运算能力,CUDA会带给我们更多的惊喜。未来CUDA带来一个新的GPU使用方式。

使用道具 举报

回复
论坛徽章:
0
207#
发表于 2009-12-27 13:53 | 只看该作者
CUDA目前还属于前沿技术,相关的应用以及工具都还不算多,而且功能也有限。
下面先介绍一款工具:
在支持CUDA的GPU Caps Viewer 1.7.0发布以后,沉寂了半年之久,Geek3d终于放出了GPU Caps Viewer 1.8.0,这个新版本加入了OpenCL和OpenGL 3的支持,推荐大家下载。 与 GPU-Z不同,GPU Caps Viewer的检测很全面,特别是OpenGL的检测,附带检查CPU主频,内存容量等。如果你的显卡支持OpenGL 2.0,那么你可以使用软件自带的测试工具进行一下测试,最低需要NVIDIA Geforce 5或者ATI Radeon 9600以上显卡。

下面是GPU Caps Viewer 1.8.0详细更新内容:

1.新增对OpenCL GPU/CPU demo的支持
2.新增两个OpenGL 3 demo
3.新增OpenCL面板支持OpenCL设备、
4.Radeon显卡可显示核心和显存频率(待机/UVD/3D)
5.新增GPU计算确认框
6.首个面板重新排列,显示重要信息
7.修正一些问题

使用道具 举报

回复
论坛徽章:
0
208#
发表于 2009-12-27 16:03 | 只看该作者
顶把 不清楚

使用道具 举报

回复
论坛徽章:
0
209#
发表于 2009-12-27 16:05 | 只看该作者
CUDA在解决工业及科学计算方面可能相对于CPU有优势,毕竟是通用并行计算架构,但可能离真正的商业化还有不少的问题函待解决。发表于 2009-12-25 17:46   
从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产品

使用道具 举报

回复
论坛徽章:
118
现任管理团队成员
日期:2011-05-07 01:45:08马上有钱
日期:2014-02-18 16:43:09马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14ITPUB元老
日期:2014-03-05 22:46:57版主2段
日期:2014-03-27 02:21:00射手座
日期:2015-11-10 10:28:18
210#
发表于 2009-12-28 13:36 | 只看该作者
现将认真回答问题,获得奖励人员的id公布如下:

viadeazhu
382564549
chris1244
lovebcb
barcode
jieforest
gaoko
goodhawk
yueyangflash
wysfenghuo007
slip2
shuazi313
robinho.lu
ichiaboss
hppyspring
daibing0061
hailen
lovelelesky
oraclele
shuitin
jinjingsm
yaosj2k
foxclever
ly215197
jinshen1979
abigailhui
sttomy
sammyandy
yanggq
yaosj2k
冰之莹
驦敐蝛澱
stablelu
亭华龙哥
zengshaojie
【风云】
PhaedraC
JuliaHui
DiantheYin

请大家查收一下,如有问题请和我联系!!
非常感谢大家的参与!!!

使用道具 举报

回复

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

本版积分规则 发表回复

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