全局变量是用来串联GPU中各个单元中计算数据的方法之一。
#include <cuda_runtime.h>
#include <stdio.h>
__device__ float devData;
__global__ void checkGlobalVariable()
{
printf("Device: The value of the global variable is %f\n",devData);
devData += 2.0;
}
int main()
{
float value=1.0;
cudaMemcpyToSymbol(devData, &value, sizeof(float));
printf("Host: copy %f to the global variable\n",value);
checkGlobalVariable<<<1, 1>>>();
cudaMemcpyFromSymbol(&value, devData, sizeof(float));
printf("Host: the value changed by the kernel to %f \n",value);
cudaDeviceReset();
return EXIT_SUCCESS;
}
将上面代码保存为global_var.cu,然后编译运行:
nvcc -o global_var global_var.cu
./global_var
完成了用全局变量进行1+2的操作。
评论(0)
您还未登录,请登录后发表或查看评论