エラーコード:試験にcudaMalloc、私は次のようにCUDAにおける2Dアレイを実装するためにattempingだ11
u_int32_t **device_fb = 0;
u_int32_t **host_fb = 0;
cudaMalloc((void **)&device_fb, (block_size*grid_size)*sizeof(u_int32_t*));
for(int i=0; i<(block_size*grid_size); i++)
{
cudaMalloc((void **)&host_fb[i], numOpsPerCore*sizeof(u_int32_t));
}
cudaMemcpy(device_fb, host_fb, (block_size*grid_size)*sizeof(u_int32_t*), cudaMemcpyHostToDevice);
、host_fb
はNULLです。さらに、cudaMalloc((void **)&host_fb[i], numOpsPerCore*sizeof(u_int32_t));
の最初の反復のエラーコードを取得すると、cudaErrorInvalidValue
が得られます。私は間違って何をしていますか?ありがとう!
あなたのコードを試しましたが、 'host_fb'にループが必要だと思っています。そうでなければ' host_fb [0] 'にアクセスしようとするとバスエラーが発生します。私は(あなたの変更のいくつかと一緒に)ループを戻しました、そしてうまくいったようですが、それが正しいかどうかは分かりません。 – Pygmalion
バスエラーの意味は?あなたはいつそれを手に入れますか? cudaErrorInvalidValue(エラーコード11)でしたか? –
以前はエラーがcudaMalloc(エラーコード11)にありました。今、私がcuda-gdbで実行しようとすると、バスエラーが発生し、 'host_fb [0] [0]'のメモリにアクセスできないと言います。 – Pygmalion