我想使用Thrust庫來計算CUDA中設備數組的前綴總和。 我的數組分配爲cudaMalloc()
。我的要求如下:將thrust :: iterators轉換爲原始指針
main()
{
Launch kernel 1 on data allocated through cudaMalloc()
// This kernel will poplulate some data d.
Use thrust to calculate prefix sum of d.
Launch kernel 2 on prefix sum.
}
我想我的內核之間的某處使用推力,所以我需要方法的指針轉換爲設備的迭代器和back.What是錯在下面的代碼?
int main()
{
int *a;
cudaMalloc((void**)&a,N*sizeof(int));
thrust::device_ptr<int> d=thrust::device_pointer_cast(a);
thrust::device_vector<int> v(N);
thrust::exclusive_scan(a,a+N,v);
return 0;
}
這是編輯打算問一個新問題嗎? – talonmies