>(); for (int i = 0; i < 10; i++">
2025-06-12 12:24:12

什么是Cuda中cudaDeviceReset()的作用?

#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()。我看到了相同的结果,但我不知道它们之间的区别。