广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 3714 个阅读者
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
johnnydee 手机
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x30 鲜花 x29
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[讨论][显示卡] 显示卡的C语言开发转译好工具-简介CUDA技术





NVIDIA的CUDA ZONE专区,目前的CUDA已经到2.0版本,而且也提供对应的驱动以及工具程式还有SDK让各位下载。


显示卡的C语言



能够支援CUDA技术的显示晶片核心编号,还有更多只是小弟没有收录在同一张图片内,详情可以请各位上CUDA ZONE专区网站:http://www.nvidia.com.tw/ob...me_tw.html#


CUDA是NVIDIA从2007年就开始推广的技术,只是最近跟着PhysX物理加速这个技术被大量曝光,使得大家也注意到这个属于程式设计应用范畴的专业技术。它采用了程式设计师界最流行的C语言相容架构,另外开发了很多工具程式例如:NVIDIA专用组译程式,专用SDK程式码范例等等。说实在话,小弟专科的程式语言是暑假还要来的那种人,所以由小弟来写语言只怕笑掉一堆人的大牙,陷入无限的「回圈」之中啊。但是即使如此,小弟仍然可以看得懂CUDA技术的主要核心价值,那就是把原本交给CPU运算的部分,经由转译程式后,可以让GPU用最短的时间处理完毕,因此称呼它为显示卡的C语言是一点也不为过!



这是目前很多3D网站或者是一些影像处理的玩家使用CUDA程式撰写出来的精选范例档,目前可以看到有将近122个不同国家不同用途的开发者作品,有针对医学,有的是3D绘图等等。


为何要把CPU的工作抢过来?



目前总共有约30所全世界的有名学校参加了CUDA课程教学,其中也有应用Folding @Home的史丹佛大学研究室,至于在我们国内则是国家高速网路计算中心负责教学与培训的工作。


NVIDIA这么说是有其根据,因为CPU发展到目前,最多还是四个核心,而相较于显示卡已经多到一百多个纯量运算单元在一个晶片内,那么能不能有效利用这些多出来的核心进行一些运算呢?我们可以这样看,CPU负责的是整体、全面性的运算,把这个整体性的东西拆解成很多小的部分来单独运算后再加以结合,如果速度可以比CPU快上许多,就的确有所作为。GPU运算的过程可能也与CPU稍微不同,因为架构也不同,这样的特性让GPU最适合处理「平行资料运算的工作」,让所有不同资料的运算,都经由同样的程式把所有不同的资料当作一个个独立的程序,以平行化来进行加速运算。在这之前,能有效使用显示卡的GPU都是透过OpenGL或者是DirectX来呼叫图形程式函数库,因此使用固定的Shader语言来得到设计师想要的加速运算效果,就是CUDA诞生之前的做法,但缺点是只能在既定的函数库中使用固定流程,增加程式撰写的困难点。



一套共八片教学DVD,内容都是非常精华的教学课程。



内容对于非程式开发人员来说,可能两分钟内就可以让人睡着,对于写程式的人,则是如获至宝。



从介绍开始,一直到后面实作都相当精辟,而且解说的非常精彩。


相容于C语言的程式奥义



前面提到的CUDA 2.0 SDK下载安装完后会多出这个东西在桌面,这里面有各种的CUDA测试以及预先写好的Sample。


如果是游戏开发者的话,写OpenGL或者是DirectX的语言函式库基本上一定没有问题的,不过要能有广泛的推展到一般程式设计师都能使用的话,势必要再创造一套方便好用的SDK以及相容于最流行的程式语言上,这么一来程式设计师无须重头学习适应,推广的速度才能像野火燎原一般普及。NVIDIA基于这个利基点,在2007年左右推出了CUDA这套相容于C语言的组译程式以及SDK套件,让一般人也能透过撰写C语言让GPU也能提供它强大的运算能力。而使用NVIDIA组译程式完成的C语言程式,程式码仍然保存C语言架构,也无须担心除虫以及管理的问题,可以说使C语言的执行能力更上了三、四层楼那么高啊!



例如这是流体动态模拟,用滑鼠去点去拉,水波纹就好像真实的动态一般的旋转流动。


真正加入「CUDA」的绘图晶片要算是G80以后了,这个时间刚好是DX10版本推出后,虽然以DX10的改良来说,有关Shader的指令集已经颇为接近一般程式语法,但它还是为3D绘图专用,仍然跟你我知道的C语言是两码子事情;而CUDA的出现,一言以蔽之,就是利用你我都知道的C语言来达成控制G80绘图核心的便利工具。



这是显示卡的频宽效能测试,没有炫丽的图形,全部都是数字呈现。


不过,对我们这种非开发人员来说,我们只能对于声光效果的表现起共鸣,至于背景的程式丢了多少资料进去Shader运算则非所问。所以之前介绍的PhysX技术只能说是CUDA的其中一小部分而已,它只是证明了把物理运算这个程式码利用GPU来处理后可以达到多棒的效果。当然,用CPU也一定可以执行运算,只是那结果就像是3DMark Vantage所演示的CPU执行GPU模拟运算的下场一般,FPS低到不行。



Folding @ home,现在已经是大家最耳熟能详的应用之一了。

而除了PhysX这个令所有玩家惊艳的游戏画面以外,实际运用上还有相当多程式是可以使用CUDA语言组译后把CPU做的事情丢给GPU处理,例如:影像处理相关,只要是修图,影片压缩、后制处理等等都是属于平行运算的一种,而目前也有一家软体准备在下一次改版后采用CUDA编写的影片压缩、转档、合并的程式,那就是TMPGEnc Express这套相当好用的影片转档压缩以及后制程式。



这是Pre-sample盒装,目前还没上市。



日本的测试版有看到设定选项多出了NVIDIA CUDA 2.0的支援。


取代CPU?


GPGPU这么强大,那么你最后一定也会连想到这个问题,它是不是有可能取代CPU呢?其实就如同之前分析所言,GPGPU目前能够大量处理的大都是平行运算,也就是相类似的资料运算,因此目前以图形、影像的种类居多,而且它必须要仰赖DX10以及OpenGL才能运作。而CPU则是处理无相关的不同资料运算比较擅长,依此以短时间而言,想要取代CPU是不可能的事情。总之,牛丸各有得做,洒尿虾就归我做。我们期待NVIDIA能在很短时间的未来,让我们看到更多的应用方式,才能够大量满足人们饥渴的视觉享受。



NVIDIA甚至还为了这个技术举办一场解码大赛呢。



献花 x1 回到顶端 [楼 主] From:台湾新世纪资通股份有限公司 | Posted:2008-09-29 21:30 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.018793 second(s),query:15 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言