2 つのデバイス (geforce 680s) があり、ピアツーピア アクセスが有効になっており、それらの間で検証されています。ただし、「デバイス 1」から「デバイス 0」のバッファを編集できません。これは私のコードです:
// map 2 pixel buffer objects to primary device
uchar4* dev0_buffer0=NULL;
uchar4* dev0_buffer1=NULL;
cudaSetDevice(0);
cudaGLMapBufferObject((void**)&dev0_buffer0, m_pbo0);
cudaGLMapBufferObject((void**)&dev0_buffer1, m_pbo1);
kernel<<< nBlocks, nThreads>>>(dev0_buffer0, width, height);
// write to a pbo on device 0 using device 1
cudaSetDevice(1);
kernel<<< nBlocks, nThreads>>>(dev0_buffer1, width, height);
デバイス 0 は、マップされた両方のバッファに書き込むことができますが、(上記のコードのように) デバイス 1 を使用してバッファの 1 つに書き込もうとしても、何も起こりません。エラーやクラッシュはありません。バッファには影響しません(確認するために画面にレンダリングしています)
これは不可能ですか?