Dell XPS 13 (9370) Thunderbolt & eGPU
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
- Windows 10 usb device disconnects and reconnects often
- USB Keeps disconnecting and reconnecting randomly even though the USB selective suspend is disabled Windows 8
- My USB ports are disconnecting and reconnecting randomly is there a fix for this?
- Win 10 x64 - USB device keeps disconnecting
- USB Ports disconnecting and reconnecting mouse randomly
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”:
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:
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.