对CUDA/openCL和C++ AMP的困惑

Mar*_* A. 14 c++ cuda opencl c++-amp

我读到微软正在与Nvidia密切合作,以提高AMP的性能.

但我的问题是:AMP是CUDA - 被微软取代吗?或者当NVIDIA CUDA视频卡可用时,AMP是否使用CUDA驱动程序?AMP是openCL的替代品吗?

我还是很困惑..

Dan*_*oth 20

C++ AMP是一个库(作为其中的一部分,还引入了关键语言扩展).由于C++ AMP是一个开放式规范,因此可以在任何其他低级语言上实现.Microsoft的实现建立在DirectCompute上(因此也建立在HLSL上),但是当您使用C++ AMP时,这是完全隐藏的(这就是为什么C++ AMP可以是开放规范;它不会在API表面中暴露DirectX).有关C++ AMP的更多信息,请关注我们博客右侧的资源(我们将继续添加):http: //blogs.msdn.com/b/nativeconcurrency/

您发表了一篇关于Microsoft与NVIDIA合作以提高C++ AMP性能的声明 - 但事实并非如此.Microsoft已与NVIDA和AMD以及其他合作伙伴合作创建了C++ AMP开放规范.Microsoft还与硬件供应商合作,确保硬件供应商拥有稳定的视频卡驱动程序,这是任何GPU计算技术正常运行所必需的.

你也表达了混淆并提出了一些条款.OpenCL是一种GPU计算方法(由Khronos提供),DirectCompute(由Microsoft提供)也是如此,CUDA(由NVIDIA提供)也是如此.这些都是独立的技术,每个都有自己的GPU路径(总是通过某种驱动程序),每个都有自己的优点,优点和缺点.一个不能取代另一个,一个不是普遍优于另一个.您现在也可以在该混合中使用C++ AMP,作为另一种选择,并且相同的语句也适用于此.您可以选择使用哪种方式.