Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

Open-gpu-kernel-modules

De Le Wiki de Lug

Source.

Prérequis

  • Un ou plusieurs GPU NVIDIA grand public dont la fonction P2P est désactivée par le pilote.
  • Recommandé : activer l’option Above 4G Decoding dans le BIOS de la carte mère, particulièrement avec plusieurs GPU. Activer également Resizable BAR si la plateforme le permet.
  • Recommandé : utiliser un démarrage en mode UEFI et désactiver le CSM. Cette configuration facilite la gestion de plusieurs GPU, l’allocation des ressources PCIe au-dessus de 4 Gio via Above 4G Decoding et l’utilisation éventuelle de Resizable BAR

Activer le mode de passthrough DMA pour l’IOMMU

  • On édite Grub :
# vi /etc/default/grub

On ajoute à la variable GRUB_CMDLINE_LINUX_DEFAULT les options suivantes :

  • Sur plateforme Intel : intel_iommu=on iommu=pt
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
...
  • Sur plateforme AMD : amd_iommu=on iommu=pt
...
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
...
  • On met à jour GRUB :
# update-grub
  • On redémarre :
# reboot
  • Après redémarrage, on vérifie que les paramètres sont bien appliqués :
# cat /proc/cmdline

Recommandé : désactiver ACS sur les ports PCIe concernés

Lorsque l’ACS est activé sur les ports racine, le trafic GPU à GPU peut être redirigé vers le complexe racine du processeur, ce qui réduit fortement la bande passante P2P.

Via le BIOS

Certaines cartes mères permettent de désactiver directement l’ACS sur les ports PCIe depuis le BIOS. Lorsqu’elle est disponible, cette méthode est à privilégier.

Via le noyau Linux

Le noyau Linux permet de désactiver les fonctions de redirection ACS sur des ports PCIe précis avec l’option pci=disable_acs_redir=. Cette méthode est disponible avec le noyau Debian standard et ne nécessite pas de patch.

  • On commence par identifier le ou les ports PCIe concernés :
# lspci -tv

Exemple de résultat :

...
-[0000:00]-+-00.0  Intel Corporation 8th Gen Core Processor Host Bridge/DRAM Registers
           +-01.0-[01]--+-00.0  NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate]
           |            \-00.1  NVIDIA Corporation GA106 High Definition Audio Controller
           +-01.1-[02]--+-00.0  NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate]
           |            \-00.1  NVIDIA Corporation GA106 High Definition Audio Controller
...

Les deux ports PCIe à modifier seront donc 0000:00:01.0 et 0000:00:01.1.

  • On édite GRUB :
# vi /etc/default/grub

On ajoute à la variable GRUB_CMDLINE_LINUX_DEFAULT l’option pci=disable_acs_redir= suivie de l’adresse des ports PCIe concernés :

...
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pci=disable_acs_redir=0000:00:01.0;0000:00:01.1"
...
  • On met à jour GRUB :
# update-grub
  • On redémarre :
# reboot
  • Après redémarrage, on vérifie que l’option a bien été appliquée :
# cat /proc/cmdline
  • On vérifie ensuite si les ports concernés exposent ACS et, le cas échéant, l’état de ses fonctions de redirection :
# lspci -s 0000:00:01.0 -vv | grep -E 'Access Control Services|ACSCap|ACSCtl'
# lspci -s 0000:00:01.1 -vv | grep -E 'Access Control Services|ACSCap|ACSCtl'

Si aucune ligne n’est retournée, le port concerné n’expose pas ACS et il n’y a rien à désactiver sur celui-ci.

Si ACS est présent, les indicateurs ReqRedir et CmpltRedir doivent apparaître désactivés (-) après application de l’option.