当我使用thrust库中的函数时,遇到了一些问题。我不确定在它之前是否需要手动添加cudaDeviceSynchronize。例如:
double dt = 0;
kernel_1<<<blocks, threads>>>(it);
dt = *(thrust::max_element(it, it + 10));
printf("%f\n", dt);
由于kernel_1是非阻塞的,主机将执行下一条语句。问题在于我不确定thrust::max_element是否是阻塞的。如果它是阻塞的,那么它就能正常工作;否则,主机会跳过它并执行“printf”语句吗?
谢谢