Obviously, if you have 2 GPUs, it is double the hardware, and thus it should be double the power of a single GPU (assuming all GPUs are the same, of course). So why is this not the case? I searched this question on Google and things about optimization and things came up, but I still don't understand.
1 Answer
When you are using two processors, not every task your GPU's encounter is parallel by nature. There are a certain portion of tasks which are strictly serial, and can be processed by only one processor at a given time.
If a set of tasks were to be 100% parallel your dual GPU set up should give double the speed (in theory).
A little mathematics for you: Ahmdal's law for speedup is given by
$$S = \frac{1}{[B+\frac{(1-B)}{n}]}$$, where B is the percentage of tasks that is serial in nature, n is the number of processors and S is the speedup.
Put B=0 and you wil get S, ie Speedup=2.
Practically dual GPU gives us maximum 80% speedup.
-
2$\begingroup$ One can also encounter constraints in other parts of the system. For example, if (to be fully utilized) each GPU requires N bytes per second of main memory bandwidth and the CPU is using all but N bytes per second of it, then there would be no speedup from adding a GPU (there could even be a slowdown from increased resource contention). $\endgroup$– user4577Commented Jul 23, 2015 at 15:49