VR SLI & Copying data across GPU's


I am playing around with VR SLI and have some questions regarding duplicating data across multiple GPU’s.

  1. How does uploading the same data to multiple GPU work internally? Is it copying the data from host memory to each device memory individually (synchronously) or does it do it asynchronously to both devices at the same time?

  2. How does it copy data from one GPU to another GPU internally? Does it go through host memory still, or does it do a direct copy from one device to another?

  3. Would this scenario work? So for e.g. if I have 2 textures to copy to 2 GPU’s, would it be faster through VR SLI (however it does it based on above replies) or would creating 2 devices/contexts for the 2 GPU’s on 2 different CPU threads, then copy a different texture to each GPU and do a inter-GPU transfer between GPU’s so both of them have both the textures be faster? Or would the OS graphics driver be the bottleneck in this case, or does it have a different driver thread per device?

Sorry for the load of questions.