1

ここに問題があります...次のコードとして、自分のベクターコンテナーでホストからホストへのコピーを作成しようとしました

T* data_t = 0;
size_t msize = sizeof(T) * capacity;
checkCudaErrors( cudaHostAlloc((void**)&data_t, msize, cudaHostAllocPortable) );

msize = sizeof(T) * count;
checkCudaErrors( cudaMemcpy(data_t, data, msize, cudaMemcpyDefault) ); 
//data is also allocated using cudaHostAlloc with flag cudaHostAllocPortable

このフラグを使用して、マシンのマシンで(Ubuntu 10.04 64ビットおよびGPU GTX 590およびCUDA 5.0を使用して)使用して、そのコードを正常にコンパイルできました

-gencode arch=compute_20,code=sm_20 -gencode arch=compute_30,code=sm_30

しかし、実行しようとすると、cudaでエラーメッセージ無効な引数でエラーが発生しました

注:cudaHostAllocホストからデバイスへ、またはホストからホストへのコピーを自動的に実行できるように独自のコンテナを設計しているため、メモリ割り当てはテスト用の一時的なものにすぎません。

この問題で私を助けることができる人はいますか? ありがとうございました。

アップデート:

cudaMemcpyHostToHostメモリーのコピー (フラグ付きの固定メモリーとして割り当てられている)を使用しようとしましcudaHostAllocPortableたが、メモリー サイズの特定の制限までしか機能しませんでし

4

0 に答える 0