Использование индекса int, где ожидается двойной в C ++ AMP retrict (direct3d) коде - PullRequest
0 голосов
/ 28 сентября 2011

Поиск в Google не сильно помог, кто-нибудь использовал AMP?

В фрагменте кода ниже приведение целого числа к двойному (double v = idx.x) приводит к запуску «Failed to create shader»ошибка времениЯ думал, что 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);
…

1 Ответ

1 голос
/ 14 февраля 2012

см. Наше объяснение двойной поддержки графических процессоров в Windows, а также математической библиотеки 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 ++, чтобы у нас был больше шансов найти их.

...