TB3 PCI-e 4x overhead and performance
I've been wondering what the best way to find the "sweet spot" when it comes to eGPU restrictions. Being that eGPU's are limited by the bandwidth available across the PCI-e 4x lanes + TB3 overhead, is it as "simple" as looking up reviews where GPU's have been tested on 4x lanes and subtracting the roughly 20% overhead?
Any card that maxes out the 4x lanes + overhead at the target FPS (data saturation being primarily a function of frame rate and each frames associated data required to render) ought simplistically speaking be the "highest end" graphics card compatible with the frame rate target and TB3.
Paying for a GPU beyond the capabilities of the eGPU setup would be pointless. Finding what's optimal is proving a challenge to me. Thoughts?
@leovinus, Unfortunately there are many variables to consider when you determine which GPU is the sweet spot. You have to start with the host computer and its Thunderbolt 3 implementation. A x4 PCIe connection to the TB3 is only half the story. There are other factors such as whether it's a direct CPU connection or through the PCH. There's also cooling system and BIOS/firmware optimization regarding the Thunderbolt 3 port/s. Next is the eGPU enclosure and its firmware as well as Thunderbolt 3 controller/s. Last but not least is the software/games you plan on using. Through an external monitor directly corrected to the eGPU would be best but there are certain software that may not work well with the Thunderbolt encoding/decoding.
@itsage, it's certainly true that a myriad of factors impact the bigger picture. "Small streams make a river" as the weirdly translated saying of my country goes. And naturally there are edge-cases and outliers with all things tech.
But there must be some way of getting a rough idea? I was looking through a performance thread (This forum is impressively large, and I can't recall which thread or I'd link to it) where it became evident that performance scales decently so long as the frame rate is kept reasonably mid-range (i.e ~60-80 FPS). I just lack the technical skill to suss out what the upper bound would theoretically be. At some point you simply can't keep the card fed with game data at a decent frame rate (say a locked 60 or 75 FPS) before it becomes bandwidth starved.
My mind is vaguely grasping at some sort of averaging of one or more popular games rough bandwidth requirement per frame, set against the known average overhead and bandwidth limitations of Thunderbolt 3, and extrapolating from there. Sort of...
For scientific use-cases the ball game is completely different, as compute workloads reside more independently on the GPU. A use case that would see less communication between GPU and host in-between loading and off-loading data. I realise now that I should have specified that I was talking strictly about gaming.
If you can't keep a card fed with game data, then make it paint more pixels (use larger screen resolution like 4K, and higher settings).
@joevt, certainly. I think I might have underestimated the complexity, because at some point you'd have to know how much each frame saturates the Thunderbolt bandwidth (which would differ per game, and might also depend on texture streaming and its resolution) to make even a rudimentary calculation possible... But damnit, I'm curious.