问题标签 [c++-amp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
7394 浏览

c++ - C++11 是否添加了 C99 限制说明符?如果不是,为什么不呢?

restrict是 C99 的一项功能,最近通过允许编译器对指针执行“previous-fortran-only”优化而受到广泛关注。这也是微软最近宣布作为 C++AMP 规范基础的关键字。

该关键字实际上是否在 FCD 中?如果没有,是否有具体原因被省略?

0 投票
4 回答
1847 浏览

language-agnostic - 并发和内存模型

我正在观看Herb Sutter 关于 GPGPU 和新的 C++ AMP 库的视频他在谈论内存模型并提到弱内存模型,然后是强内存模型,我认为他指的是读/写顺序等,但我不确定。

谷歌发现了一些关于内存模型的有趣结果(主要是科学论文),但是有人可以解释什么是弱内存模型,什么是强内存模型以及它们与并发的关系吗?

0 投票
4 回答
1058 浏览

c++ - 在 C++ AMP 中何时不需要调用“synchronize()”?

背景:有关 C++ AMP 概述,请参阅 Daniel Moth最近的 BUILD 演讲

在此处此处此处此处完成最初的演练。

只有在最后一个引用中,他们才会调用array_view.synchronize().

synchronize()在这些简单的示例中,是否不需要调用?什么时候可以安全排除?我们可以相信没有它的 parallel_for_each 行为“同步”(w/r/t 进行代码)?

0 投票
2 回答
1050 浏览

c++ - 您如何枚举 C++ AMP 中的所有加速器?

在 C++ AMP 中,如何检测和枚举所有 C++ AMP 加速器?

Don McCrady在这里分发了一个应用程序,它列举了非模拟加速器。虽然我有一张 DX11 卡 (GTX 260),但我没有看到任何可用的加速器。Daniel Moth在这里展示了如何查询单个加速器,但我找不到如何使用 C++ AMP 调用枚举所有(仿真和非)加速器。

0 投票
1 回答
295 浏览

c++ - 在 C++ AMP retrict(direct3d) 代码中使用 int 索引,其中预期为 double

谷歌搜索没有太大帮助,有人用过 AMP 吗?

在下面的代码片段中,从整数转换为双精度 (double v = idx.x) 会导致“无法创建着色器”运行时错误。我认为restrict(direct3d) 会提醒我GPU 在编译期间无法处理的事情。是否有 pow() 的替代方法——或者我必须编写一个循环来做到这一点?

0 投票
1 回答
1532 浏览

c++ - C++ AMP 会在没有兼容 GPU 的机器上运行吗?

我知道 C++ AMP 由支持 DirectX 11 的 GPU 加速。
但是,我的问题是,如果编译后的 C++ AMP 程序在没有 DirectX 11 兼容 GPU 的机器上运行,会发生什么?

它是否被 DirectCompute 的某些软件实现模拟?
它是否在 CPU 上执行(可能使用 SSE 样式指令)?
或者,它只是无法执行?

0 投票
2 回答
1431 浏览

c++ - 如何使用二维数组在 c++ AMP 中声明 array_view 或数组对象

我正在尝试使用一个数组int myarray[2][3]来初始化一个array_view对象。我试过array_view<int, 2> a(2,3, myarray);但是那不起作用。我也希望能够用向量做同样的事情。有任何想法吗?

0 投票
2 回答
806 浏览

c++ - parallel_for_each 不支持的类型错误

我正在使用 C++ AMP,但由于某种原因,最愚蠢的代码无法编译。这:

导致以下错误:

错误 C3576: 'wmain::': Concurrency::details::_Parallel_for_each 参数 #3 具有不受支持的类型 c:\program files (x86)\microsoft visual studio 11.0\vc\include\amp.h

它似乎不喜欢传递给的 lambda 表达式const _Kernel_type& _Kernel

笔记; 我正在使用包含 AMP 支持的 Visual Studio 11 Developer Preview。“restrict(direct3d)”是一个新关键字,用于支持控制哪个加速器运行相关代码。

有任何想法吗?我试过从几个不同的例子中复制,但没有任何效果,所以我有点难过。

0 投票
1 回答
618 浏览

c++ - 控制 C++ AMP 中的索引变量

我刚刚开始尝试 C++ AMP,我决定试一试我正在从事的当前项目。在某些时候,我必须为我拥有的向量构建一个距离矩阵,我为此编写了下面的代码

但是,如您所见,这并没有考虑距离矩阵的对称性。当我计算矩阵ij的 sqrsum 时,当ij的顺序颠倒时,我不想再次进行相同的计算。有没有办法做到这一点?我想出了以下技巧,但我不知道这是否会显着提高性能

if 条件可以完成这项工作吗?还是您认为 if 语句会不必要地损害性能?我想不出任何替代方案


顺便说一句,我刚刚注意到上面写的代码在我的机器上不起作用,它的 gpu 只支持单精度。有什么办法可以解决这个问题吗?错误消息如下:“runtime_exception: Concurrency;;parallel_for_each 使用所选加速器不支持的功能。ID3D11Device::CreateComputeShader: Shader 使用当前设备不支持的双精度浮点操作。”

0 投票
2 回答
2712 浏览

c++ - 使用 C++ AMP 库

我正在尝试开始使用<amp.h>图书馆。但是当我输入时#include amp.h,我得到一个错误,说无法打开源文件<amp.h>。我需要做些什么特别的事情才能使它可用吗?