External GPU (eGPU)

At WATonomous, we integrate a eGPU by using a Razer Core X Chroma.

eGPU vs. dGPU?

A eGPU is completely external the the computer, it’s generally connected via Thunderbolt. In contrast, a dGPU is detached, but it’s integrated into the PC.

Setup

Setting the eGPU was quite painful. Here are some notes on how I did it with Albert at WATonomous on a Ubuntu 22.04 machine, which was connected to a eGPU. Some of this is in the WATonomous Logs.

Over this setup process, I ran into quite a few terms:

The basic idea is to use the egpu-switcher, which will setup the xorg.conf file.

Guide

1. install nvidia driver: 
  - sudo apt-get install nvidia-driver-525-open
2. reboot
3. install eGPU switcher:
  - download release 0.19.0 egpu-switcher-amd64
  - sudo cp Downloads/egpu-switcher-amd64 /opt/egpu-switcher
  - sudo chmod 755 /opt/egpu-switcher
  - sudo ln -s /opt/egpu-switcher /usr/bin/egpu-switcher
  - sudo egpu-switcher enable
  - select eGPU
4. reboot
5. add Kernel parameter
  - sudo nano /etc/default/grub
  - change line GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" to GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nvidia.NVreg_OpenRmEnableUnsupportedGpus=1"
  -  sudo update-grub
6. reboot
7.  done!
  • I installed nvidia-driver-535 (the latest) and it was working fine

Before anything, you should run

lspci

and make sure you can see the GPU. If you use for example a cheap USB-C (and not thunder)

I ran into black screen issues. Make sure to:

  • Turn off thunderbolt boot

Thunderbolt boot means like booting from an external device. We turned it off.

nvidia-settings

Change from NVIDIA On-Demand to NVIDIA (Performance Mode), so we always use the eGPU. This was the right idea, but not entirely

We need to do

sudo prime-select nvidia
  • so it defaults to using NVIDIA gpu

Some extra resources for debugging

Then, i needed