Details about USB, Thunderbolt and dock operation

You mixed up the numbers. 32GB/s is what is mentioned for x16 Gen 4 not Gen 3.

But those numbers are just straight conversions from the GBit/s numbers and still include encoding overhead. They are theoretical numbers that cannot ever be reached. You are better off with Wikipedia numbers.

Already available TB devices use mostly TB3 controllers and / or only have x4 Gen 3 slots for components like NVMes and GPUs.
The theoretical max. speed for TB3/USB4 with x4 Gen 3 is around 3.31-3.4 GB/s with all the overheads I know of subtracted. NVMes can in practice reach 3.1 GB/s usable speeds over that, GPUs will achieve less (more in the neighborhood of 2.6GB/s), probably for reaons having to do with the protocol and latency.

New ASM2464 controllers do support x4 Gen 4 on the port (the raw number is 64G), which would already be more than USB4 40G can transfer. That comes out to ~ 3.9-4 GB/s of theoretical max. bandwidth, with NVMe enclosures having shown 3.7 GB/s real-world.
Anything more would require newer USB4 versions with some fixes and 80G or asymmetric 120G modes. So you can expect further doubling of the bandwidth and a bit more in the next few generations.

So I would not be able to saturate the 4 lanes of Thunderbolt 3 with a GPU, and I would also not be able to use it at 100% because I would require 4x the number of lanes, which we do not have in any way, shape or form. At least for 12th gen Intel CPU thunderbolt controller.

Sort of. Right now we are limited to 32G PCIe connections due to all eGPUs using TB3 controllers. Hosts like the 12th gen FW can do more, getting closer to the actual limit of USB4 (technically around 38.8G), but still nowhere near what desktop GPUs use.

What GPUs do, that they achieve less bandwidth than NVMes, I do not yet know. It’s some type of overhead. But I do not know if this could count as “not fully utilizing the existing 32G PCIe connection”. That would depend on what exactly it is doing. Maybe.

How much that affects real-world gaming perf. depends on how much bandwidth the game actually uses. Some require far less than others. Notebooks always had less bandwidth to their dGPUs. So a further doubling should get us into a region where it is much less of a concern, even if it still falls short of desktop GPUs have.

1 Like

I was wondering if with these limitations in mind, I should wait for Thunderbolt 5 and buy a powerful GPU then, or buy whatever eGPU dock I can grab my hands on now and a mid-range GPU (like an AMD RX 550 or 580).

Looking at some older benchmark by GamersNexus with an Nvidia GTX 1080, there doesn’t seem to be a major difference between x8 and x16 PCIe 3.0.

The question then came to mind - is there a noticeable difference in gaming between x4 and x16?
According to some other videos I just found online, not really (subjective opinion). And these tests were run on some pretty demanding games.
Test with RTX 3060 TI
Test with RTX 3070
Test with Radeon VI 16 GB

So judging by this (rather small) sample of tests, I think TB3/4 is good enough for my needs. I’m only aiming to reach 144 FPS on Counter-Strike 2 and (soon-to-be-released) Death Stranding 2 running at either 1080p or 1440p. Now I might not reach this framerate with an RX 580 in Death Stranding 2, but I’m pretty sure I will be able to on Counter-Strike. Since I’m not planning on doing anything intensive on the GPU (like Machine Learning work or simulations) I’ll either keep this RX 580 or buy an RX 6600.

I do not have a good handle on that.

The difference was noticeable with my 3090 as eGPU. But it varied widely between games.

All I can say is, bandwidth matters not much, as long as you have enough. Similar to memory sizes. How much more memory than needed you have does not impact a specific application you are interested in. You just need to have at least how ever much that application needs.
So statistical effects will increase the slower the connection, because more applications expect more. Modern GPUs run on x16 Gen 4. Halving that shows almost no effects, quartering it shows some effects etc…

Also depends very much on the game. An open world game that is constantly streaming data into the GPU will incur more bandwidth than a game that loads a specific level consisting of mostly static data and is then done with loading until the next level.
RayTracing will also have an effect, as it requires the CPU to track BVHs that have to be updated on the GPU whenever they change, further increasing the bandwidth needed.
And then it becomes a question of how latency tolerant the application is. With less bandwidth and especially if there is not enough, things will take longer to upload. Is that accounted for by the application? Some data may only cause pop-in if it arrives late. Other data is needed to coordinate the next frame and it arriving late will directly impact the frametime of the next frame.

That is why using hybrid graphics (i.e. a monitor not attached to the eGPU) has such a big effect. It requires a continuous stream of data out of the GPU, bandwidth of which depends on resolution and frame rate of that stream.

For more details on performance impact on games, you’ll probably have to go to eGPU.io or similar.

I have a question about bandwidth sharing when using a TB4 dock on my 12th gen intel Framework 13. (running Kubuntu 22.04.3, if that matters) I’m using a Lenovo universal TB4 dock with 2 1440p60 displays attached as well as a QNAP 10GbE TB3 adapter. Sometimes one of the displays will either flicker or completely drop the picture when I use the 10GbE. Is this a bandwidth limitation or should I

If they are both on the same side they do share bandwidth but flickering displays may likely just be a cable quality issue.

They did not do this with my previous dock, so I don’t think it is the DP cables. The TB cable that I use came with the dock and is quite short. I don’t think it is a signal integrity problem. How would I analyze this without buying a new cable?

Thunderbolt / USB4 was designed to reserve bandwidth, especially for DP data. So it should absolutely not be any kind of bandwidth issue. PCIe should be lower prioritized and simply be delayed or throttled when there is DP traffic ongoing and not enough bandwidth for all.

So the above mentioned cable quality could be it, or some other signal quality issue caused by power fluctuations or sth. Some monitors are really sensitive to electrostatic discharge or other effects caused by bad hardware (we had that with bad, powered USB hubs at work) But really hard to identify which, if any device is actually breaking its specs in how sensitive it is or in causing issues by beeing out of spec.

1 Like

Not all display-port phys are equal, the one in your old dock may have been able to compensate for the dodgy cables a little better than the one in the new one.

The part where only one of the displays has issues does point to it being between the dock and the display and the cable is a pretty prominent part there.

Look, it entirely coincides with high network traffic over the TB3 10 GbE NIC attached to the dock. The displays never have this problem when the NIC is not doing its thing. I find it hard to believe it is the DP cables causing this.
Also, the dock has it’s own 135W power supply. I can’t rule out anything, but the I think that it has enough juice.

I’m not sure if it is a hardware or a software thing. I am running a pretty much vanilla Kubuntu 22.04.3. Could it be that I need a newer kernel or something?

May still be worth to at least try to swap the cables between the monitors and see if the problem stays with the cable or the screen/output.

Yeah that would be an exceptionally weird symptom for power issues.

See anything interresting in dmesg when that happens?

What kind of thing should I be looking for?

Thunderbolt disconnects or renegotiation or something other interesting.