誰かが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を追加すると、正常に機能します。
ありがとう