次のコードには、CPU または GPU で実行される可能性のある情報がありません。「削減」操作はどこで実行されるのだろうか?
#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>())
データが Thrust::host_vector として定義されていても、この関数は GPU で実行しようとします (ファイル名が .cpp で終わるため、コンパイラは関連するエラーを返します)。コードを CPU で実行する方法を教えてください。または、たとえばcounting_iteratorを使用しないなど、同じ操作を実行する別の方法を探す必要がありますか?