2016-06-17 7 views
0

Интересно, есть ли аналог для ускорения вычисления функции (http://www.boost.org/doc/libs/1_61_0/libs/compute/doc/html/boost_compute/advanced_topics.html#boost_compute.advanced_topics.custom_functions), которая превращается в ядро ​​и может быть создана как встроенный встроенный код, который превращается в ядро?Есть ли аналогия функции вычисления boost в Thrust?

+4

Вы можете использовать [функтор с тягой] (https://github.com/thrust/thrust/wiki/Quick-Start-Guide) или [лямбда-выражения] (https://devblogs.nvidia.com/ parallelforall/новая-функция-CUDA-7-5 /). –

ответ

3

В тяге вы можете использовать функцию/функтор с квалификатором __device__. Пример векторной операции saxpy показано в ссылке, где вы могли бы найти функтор saxpy_functor

http://docs.nvidia.com/cuda/thrust/#transformations

Подобно boost::compute, вы можете также использовать лямбда-выражение тяги в

thrust::transform(X.begin(), X.end(), Y.begin(), Y.begin(), A * _1 + _2); 

или более стандартным C++ лямбда, как показано @RobertCrovella.

 Смежные вопросы

  • Нет связанных вопросов^_^