次のように、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。