ブロッキングとcudaMemcpyについて見たいくつかのコメントに混乱しています。Fermi HWは、カーネルの実行とcudaMemcpyの実行を同時に実行できることを理解しています。
Lib func cudaMemcpy()がブロッキング関数であることを読みました。これは、コピーが完全に完了するまで、funcがそれ以上の実行をブロックすることを意味しますか?またはこれは、前のカーネルが終了するまでコピーが開始されないことを意味しますか?
たとえば、このコードは同じブロッキング操作を提供しますか?
SomeCudaCall<<<25,34>>>(someData);
cudaThreadSynchronize();
vs
SomeCudaCall<<<25,34>>>(someParam);
cudaMemcpy(toHere, fromHere, sizeof(int), cudaMemcpyHostToDevice);