I have 2 devices (geforce 680s) with peer to peer access enabled and verified between them. However, I am unable to edit a buffer on “device 0” from “device 1”. This is my code:
// 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);
Device 0 can write to both buffers mapped to it, but if I try to write to one of the buffers using Device 1 (like in the code above), nothing happens. No errors or crashes, it just doesn’t affect the buffer (which I am rendering to screen to check)
Is this not possible? Any help would be greatly appreciated.