1

誰かがCuda4でこの機能を正常にテストしましたか?それが私のコードのバグなのか、機能がまだ完全に実装されていないのかわからないので、正しく動作させることができないようです。

たとえば、1つのGPUから別のGPUにメモリをコピーした後、カーネル呼び出しを実行したいとします。ストリーム0、mem0はgpu0ストリーム1に作成され、mem1はgpu1に作成されます。どちらもFermiTesla(C2070)です

cudaMemcpyAsync( mem1, mem0, size, cudaMemcpyDefault, stream0 );
cudaEventRecord(P2Pevent, stream0);

cudaStreamWaitEvent(stream1, P2Pevent, 0);
cudaKernel<<<block,thread,0,stream1>>>(mem1);

時々、メモリはまだカーネルの準備ができていないように見えるので、結果は正しくありません。Gpu0にcudaDeviceSynchronizeを追加すると、正常に機能します。

ありがとう

4

1 に答える 1

0

それは私のコードのバグです!それは正しく動作しますありがとうみんな

于 2011-04-05T08:06:28.963 に答える