对 CUDA/openCL 和 C++ AMP 的混淆
Confusion on CUDA/openCL and C++ AMP
我读到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对此的看法,请参阅这些讲座
- 在 C++ AMP 数组中复制数据多少次?
- 用户输入N,找到所有a和b共素数对,其中a<;N&;b<;N
- 在Linux下的C 程序中包括AMP.H LIB
- C++AMP计算和WPF渲染图形卡的双重使用性能
- Microsoft AMP for C++ with Dr Dobbs example?
- 视觉C++ AMP 以不同的维度迭代array_views
- 限制(amp)函数的默认参数
- 为什么在构建C AMP项目期间会发现链接错误
- 我何时应该使用C AMP
- 在 C++Amp 中并行执行的几种算术运算
- 设备定位的像素数组(从 C++ AMP)到 使用 D3D / D2D 的窗口
- C++ostream:没有运算符匹配<<&应在'&'代币
- 使用C++AMP时未命中视觉GPU断点
- c++amp:复合类型,用于循环,在GPU上声明
- 特定于 C++ AMP 模板的限制
- 如何在 C++ AMP 中将线程相互同步
- C++ AMP,用于循环parallel_for_each循环
- 对如何在 C++ AMP 上执行大任务一无所知
- 表达式模板 + CRTP + AMP == 内核生成
- 限制(AMP)功能类型