我有 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 写入其中一个缓冲区(如上面的代码中所示),则没有任何反应。没有错误或崩溃,它只是不会影响缓冲区(我正在渲染到屏幕上检查)
这不可能吗?