This post is just pulling together notes I have made whilst researching eGPUs with this laptop. I currently use a Razer Core X Chroma™ with it, which works very well except for issues with USB-disconnects but this seems to be a general problem with USB devices and Windows 7 onwards.

USB disconnection issues

This is an infuriating problem as my home-office mouse and keyboard are USB, so I randomly get Windows’ USB-disconnect warble half-way through typing a report or student feedback (or a blog post!) and look across to where I’m typing to find the last 3 words have not appeared at all. I then have to wait a second or two for it to reconnect and continue typing.

In an effort to fix this I did reinstall Windows entirely, which seemed to help for a while but after several cycles of updates it returned. I suspect a specific update has caused this but I cannot narrow down which. The problem still persists despite applying all the troubleshooting steps (check all controllers for driver updates, disable allowing Windows to put them to sleep etc.).

Thunderbolt 3 PCIe lanes

Some Dell systems have less than the maximum 4 lanes of PCIe available via the Thunderbolt 3 port. This is to manage the limited number of lanes that are available on the processor, 12 on my i7-8550u, as some are needed for built-in peripherals.

Dell have published information on which devices have what and fortunately mine has the full 4 lanes.

Thunderbolt 3 External GPUs supported

With a recent NVM Firmware update, the Thunderbolt software has gone from “External GPUs supported: Yes” to “No”:

Screenshot 2020-05-08 064206

The eGPU has continued to work, the only symptom seems to be that Windows now pops up an alert saying “This device might not work properly”.

Another user has suggested flashing a later model’s firmware onto the controller, however as long as things continue to work I see no reason to do this despite the regression (unless the earlier firmware, which I think was 35 or 37, having it true was a mistake). In the post the user does acknowledge that the flag is rather pointless:

If anybody is interested, I just updated my Dell 9370 NVM with the Dell 9575 NVM and nothing exploded or bricked. It went from NVM28->NVM30 and External GPUs Supported: No->Yes Not that the External GPUs Supported flag ever seems to matter. My eGPU worked with Dell 9365 with NVM09 and “No”.

I am also achieving full bandwidth in both directions, measured with CUDA-Z:

Screenshot 2020-05-08 063759

It does appear that some eGPU devices shipped with firmware that refuses to work without “External GPUs supported: Yes”, however the solution to this thread is to install an updated device firmware on the eGPU enclosure that removes this restriction.

Other people have a good experience, as I have:

This runs to an external monitor- Asus MG28UQ

Tested Destiny 2 at 4K settings to reduce performance drop, trying to get it upto 60fps. Currently at 45fps on high settings.

Colour me impressed, have to remind myself I’m running this on a 1 inch thick 13” ultrabook

eGPUs and Linux

I have not had chance to explore this properly yet, I have too many other projects on the go to start another one yet, but I have started researching and collecting information in preparation.

[eGPUs under Linux: an advanced guide Thunderbolt Linux eGPU](https://egpu.io/forums/thunderbolt-linux-setup/egpus-under-linux-an-advanced-guide/):

I’ve been following Blitz_Works on Twitter and his progress with eGPU under Linux. He published an advanced guide yesterday documenting his use and other interesting findings. He was able to flash the AORUS Gaming Box firmware in Linux.

Even if you’re not a Linux user, I’d highly recommend reading his guide. This is a wonderful resource - http://pocketnix.org/posts/eGPUs%20under%20Linux%3A%20an%20advanced%20guide

eGPUs under Linux: an advanced guide - pocketnix.org blog:

With Linux 4.13 just being released I decided to write up my experiences with getting its newly expanded Thunderbolt 3 to work. Most news outlets have focused on the new TLS support in the Linux kernel however recent changes to the Thunderbolt module have allowed it to work on non-Apple device and allow many laptops to attach high performance rendering and IO devices such as GPUs and High speed network cards.

As Thunderbolt 3.0 allows attaching USB devices as well as standard PCIe devices over a single cable. With the addition of a PCIe enclosure it is possible to attach a wide range of generic PCIe devices to your laptop without modification. By also reusing Thunderbolt approved USB Type C cables, adding these devices are typically as easy as attaching a USB docking station to your laptop and will provide new functionality and charging to your laptop at the same time.

Hardware

While none of the setup should be hardware dependent I have listed what I used at my end in case anyone wishes to duplicate the setup and avoid as many issues as possible

  • Lenovo X1 Carbon (gen 5/i7 7500U @ 2.7Ghz, 3.5Ghz turbo)
  • AORUS External gaming box (NVidia GTX 1070)
  • Debian Stretch with custom Linux kernel (4.13-rc3)

What is required to get a GPU working in Linux

  • Upgrade to a newer Linux kernel
  • Install the NVidia driver
  • Set up Thunderbolt in the bios to run in ‘secure’ mode
  • Set up bumblebee to run programs on the GPU

Best 2020 laptop & eGPU combination

Just because I like to torture myself when I already have perfectly good tech: Best Laptops for eGPU - April 2020 Ultrabook Buyer's Guide.