拨乱反正:Windows7真不支持CUDA吗?
CUDA本意就是一种架构,但很多人认为CUDA是一种语言、或者是开发平台,这可能跟NVIDIA最初的宣传、推广策略有关系。在CUDA架构诞生之初(GeForce 8时代),尚不存在专门针对GPU并行计算的开发平台以及编程语言,因此NVIDIA必须给程序员提供一种简单、易上手、并且完整的软件开发解决方案,这样NVIDIA所发布的CUDA包当中就包括了针对GPU的C语言编译器、纠错器/制模器、专用驱动和标准函数库等。
除了支持自家C语言编译器之外,更多的语言及API都能运行在CUDA架构
上图就很好的反映出了CUDA与应用程序接口(API)以及各种语言编译器的关系,其中的DX11计算也就是Direct Compute,可以看出CUDA架构和Direct Compute并无冲突。包括CUDA自家编译器所采用的C语言扩展、OpenCL应用程序接口、Fortran甚至C++等都可以运行在CUDA架构之上,未来CUDA还将支持更多的语言。在整个产业的共同推动下,GPU计算可谓是前途无量!
实际上,在微软的一份Direct Compute宣传PPT中,我们也可以看到Direct Compute是完全建立在符合统一渲染架构GPU的基础之上的。实际上,从DirectX 10开始,NVIDIA和AMD纷纷淡化管线和顶点的概念,就是为了使得流处理器可以执行更多非3D的应用,而如今微软推出的Direct Compute,无疑对GPU通用计算应用有很大的推动性。
小贴士:DirectX Compute还是Direct Compute?
很多朋友应该会发现,早期我们将微软的DirectX 11中包含的GPU通用计算成为DirectX Compute,但近期我们又改成了Direct Compute,这是为什么呢?实际上,微软为了将GPU通用计算和主要是3D应用的DirectX区别开,所以通知了所有合作伙伴以及媒体,将DirectX Compute改为Direct Compute,微软想要达到的效果应该是让Direct Compute和DirectX一样重要吧,其实也可以看出微软对GPU计算的重视。