を使用してメモリを割り当てるしようとしたとき、私はちょうどCUDA APIを使用する方法を学び始め、私は、この導入ガイドで開始し、アクセス違反の書き込み場所のエラーを取得する:私はチュートリアルを次のですが、私はしようとしています後https://devblogs.nvidia.com/parallelforall/even-easier-introduction-cuda/私はCUDA
私は配列を初期化したいcudaMallocManaged()
でメモリを割り当てますが、配列を初期化しようとすると、例外が言うこれ、スローされます。VectorAdd.exeに0x003983D7で投げ
例外:0xc0000005で:アクセス違反の書き込み場所0x00000000の。
プログラムで自分のGPUを識別できます。私はCUDAデバイスとGPUをすべて書き込む関数を作成したので、そのことが分かります。
これはチュートリアルに示されているのと同様に、私のコードです:
int main(void)
{
PrintCudaDevices();
int N = 1 << 20; //1M elements
float *x, *y;
cudaMallocManaged(&x, N * sizeof(float));
cudaMallocManaged(&y, N * sizeof(float));
for (int i = 0; i < N; i++)
{
x[i] = 1.0f;
y[i] = 2.0f;
}
}
私はその問題をグーグルが、私は任意の実用的なソリューションを見つけることができませんでした。
問題は、あなたがリンクしたブログ記事の[ここ](https://devblogs.nvidia.com/parallelforall/even-easier-introduction-cuda/#comment-3457108927)で議論されています。 –