对 CUDA/openCL 和 C++ AMP 的混淆

Confusion on CUDA/openCL and C++ AMP

本文关键字:AMP C++ CUDA openCL      更新时间:2023-10-16

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

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

我还是很困惑。.

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

您发表了关于Microsoft与 NVIDIA 合作以提高 AMP 性能C++声明——这不是真的。Microsoft与NVIDA和AMD以及其他合作伙伴合作创建了C++ AMP开放规范。Microsoft还与硬件供应商合作,以确保硬件供应商具有稳定的视频卡驱动程序,这是任何 GPU 计算技术正常工作所必需的。

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

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

由于Microsoft也有CUDA(直接计算)的直接竞争对手,并且通常更喜欢它自己的专有图形标准,因此我们将不得不看看它实际上发生了什么。

有关Microsoft对此的看法,请参阅这些讲座