ここに問題があります...次のコードとして、自分のベクターコンテナーでホストからホストへのコピーを作成しようとしました
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
たが、メモリー サイズの特定の制限までしか機能しませんでした。