我不知道爲什麼下面的代碼不輸出1,2但一些隨機數推力裝置迭代器不工作
#include <thrust/set_operations.h>
#include <thrust/device_vector.h>
#include <ostream>
int main() {
int a[]= { 1,2,3,4,5,6};
int b[] = {1,2,8};
int *ga, *gb,*gr;
cudaMalloc((void**)&ga, 6* sizeof(int));
cudaMalloc((void**)&gb, 3* sizeof(int));
cudaMalloc((void**)&gr, 3* sizeof(int));
cudaMemcpy(ga, a, 6 * sizeof(int), cudaMemcpyHostToDevice);
cudaMemcpy(gb, b, 3 * sizeof(int), cudaMemcpyHostToDevice);
thrust::device_ptr<int> end;
thrust::device_ptr<int> gaptr(ga);
thrust::device_ptr<int> gbptr(gb);
thrust::device_ptr<int> grptr(gr);
end = thrust::set_intersection(gaptr, gaptr+6, gbptr, gbptr+3,grptr);
printf("%d ", *grptr);
grptr++;
printf("%d ", *grptr);
getchar();
return 0;
}
此外,如何使用開始和END1超過迭代的結果所有的值array
我試過你的解決方案,但我仍然得到相同的輸出。輸出是85984256和85984260.對於它的外觀,這些看起來像內存地址。我編輯了修改的代碼,我在原郵政 – Programmer
也跑了,我需要使用printf由於某些原因 – Programmer
我編輯我的答案根據您的新問題。 – jmsu