"If you drive down the freeway, how many trucks do you see pulling the same load, same trailer? I think you would be hard pressed to ever see that in your life time. I'm not sure you understand the technical nature of the problem. I absolutely do not intend any ill-will and I think you have the right to your opinion regarding the solution to the problem being that is should be a much simpler process. There will still come improvements regarding the way information is fed to the GPU's. Anyway, I have friends that share your opinion and have asked me the same question. I have to tell them in layman's terms why there are still issues with SLI/Crossfire. Again, I'm not saying this will always stay an issue, but until we have better intercommunication of the information of all interconnects in a computer and the way things are programmed, this will be an uphill battle. "
While i have not coded any graphics engines. Ive been writing code for 25 years, tho not as a primary profession. Ive written well balanced multihreaded code, as well as tried to shoehorn some things into a multithreaded situation that aren't ideal to it. A lot of times you need to completely rewrite code to really get it to an acceptable level of parallesim. I do understand a lot of the technical problems, tho certainly not all. I understand that each pixel in a frame has a different load to calculate it. And that those loads can vary drastically from pixel to pixel. I also understand that certain parts of the graphics pipeline can not be done in parallel. For instance composting and and some post processing effects.
However, a large chunk of the compute load of a graphics frame is an inherently parallel problem. This is why graphics cards run thousands of compute engines in parallel. If you duplicate the memory on each card, which they do right now, then you are left with 3 real problems. Trying to split the load evenly, and in the simplest case you can just checkerboard, which should be good enough most of the time. Then you have composting the 2 data streams into one; which is a distributed load problem they already deal with from the thousands of compute cores. And then post processing effects, that you need the whole image to compute.
Even parts of the pipeline that are not easily paralled can still be sped up accross 2 cards by alternating which card does the processing. If you distribute the thermal load in this way, you can turbo the cores more.
The thing that really gets me about sli/crossfire tho are the game profiles, and the bugs. Either a feature shoudl work with multi gpu or it shouldnt. Thus it should work for all games that request the feature, or none. Thats fine, whats not fine is when one feature works for one game but not another because of a missing sli profile....wtf? Additional microstudder when alternating frames, again WTF. Why do we sometimes see 10-15 extra milliseconds of frame pacing lag when adding a second card, when all they are doing is alternating frames, thats just nuts.
And ya nothing is simple int he real world. Certainly its not as cut and dry as jsut saying things shouldnt be the way they are. But, it really seems that the entire history of multi gpu has been shameful to say the least. Hopefully dx12 improves things. Since articles on this site have alluded to it being muct more multi gpu friendly. But well have to wait and see how that turns out.