我有一个简单的内核,我在其中使用 malloc 分配一些空间,就像:
__global__ void chainKernel() {
float* __restrict__ boo = (float*)malloc(sizeof(float));
*boo = 0;
*boo = *boo + 100;
return;
}
如果我在上面设置断点,*boo = *boo + 100
我就看不到 *boo 的内容。相反,我Operation is not valid due to the current state of the object
在调试器窗口中的变量旁边。但是,如果我删除它__restrict__
,则该值将正确显示。这是正常行为吗?
我的系统:CUDA 5.5.20、Nsight 3.1.0.13141、Windows 7 x64、VS2010、GeForce GTX Titan。