CUDA近在咫尺 更多应用支持CUDA
CUDA全称Compute Unified Device Architecture,它不需要像GUGPU一样基于图形API运算,这样的设计降低了开发者的要求。首先减免了软件开发者使用CUDA必须了解图形API的痛苦,其次CUDA专用API更接近C语言和Fortran语言,能够令绝大多数软件开发者在极短时间内上手。
与CUDA 2.0一同发布的Geforce GTX 280拥有240核的处理器,相对于桌面级CPU而言240核还是一个天文数字。上图为一颗主流中高端双核CPU Core 2 Duo E8400与Geforce GTX 280的核心对比,右侧是对比Intel的Core 2 Duo E8400和顶级Core 2 Extreme 9650浮点运算处理能力,即使是顶级Core 2 Extreme 9650四核处理器的浮点处理能力也仅为Geforce GTX 280的1/10能力,足见这颗接近1TFLOPS(1T=1024G,floating-point operations per second=flops)级别处理能力的Geforce GTX 280强悍。
● 用GPU来实现PhysX引擎
虽然Ageia的PhysX产品性能出色,但是苦于售价过高、游戏厂商接纳率低,一直没有得到大面积普及。不过NVIDIA看到Ageia的PhysX产品的优势,在2008年年初正式并购Ageia,并将PhysX物理引擎及技术引入到自己的显卡产品中。因为前文已经提到过GPU拥有强大的浮点运算能力,再配合CUDA可以实现很多非3D渲染运算,所以物理卡完全可以被显卡所吸收。
而且值得一提的是,正如前文所说物理卡将被显卡整合,今后NVIDIA-Ageia不会再单独推出独立物理卡,如果现在购买一款支持CUDA的产品等于NVIDIA免费赠送了一款物理卡。
● CUDA让GPU与并行计算产生交集
Badaboom、Folding@Home和Tesala等都是基于CUDA的GPU并行计算,他们利用GPU特殊的架构设计,令以前只有大型机才能完成的任务,小型化并且成本降低。
由于图形渲染需要高密度、并行计算,因此GPU不会像CPU一样将更多的晶体管投入到数据缓存和流量控制,而是将绝大多数晶体管用于数据处理(例如Geforce GTX 280的240个流处理器)。图形渲染这点需求上与很多科学运算不谋而合,GPU的多流处理器在解决一个问题上实现独立并行高速处理,可以大大降低运算复杂度,并且多数据元素高运算密度可以近似忽略内存访问的延迟,这也就为GPU应用于科学计算奠定基础。
● 3D Stereo还你真实3D世界
NVIDIA出品的3D Stereo虽然不会增加显卡等硬件产品性能,但它却能在不增加硬件负担前提下增加游戏视觉效果。而且值得一提的是这款产品由NVIDIA打造,凭借多年在3D效果处理及GPU设计上的经验,令这款产品会如鱼得水。
目前在2D环境下显示3D效果有4种实现方案,分别是交错式(Interlacing)、画面交换(Page Flipping)、同步倍频(Sync Doubling)和线遮蔽(line blanking),而NVIDIA的3D Stereo采用的是画面交换(Page Flipping)。
笔者在此再次提醒,如果要实现3D影像必须使用支持120Hz垂直刷新率显示器,因为立体3D影像是由液晶眼镜左、右快速切换以达到呈现3D立体影像。一般在每秒闪烁60次,人的肉眼不会察觉出闪烁,而每秒60次相当于屏幕每秒更新60次(60Hz)。由于左、右眼快分别以60Hz快速切换,所以得出显示器必须支持120Hz。
3D Stereo采用了当今最先进的“时分法”技术,这副眼镜与3D Stereo显示器的信号同步,当显示器输出左眼图像时,左眼镜片为透光状态,而右眼为不透光状态;而在显示器输出右眼图像时,右眼镜片透光而左眼不透光,以这样地频繁切换来使双眼分别获得有细微差别的图像,经过大脑计算从而生成一幅3D立体图像。