决战性能之巅!NV双芯旗舰GTX590评测
此前在测试阶段,微软将DirectX 11中包含的GPU通用计算称为Compute Shader或DirectX Compute,而在正式版本中又改名为DirectCompute,一字之差何苦呢?显然,微软为了将GPU通用计算和主要是3D应用的DirectX区别开,进一步凸出DirectCompute的重要性并与OpenCL分庭抗力,由此足以见得微软对GPU通用计算的重视程度。
8.1 DirectCompute和它的竞争对手
DirectCompute主要针对GPU计算,但由此可以衍生出一些在图形渲染方面的特殊应用,因此笔者将其单列一章,对一些重要技术进行详细介绍。
提起GPU通用计算,自然会让人想到NVIDIA的CUDA、ATI的Stream以及开放式的OpenCL标准,再加上微软推出的DirectCompute,四种技术标准令人眼花缭乱,他们之间的竞争与从属关系也比较模糊。
首先我们来明确一下概念:
1. OpenCL类似于OpenGL,是由整个业界共同制定的开放式标准,能够对硬件底层直接进行操作,相对来说比较灵活,也很强大,但开发难度较高;
2. DirectCompute类似于DirectX,是由微软主导的通用计算API,与Windows集成并偏向于消费领域,在易用性和兼容性方面做得更出色一些;
3. CUDA和Stream更像是图形架构或并行计算架构,NVIDIA和ATI对自己的GPU架构自然最了解,因此会提供相应的驱动、开发包甚至是现成的应用程序,通过半开放的形式授权给程序员使用。
其中ATI最先提出GPGPU的概念,Folding@Home和AVIVO是当年的代表作,但在被AMD收购后GPGPU理念搁浅;此后NVIDIA后来者居上,首次将CUDA平台推向市场,在这方面投入了很大的精力,四处寻求合作伙伴的支持,并希望CUDA能够成为通用计算的标准开发平台。
NVIDIA CUDA架构示意图