I’m developing a raycaster (using OpenCL, but it shouldn’t make a difference) and have a GeForce GTX 690 card with its dual GPUs in my system. So far I’ve only been using one device, but now I’m looking to split half my rendering to each device in such a way that each device has the same data and shoots half the rays. My bottleneck seems to be host-side code right now, and the DMA (using PBOs and textures) transfer of the data from host to device is fast and can be done asynchronously.
My question is this: Does each of the devices work independently of the other? If I initiate the same DMA transfer to both of them using the same host data (from a PBO to texture), will they work on their own and finish their transfers simultaneously just as fast as using only one device? I would assume that, but I’m not sure if the devices cooperate somehow.