I have a machine with multiple GPUs installed. In Preferences->System->CUDA, there's a clear option for indicating which GPU I'd like Cycles to have access to (or None, or Both, or some mixture with the CPU; all when CUDA's in use, of course), but I don't see any corresponding option for Eevee.
When I switch to Rendered View in Eevee, I notice (in a scene with a heavy procedural nodes setup) that my first GPU hits (using GPU-Z to examine each GPU's sensors) 100% load immediately, but my second GPU appears to be doing nothing. The same pattern seems to hold if I render a few frames in the same scene, still in Eevee. (Side note: it could also be that the sensors are bad on the second card, although a few of them behave as I expect, and I also don't notice any meaningful Rendered Display or Render Time difference. May have to do more some more systematic tests, though. EDIT: Did a simple follow-up test by just switching to Cycles. Got positive load detected on second GPU in doing so, so it seems like it's only Eevee that doesn't seem to know how to hit the second GPU.)
Ideally, I'd like to be able to open multiple instances of Blender, and instruct each one to rely on one or the other GPU, when rendering in Eevee. Is this directly supported in Blender? If not, are there any workarounds (e.g., maybe building a virtual machine that only has access to the second GPU, and running Blender inside the VM?)?