CUDA全局变量
如何在CUDA中创建全局变量CUDA全局变量,cuda,Cuda,如何在CUDA中创建全局变量 __device__ float *devD; cudaMalloc((void**)&devD, s); calculateDT_T2B<<<dimGrid, dimBlock>>>(); cudaMemcpy(dtr, devD, s, cudaMemcpyDeviceToHost); print(dtr); \uuuuu设备\uuuuuuu浮动*devD; 库达马洛克(void**)和德维多(s); 计算出的t_T
__device__ float *devD;
cudaMalloc((void**)&devD, s);
calculateDT_T2B<<<dimGrid, dimBlock>>>();
cudaMemcpy(dtr, devD, s, cudaMemcpyDeviceToHost);
print(dtr);
\uuuuu设备\uuuuuuu浮动*devD;
库达马洛克(void**)和德维多(s);
计算出的t_T2B();
cudaMemcpy(dtr、devD、s、cudaMemcpyDeviceToHost);
打印(dtr);
它没有给出正确的答案(给出了一些随机数)。但是当我打电话的时候
calculateDT_T2B<<<dimGrid, dimBlock>>>(devD); instead of
calculateDT_T2B<<<dimGrid, dimBlock>>>();
computedt2b(devD);而不是
计算出的t_T2B();
它给出了正确的答案。。为什么?您不能直接使用
cudamaloc
分配到GPU内存中的\uuuu设备\uuuuu
符号上。这样做时,您只在主机内存中分配。请看我给你自己的,几乎完全一样,你张贴在一分钟内这一个。短版本用于将动态分配的设备指针写入静态声明的符号。您能发布整个代码吗?你在哪里申报devD?它的范围真的是全球性的吗?这个问题与你关于同一主题的其他问题有什么不同?为什么不应该删除其中一个?