15

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

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

我还是很迷茫。。

4

2 回答 2

22

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,作为另一种选择,同样的陈述也适用于此。至于您决定使用哪个,您可以自行选择。

于 2012-04-25T02:38:57.200 回答
3

C++ AMP 是一组语言扩展和 API,用于支持包括 CUDA 在内的并行编程技术。

由于微软也有 CUDA(直接计算)的直接竞争对手,并且通常更喜欢它自己的专有图形标准,我们将不得不看看它到底会发生什么。

有关 Microsoft 的观点,请参阅这些讲座

于 2012-04-24T19:06:56.230 回答