다음 코드에는 CPU 또는 GPU에서 실행될 수있는 정보가 없습니다. 나는 "reduce"연산이 어디에서 실행되는지 궁금합니다. 추력 : 알고리즘 호출이 실행되는 위치를 직접 제어하는 방법은 무엇입니까?
#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)
또한
는 데이터 추력 :: host_vector 정의하더라도thrust::transform_reduce(
thrust::counting_iterator<unsigned int>(0),
thrust::counting_iterator<unsigned int>(N),
MyOperation(data), 0 ,thrust::plus<unsigned int>())
이 기능은 GPU (파일 이름의 .cpp 끝나는 때문에 컴파일러는 관련 에러를 범)에서 실행하려고. CPU에서 코드를 실행하려면 어떻게해야합니까? 또는 동일한 작업을 수행하는 또 다른 방법을 찾아야합니까? counting_iterator를 사용하지 않습니까?
내가이 페이지 http://code.google.com/p/thrust/wiki/DirectSystemAccess에 설명하지만, 컴파일러가 retag.h 파일을 찾을 수 없습니다로 counting_iterator 태그를 재지 시도,도 OMP/memory.h 파일 .. – phoad