要DX11还是PhysX?2009年显卡技术分析
● DirectCompute和OpenCL:NVIDIA和ATI支持度不同
提起GPU通用计算,自然会让人想到NVIDIA的CUDA、ATI的Stream以及开放式的OpenCL标准,再加上微软推出的DirectCompute,四种技术标准令人眼花缭乱,他们之间的竞争与从属关系也比较模糊。
首先我们来明确一下概念:
1. OpenCL类似于OpenGL,是由整个业界共同制定的开放式标准,能够对硬件底层直接进行操作,相对来说比较灵活,也很强大,但开发难度较高;
2. DirectCompute类似于DirectX,是由微软主导的通用计算API,与Windows集成并偏向于消费领域,在易用性和兼容性方面做得更出色一些;
3. CUDA和Stream更像是图形架构或并行计算架构,NVIDIA和ATI对自己的GPU架构自然最了解,因此会提供相应的驱动、开发包甚至是现成的应用程序,通过半开放的形式授权给程序员使用。
CUDA和Stream我们暂且不提,先说说关于DirectCompute和OpenCL这两大通用计算标准的故事。
● DirectCompute:A卡仅HD5000支持,N卡全系列都支持
理论上来说,DX10以上级别的显卡都可以支持DirectCompute技术,但DirectCompute也分版本的,它与DirectX(或ShaderModel)是一一对应的(10.0、10.1、11.0),比如DX10显卡就只支持DirectCompute 10(GPU-Z识别为DirectCompute 4.0),DX10.1显卡支持DirectCompute 10.1(4.1),DX11显卡支持DirectCompute 11(5.0)。
由于ATI HD4000都支持DX10.1,HD5000支持DX11,按理说在DirectCompute支持方面A卡是绝对强于N卡的。但目前AMD只为HD5000提供DirectCompute 11的支持,在昨天刚刚发布的催化剂9.12驱动中,AMD终于为HD4000开放了DirectCompute 10.1支持。
NVIDIA方面因为没有DX11显卡的关系,虽然不支持DirectCompute 11,但全线DX10显卡都能支持DirectCompute 10,部分新显卡支持DirectCompute 10.1,让所有用户都能使用Windows 7系统集成的转码功能。
● OpenCL:N卡驱动内置,A卡需要安装特定Beta驱动
NVIDIA依靠强大的驱动研发团队,对DirectCompute和OpenCL都第一时间提供了完美支持,所以打开GPU-Z的话我们可以看到N卡能够支持所有的四项通用计算技术,而HD4000系列A卡默认是一项都不支持的。
AMD也有供开发者测试用的OpenCL Beta驱动,并未向普通用户开放下载,必须进AMD官网注册之后才能下载到特殊版本的驱动,这个驱动需要搭配催化剂9.12以及催化剂9.12Hotfix驱动才能生效,安装之后GPU-Z就可以显示全系列A卡都支持OpenCL了(官网链接)。