|
想过去,我们在购买一块显卡时首先需要了解它究竟有什么样的特效,能支持什么游戏.到了显示芯片被叫成GPU时,显卡就开始有了新的任务,可编程的功能.在最近的这几年里GPU更是以超越了CPU的速度高速发展.今天就算是最便宜的显卡,也可以帮助一个游戏制作人完成想要的特性,便宜和贵的显卡的区别更多的是执行这些应用的快慢,而非能否执行.
想在DX9的时代,GPU的可编程性迎来了革命性的变化--只要GPU符合DX9的API,那么原则上就可以进行HLSL或者ASM实现各种计算操作.这样可编程的GPU就挺身一变成了GPGPU.现在这个GPGPU又要变身成CUDA.这可是通用计算的又一个里程碑.光看GPU的浮点数能力远超过了CPU.可是在过去的五年时间里,许多基于GPU的应用都失败了.为什么呢?原因就在专为显卡设计的图形API限制太大.开发起来难度太大了.
在进行DX10年代,这一切就有了新的转机.CUDA的诞生为众多开发创造了条件.其实CUDA可以简单的看作是专门为GPU设计的C语言开发环境.和以前众厂商各自开发不同的是,这次NV直接给出了开发的套件.这样各个厂商开发的应用只要在NV的GPU下,都可以正常使用了.说了这么多到底CUDA的发展和应用,那CUDA为什么能如此吸引人呢?就在于它比CPU更强的并行处理上.虽说每个线程只能运行简单的处理,但众多的数量是CPU所不能比的.CUDA到底能做什么呢?其实现在来看就很简单:海量的并行计算能力.
但是由于GPU驱动程序建立在操作系统之上,所以要用上GPU还离不开CPU的帮助.这样应用CPU和GPU是互相配合完成的,GPU完成不了的并行化应用是交给CPU处理的.这里还得说一个问题就是这么多的并行线程,这就离不开地址来进行区分任务.CUDA还利用显存分别进行了地址存取,所以显卡的显存在CUDA应用时也会有一定作用的.CUDA的标准化可以让程序员只要学习一点点额外的GPU架构知识,就能立刻用熟悉的C语言释放GPU恐怖的浮点运算能力.
说了这么多CUDA的好处,到底它能给我们带来什么实际的好处呢?那些所谓的科学运算,大纹理图像对我们这些人来说真的是很遥远的事,我们更关心的是身边最实际的改变.我在网上搜索了一下;发现ADOBE和NV联手打造了基于CUDA并针对Photoshop进行GPU加速的产品.Photoshop CS4,据说打开个4.42亿像素的图片通过CUDA加速只要5秒钟
这是网上传的ADOBE的本部大楼.图片4.42亿像素有2G大小.我下载不到,也太大了.我没法试.
我就用我拍的最大的数码相片用Photoshop来打开,我发现打开的速度就已经比CS3,ACDSEE等打开的速度要快了很多.
看来在问世之初CUDA已经获得了业界大量厂商的支持,今天已经有许多研究人员致力于借助GPU完成视频编码,音频处理等应用.也许有一天,就会有越来越多的程序加入通用计算和行列.
最后说一个题外话,CPU和GPU在机箱里的竞争将更加激烈,NV认为CPU只要运行好操作系统就行,其它大部分多媒体应用都可以让GPU来完成.面INTEL则说GPU应用的范围还是有限,CPU依然是电脑的核心.两家不停的在争,我就认为GPU离不开CPU.CPU也要和GPU配合.随着CUDA通用计算的普及,两者关系将更加微妙.
| 谁顶了这篇日志>> 还有谁对该日志投票? | 最近读者>> | ||||||||||||||||||||||||||||
|