0

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

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

concurrency::array_view<double,1> prices = …
concurrency::parallel_for_each(
   prices.grid, [=](index<1> idx) mutable restrict(direct3d) {
      double v = idx.x;
      prices[idx] =  concurrency::pow(u, v);
…
4

1 回答 1

1

请参阅我们对 Windows 上对 GPU 的双重支持的解释,以及 C++ AMP 数学库 http://blogs.msdn.com/b/nativeconcurrency/archive/2012/02/08/math-library-for-c-amp .aspx http://blogs.msdn.com/b/nativeconcurrency/archive/2012/02/07/double-precision-support-in-c-amp.aspx

如果您仍有问题,请随时回帖。还请用 c++amp 标记您的问题,以便我们有更好的机会找到它们。

于 2012-02-14T01:57:40.497 回答