В следующем коде нет информации, которая может привести к ее запуску на процессоре или графическом процессоре. Интересно, где выполняется операция «уменьшить»?Thrust: как напрямую контролировать, где выполняется вызов алгоритма?
#include <thrust/iterator/counting_iterator.h>
...
// create iterators
thrust::counting_iterator<int> first(10);
thrust::counting_iterator<int> last = first + 3;
first[0] // returns 10
first[1] // returns 11
first[100] // returns 110
// sum of [first, last)
thrust::reduce(first, last); // returns 33 (i.e. 10 + 11 + 12)
Кроме того,
thrust::transform_reduce(
thrust::counting_iterator<unsigned int>(0),
thrust::counting_iterator<unsigned int>(N),
MyOperation(data), 0 ,thrust::plus<unsigned int>())
Даже если данные определяются как нажимной :: host_vector, эта функция пытается выполняться на GPU (компилятор дает ошибку, связанную, так как имя файл заканчивается .cpp). Как я могу заставить код работать в CPU. Или я должен искать другой способ выполнить ту же операцию, например. не используя counting_iterator?
Я попытался с тегами counting_iterator, как описано на этой странице http://code.google.com/p/thrust/wiki/DirectSystemAccess но компилятор не может найти файл retag.h, ни OMP/память.h файл .. – phoad