Using multiple non Quadro-GPUs for OpenGL rendering with simulation data from a single CUDA context


I am currently programming a multi GPU particle fluid simulation with OpenGL, CUDA and Windows. Since I’m using a splatting technique the rendering is quite expensive. That’s why I also want to distribute the rendering among the GPUs. Therefore I want each GPU to render its own particles into a thickness image and a depth image. After that I want to combine those images into a single depth and thickness image for the final shading. Whilst the rendering itsself isn’t problematic, I am not sure how to use multiple GPUs for rendering. There’s an NVIDA extension especially for those use cases, but its only available on Quadro GPUs. Too bad Quadro GPUs aren’t available to me :).

So how should I do this? Should I create a OpenGL context for each GPU and then share those contexts with my single CUDA context? Is sharing multiple OpenGL contexts with a single CUDA context possible at all? Should I implement the device to device copy by sharing the OpenGL textures with CUDA and then copying from device to device in CUDA?
Furthermore are there any examples in the web, which do something like that?