|
DirectCompute11对抗OPenCL 无论是AMD还是NVIDIA近两年都在大量的推动GPU的通用计算技术,到目前GPU通用计算已经有CUDA、ATI Stream以及OpenCL三种开发接口。三种开发接口可以说是各有特色:CUDA专属于NVIDIA,应用面很广,但是只可以再NVIDIA的GPU上使用,ATI Stream在科学计算上有一些应用,但是消费级应用很少;而OpenCL虽然通用性比较强,但是推出的时间不长,应用则是少只又少。
实际上微软也有自己的GPU通用计算API,其称之为DirectCompute,但是在DirectX11以前却很少被提及,实际上在以前他的功能也确实比较弱。不过GPU通用计算的趋势已经是势不可挡的,在一些擅长的项目上GPU的性能甚至可以达到CPU的几十倍。因此在DirectX11中的DirectCompute11微软进行了大刀阔斧的改进。
DirectCompute11对GPU通用计算的使用更为广泛,像图像处理和滤波、OIT、阴影渲染、物理加速、人工智能、光线跟踪等等都是通过DirectCompute11来实现的。
对于图形编程人员来说DirectCompute11应该会更受欢迎,因为他和DirectX中传统的图形处理部分是一个融合的整体,开发更为简便,同时微软提供的开发套件可靠性和通用性更高。
可以说DirectCompute11和OpenCL都是相对于CUDA和ATI Stream更为底层的技术,DirectCompute11和OpenCL两者之间是竞争的关系。虽然现在还看不出孰优孰劣,但是DirectCompute11相信可以借助本身DirectX上的优势以及操作系统上垄断地位获得更好的支持。
在最新的操作系统Windows7中,微软声称通过DirectCompute11可以实现借助GPU的计算能力实现视频、音频的快速编码、解码以及对文件系统的快速搜索和扫描。
对于音频、视频的编码和解码可能我们已经比较熟悉,现在又一些软件通过CUDA或者ATI Stream已经可以实现。不过文件系统的快速搜索和扫描DirectCompute11是如何实现的呢?
实际上操作系统就像一个巨大的数据库,磁盘上的文件信息也都记录在这个庞大的数据库中DirectCompute11就是可以利用GPU的通用计算能力,对这个庞大的数据库进行加速检索。我们知道对于大型数据库的信息检索是相当消耗资源的,如果有了DirectCompute11的帮助,相信会加速很多。而且这一定是只有微软可以做到。
DirectCompute对于ATI Stream技术提供了相应的标准接口,对于利用ATI GPU的通用计算能力的开发会更为快捷。
***********************************************************************
能不能理解为DX11卡可以大幅加速win7的系统应用速度?大大门解释下! |
|