DK’s Cool eGPU Experience – Part 2: Thunderbolt 3
What is so special about using Thunderbolt 3 for an eGPU?
Thunderbolt 3 (TB3) uses a USB-C connector and supports PCIe x4. The EXP GDC Beast from Part 1 operated at x2 over mini PCIe on the Lenovo ThinkPad T420.
Thunderbolt 3 enables a bunch of other things too. The big deal is that it supports video in addition to regular USB devices.
Manufacturers of TB3 compatible hardware are required to purchase a license from Intel, which has pushed up the price of TB3 certified hardware, especially when compared to the EXP GDC Beast.
What is an eGPU again?
As described in Part 1, the term "eGPU" refers to an external graphics processing unit. It is a video card that is externally attached to a computer, and not integrated or attached inside of a case. An "eGPU dock" is the adapter used to connect the video card to the computer. The term "enclosure" might be used in place of "dock" for adapters that feature a housing for the video card.
Thunderbolt 3 eGPU Starter Pack:
HP ZBook Studio G3 (2016)
Alias: HP ZBook, computer, machine, laptop
Specs: Quad-core i7-6820HQ / M.2 NVMe 512GB SSD + M.2 NVMe 1TB SSD / 32 GB RAM / nVidia Quadro M1000M 4GB / Intel HD 530 / 4K
Acquired via: eBay
Gigabyte AMD Radeon RX 570 4GB
Alias: eGPU, video card
Acquired via: Newegg clearance
Sonnet eGFX Thunderbolt 3 Breakaway Box
Alias: eGPU enclosure
Compatible slots: Thunderbolt 3
Acquired via: eBay
Notes: Integrated power supply, has one TB3 port and one power connector and a power switch
How does it work?
The eGPU enclosure contains the video card. It plugs into the Thunderbolt 3 port on the computer. Unlike the EXP GDC Beast from Part 1, the computer will not have to be partially disassembled in order to use the eGPU. All I have to do is unplug the cable, and the computer goes right back to being portable.
One major difference between this solution and the EXP GDC Beast from Part 1 is that the TB3 eGPU is not detected by the system as a video device at boot. This means that Windows resumes on the laptop screen after powering on, but only until the eGPU is detected and the monitor profile is loaded by DisplayFusion/Windows. In constrast, the eGPU dock in the Lenovo T420 was connected to a native PCIe port, which allowed the system to recognize the hardware as a video device on boot. This does not sound like a big deal until you experience window position loss, where all of the windows you had open across multiple monitors are now stacked on the primary monitor. More about that later.
As for performance bottlenecks, the hardware in this configuration is much newer and faster. The average bottleneck value is 0.61% according to this bottleneck calculator. However, the calculator assumed that the video card would be plugged into a PCI-E x16 slot, not a Thunderbolt 3 PCI-E x4 slot. This means that the real bottleneck value is actually higher.
But as was the case in Part 1, the bottleneck does not really matter. It still performs way better than both the integrated video adapter and the nVidia Quadro M1000M, both of which support only three external monitors. With the eGPU, the system now supports 8 total monitors (7 external plus the laptop screen).
I typically only use the 5 monitors that are plugged into the eGPU. This system has an nVidia card, but the eGPU is an AMD card. To avoid issues, I disabled the nVidia card in the BIOS, and the laptop screen in Windows when the eGPU is plugged in and working.
It also supports VR (virtual reality)
Spoiler alert: The Virtual Desktop streaming solution for the Quest 2 works way better than Oculus Link at this point, but neither solution is perfect. This setup also runs into performance issues with No Man's Sky VR and H3VR, among others. However, it runs The Talos Principle VR and Google Earth VR extremely smoothly, even when using the nVidia Quadro M1000M and not the eGPU.
Plus it's totally cool, dude. This one appears to carry a low to moderate risk of assimilation due to the metal case.
What could possibly go wrong?
This solution is much more refined than the solution from Part 1. Only two cables are required, and one of them is a standard computer power cable. However, things can still go wrong.
There might be a power loss.
The laptop has a battery. The eGPU does not. When the power goes out, the eGPU loses power and disconnects from the laptop.
One theoretical solution is to plug the enclosure into an uninterruptible power supply (UPS). However, as in Part 1, in practice, this solution has been inconsistent. In some situations, such as during thunderstorms, the power may intermittently blink. Sometimes the machine continues operating as though nothing happened. Sometimes the eGPU momentarily shuts down which disconnects all of the monitors, only to reconnect right away. This sounds rather benign. But when this happens, all of the open windows change positions and are crammed onto the laptop screen, but their positions are not restored when the monitors reconnect. It's a pretty irritating first-world problem, but there is a workaround.
The eGPU might not be detected after reaching the Windows login screen and the laptop screen does not turn on
This is a rare occurrence, and fixing it usually only requires reseating the Thunderbolt 3 cable or power-cycling the enclosure, which has its own power switch. However, the problem with the open windows changing positions and getting crammed onto the laptop screen occurs. The workaround works here too.
Workaround for window position loss
Luckily, DisplayFusion offers a workaround for window position loss. It involves setting event triggers for saving the window positions and then restoring them when the monitor profile changes, which happens when the eGPU disconnects and then reconnects to the computer.
Find DisplayFusion on DK's Cool Software List for more information.
Self-awareness and assimilation
Unlike the EXP GDC Beast in Part 1, this video card is secured inside of a metal enclosure. This eliminates most threats of assimilation, but I cannot guarantee that it's not self-aware inside of that box. Maybe it shuts itself down on boot sometimes because it's hoping that I'll open the case and leave it off while troubleshooting, giving it the perfect opportunity to strike. I bet it'll even try the pizza trick. I'm not falling for that again.
Why not just buy a desktop computer?
I found a very good deal for this beefy ultra-portable HP ZBook Studio G3 on eBay in July 2019 (around $700, way too low). I also found a great deal on the Thunderbolt 3 enclosure on eBay in early December 2019 ($175 barely used and in the original box and these things usually go for $300+). I took the newer Radeon RX 570 4GB out of the VR computer and put it into the enclosure, and put the Radeon R9 380 4GB from the old eGPU setup and put it into the VR computer.
Then I found a good deal on an Oculus Quest 128GB on eBay, and it included some hygienic leather foam replacements ($400, retails at $500, accessories probably around $50).
As much as I love the ancient Lenovo T420 and the Microsoft Surface Pro 3, it was time to upgrade my laptop, and I could not pass up deals like those. I could have laid out about the same amount for upgraded desktop parts that would offer far better performance. But personally, I just didn't feel like that would have been cool enough.
Thunderbolt 3 eGPU Resource List
If you want to use a Thunderbolt 3 eGPU enclosure, but don't know where to start, you should be able to use the resources listed below to help you decide which laptop and enclosure to choose.
Here is a list of resources from egpu.io that will give you more information about eGPUs and help you to choose a laptop, enclosure, and connection type:
- System build examples
- Articles about eGPUs
- Table of the bandwidths of common ports for eGPUs (wait for page to get done loading first, it takes a few seconds before it appears)
This the end of Part 2.
VR Series Part 1 will cover 3D performance and virtual reality (VR) with the Oculus Quest 2!