Outils pour utilisateurs

Outils du site


informatique:egpu

Ceci est une ancienne révision du document !


eGpu

En anglais “GPU enclosures”. Nécessite un port Thunderbolt 3, 4 ou à venir 5.

Mes expériences eGpu avec mon Mint 21.3 (Ubuntu 22.04) kernel 6.8.

Au final on ne fait tourner que de petits models avec de petit context …

Update 2026-04

Nouvel essai pour la RTX 5060 Ti

Ajout de la source canonical-kernel-team/nvidia-graphics pour avoir le nvidia-driver-595-open

sudo add-apt-repository ppa:canonical-kernel-team/nvidia-graphics
sudo apt update
> ... nvidia-driver-595-open ...
sudo apt upgrade
> ... Building initial module nvidia/595.58.03 for 6.17.0-22-generic ...
# Oups, penser à supprimer version 590
sudo apt purge nvidia-utils-590 nvidia-driver-590-open nvidia-dkms-590-open nvidia-compute-utils-590

Branchement de la RTX via THB

kernel: thunderbolt 0-1: new device found, vendor=0x215 device=0x41
kernel: thunderbolt 0-1: TB4 HOME TB4 eGFX
boltd[1096]: [c9030000-0080-TB4 eGFX                   ] parent is 7dbb8780-4047...
...
kernel: nvidia: loading out-of-tree module taints kernel.
kernel: nvidia: module verification failed: signature and/or required key missing - tainting kernel
kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 508
kernel: 
kernel: nvidia 0000:05:00.0: enabling device (0000 -> 0003)
kernel: nvidia 0000:05:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=none
kernel: NVRM: loading NVIDIA UNIX Open Kernel Module for x86_64  595.58.03  Release Build  (dvs-builder@U22-I3-AM25-28-3)  Tue Mar 17 19:55:10 UTC 2026
systemd[2149]: Reached target sound.target - Sound Card.
kernel: nvidia-modeset: Loading NVIDIA UNIX Open Kernel Mode Setting Driver for x86_64  595.58.03  Release Build  (dvs-builder@U22-I3-AM25-28-3)  Tue Mar 17 19:39:14 UTC 2026
kernel: [drm] [nvidia-drm] [GPU ID 0x00000500] Loading driver
kernel: [drm] Initialized nvidia-drm 0.0.0 for 0000:05:00.0 on minor 0
kernel: nvidia 0000:05:00.0: [drm] Cannot find any crtc or sizes
systemd[1]: Starting nvidia-persistenced.service - NVIDIA Persistence Daemon...
nvidia-persistenced[4123]: Verbose syslog connection opened
nvidia-persistenced[4123]: Now running with user ID 124 and group ID 127
nvidia-persistenced[4123]: Started (4123)
nvidia-persistenced[4123]: device 0000:05:00.0 - registered
nvidia-persistenced[4123]: Local RPC services initialized
systemd[1]: Started nvidia-persistenced.service - NVIDIA Persistence Daemon.
boltd[1120]: probing: timeout, done: [2644839] (2000000)
...

Nvidia

NVidia Driver Installation Guide

  • nvidiafb: framebuffer support
  • nvidia_modeset: Kernel Mode Setting (KMS) support
  • nvidia_uvm: Unified Virtual Memory (UVM) support
  • nvidia_drm: Direct Rendering Management (DRM) support

Séries RTX:

  • 30 (Ampere)
  • 40 (Ada)
  • 50 (Blackwell)

Après plantage du driver ou CUDA, essayer de le décharger avec:

# Ça fonctionne car driver nvidia non attaché à X11
# grâce à `blacklist nvidia-drm` et `options nvidia-drm modeset=0 fbdev=0` dans `/etc/modprobe.d/...`

sudo modprobe -r nvidia_drm nvidia_uvm nvidia_modeset nvidia

# Le driver est bien chargé au prochain usage, et CUDA fonctionne
kernel: NVRM: loading NVIDIA UNIX Open Kernel Module for x86_64  580.105.08 

La RTX 3060 fonctionne bien avec la version 580 nvidia-headless-580-open, nvidia-dkms-580-open

Gigabyte Windforce OC 12G Geforce RTX 3600

NVIDIA GA104 [GeForce RTX 3060]

$ nvidia-smi
Sat Nov 22 10:11:42 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.57.01              Driver Version: 565.57.01      CUDA Version: 12.7     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3060        Off |   00000000:05:00.0 Off |                  N/A |
|  0%   33C    P8             10W /  170W |       7MiB /  12288MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

PNY OC 16GB Geforce RTX 5060 Ti

J'ai du mal avec cette carte:

  • avec le bridge PCIe/THB Cyid TB3-HL7 (JHL7540) : Échec complet
  • avec le bridge PCIe/THB Wikingoo WKGL17-C50 : Carte reconnue et llama-bench fonctionne
    • par contre l'ensemble n'est pas stable, ça plante sans prévenir, souvent éteindre de force le laptop …

Ticket ouvert chez Nvidia : kgspBootstrap_GH100: GSP-FMC reported an error while attempting to boot GSP

J'ai acheté un câble Thunderbolt certifié (50€) pour remplacer celui fourni avec l'eGPU. On dirait que ça fonctionne mieux, mais ça plante facilement kernel: NVRM: nvAssertOkFailedNoLog: Assertion failed: GPU lost from the bus [NV_ERR_GPU_IS_LOST] (0x0000000F) returned from pRmApi→Control() … NVRM: nvGpuOpsReportFatalError: uvm encountered global fatal error 0x60, requiring os reboot to recover …

Toujours plantage avec driver nvidia 590, cuda 13.1 et conf modprobe.

nvidia-kkms-565

Avec driver nvidia 565 les cartes ne sont pas reconnues.

nvidia-headless-580-open

éléments installés:

$ dpkg --get-selections | grep -i nvidia
libnvidia-cfg1-580:amd64			install
libnvidia-common-580				install
libnvidia-compute-580:amd64			install
libnvidia-decode-580:amd64			install
libnvidia-gpucomp-580:amd64			install
libnvidia-ml-dev:amd64				install
nvidia-cuda-dev:amd64				install
nvidia-dkms-580-open				install
nvidia-driver-assistant				install
nvidia-firmware-580				install
nvidia-headless-580-open			install
nvidia-headless-no-dkms-580-open		install
nvidia-kernel-common-580			install
nvidia-kernel-source-580-open			install
nvidia-modprobe					install
nvidia-persistenced				install
nvidia-utils-580				install

Log on plug PNY OC 16GB 5060 TI log 251125

Peut être une piste :

kernel: NVRM: Xid (PCI:0000:05:00): 79, GPU has fallen off the bus.
kernel: NVRM: GPU 0000:05:00.0: GPU has fallen off the bus.
...
kernel: [drm:nv_drm_dev_load [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000500] Failed to allocate NvKmsKapiDevice

Sur les Internet on peut trouver:

  • kernel command line : pcie_aspm=off
    • du coup le bridge PCI est identifié mais rien d'autre
  • kernel command line : nvidia.NVreg_EnableGpuFirmware=0

On dirait que X11 voit la carte :

$ inxi -G
Graphics:
  Device-1: Intel Raptor Lake-P [Iris Xe Graphics] driver: i915 v: kernel
  Device-2: NVIDIA driver: nvidia v: 580.105.08
  Device-3: Chicony USB2.0 Camera driver: uvcvideo type: USB
  Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X:
    loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915
    resolution: 1920x1080~60Hz
  API: EGL v: 1.5 drivers: iris,kms_swrast,swrast
    platforms: gbm,x11,surfaceless,device
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa
    v: 25.0.7-0ubuntu0.24.04.2 renderer: Mesa Intel Iris Xe Graphics (RPL-P)

J'ai blacklisté le module nvidia-drm pour éviter autant que possible que X11 entre dans la partie :

cat /etc/modprobe.d/nvidia-blacklist-drm.conf 
# Carte Nvidia pour inférence IA, pas pour l'affichage
#
# Pour prise en compte il faut :
# $ sudo update-initramfs -u

# Intégration avec le DRM (Direct Rendering Manager) pour X11/Wayland.
blacklist nvidia-drm
# Gestion des modes d'affichage (résolutions, fréquences).
blacklist nvidia-modset
# Pilote framebuffer pour la console.
blacklist nvidia-fbdev

et

$ cat /etc/modprobe.d/nvidia-graphics-drivers-kms.conf 
# Nvidia modesetting support. Set to 0 or comment to disable kernel modesetting
# and framebuffer console support. This must be disabled in case of Mosaic or SLI.
#options nvidia-drm modeset=1

# pour de l'inférence uniquement, pas pour l'affichage.
options nvidia-drm modeset=0 fbdev=0

Avec le bridge Wikingoo WKGL17-C50

Avec certains modèles ya “CUDA Error” et dans les logs ya :

kernel: NVRM: GPU at PCI:0000:05:00: GPU-ab296f23-e6a6-a23b-b6c1-33f9b813df84
kernel: NVRM: GPU Board Serial Number: 0
kernel: NVRM: Xid (PCI:0000:05:00): 79, pid=3191, name=llama-bench, GPU has fallen off the bus.
kernel: NVRM: GPU 0000:05:00.0: GPU has fallen off the bus.
kernel: NVRM: GPU 0000:05:00.0: GPU serial number is 0.
kernel: NVRM: kgspRcAndNotifyAllChannels_IMPL: RC all channels for critical error 79.
kernel: NVRM: _threadNodeCheckTimeout: API_GPU_ATTACHED_SANITY_CHECK failed!
kernel: NVRM: _threadNodeCheckTimeout: API_GPU_ATTACHED_SANITY_CHECK failed!
kernel: NVRM: _threadNodeCheckTimeout: API_GPU_ATTACHED_SANITY_CHECK failed!
kernel: NVRM: _threadNodeCheckTimeout: API_GPU_ATTACHED_SANITY_CHECK failed!
...

Cyid TB3-HL7

Utilise le JHL7540 qui gère le lien Thunderbolt → PCIe

Le bridge PCI est là mais pas la NVidia :

$ lspci -t -v -k
...
+-07.0-[03-2c]----00.0-[04-2c]--+-01.0-[05]--
|                               +-02.0-[06]----00.0  Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
|                               \-04.0-[07-2c]--
...

la Gigabyte Windforce OC 12GB NVidia GeForce RTX 3060 est vue :

+-07.0-[03-2c]----00.0-[04-2c]--+-01.0-[05]--+-00.0  NVIDIA Corporation GA104 [GeForce RTX 3060]
|                               |            \-00.1  NVIDIA Corporation GA104 High Definition Audio Controller
|                               +-02.0-[06]----00.0  Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
|                               \-04.0-[07-2c]--

Il faut trouver la bonne “position” physique. C'est très fragile. 😩

La PNY Geforce RTX 5060 Ti est bien présente aussi sur le PCI bridge mais pas identifiée

+-07.0-[03-2c]----00.0-[04-2c]--+-01.0-[05]--+-00.0  NVIDIA Corporation Device 2d04
|                               |            \-00.1  NVIDIA Corporation Device 22eb
|                               +-02.0-[06]----00.0  Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
|                               \-04.0-[07-2c]--

Ce qui fait que nvidia-smi ne la voit pas, les autres outils non plus. 😩

sudo ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:07.0/0000:03:00.0/0000:04:01.0/0000:05:00.0 ==
modalias : pci:v000010DEd00002D04sv0000196Esd00001440bc03sc00i00
vendor   : NVIDIA Corporation
manual_install: True
driver   : nvidia-driver-575-open - third-party non-free
driver   : nvidia-driver-570 - third-party non-free
driver   : nvidia-driver-575 - third-party non-free
driver   : nvidia-driver-580 - third-party non-free recommended
driver   : nvidia-driver-580-server-open - distro non-free
driver   : nvidia-driver-580-open - third-party non-free
driver   : nvidia-driver-580-server - distro non-free
driver   : nvidia-driver-570-open - third-party non-free
driver   : nvidia-driver-570-server-open - distro non-free
driver   : nvidia-driver-570-server - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin

Wikingoo WKGL17-C50

Thunderbolt 4 PCI Bridge.

kernel: thunderbolt 0-1: new device found, vendor=0x215 device=0x41
kernel: thunderbolt 0-1: TB4 HOME TB4 eGFX
boltd[1107]: [c9030000-0080-TB4 eGFX    ] parent is e49f8780-a06c...
boltd[1107]: [c9030000-0080-TB4 eGFX    ] connected: connected (/sys/devices/pci0000:00/0000:00:0d.2/domain0/0-0/0-1)
boltd[1107]: [c9030000-0080-TB4 eGFX    ] auto-auth: authmode: enabled, policy: iommu, iommu: yes -> ok
informatique/egpu.1777021984.txt.gz · Dernière modification : de cyrille

Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki