#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include
__global__ void funct(void){
printf("Hello from GPU!\n");
}
int main(void){
funct << < 2, 4 >> >();
for (int i = 0; i < 10; i++){
cudaDeviceReset();
//cudaDeviceSynchronize();
printf("Hello, World from CPU!\n");
}
return 0;
}
我认为 cudaDeviceReset 的作用是 cudamemcpy。在这种情况下,我们没有数字结果。因此,我们无法使用 cudamemcpy。但是我们使用 cudaDeviceReset 从内核返回四个“Hello from GPU!”的结果。
这样对吗?
后来我用 cudaDeviceSynchronize() 替换了 cudaDeviceReset()。我看到了相同的结果,但我不知道它们之间的区别。