Using cloud GPUs/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
(Created page with "Instances virtuelles GPU")
 
No edit summary
Tag: Manual revert
 
(47 intermediate revisions by 2 users not shown)
Line 1: Line 1:


<languages />
<languages />
== How to use GPU in cloud VMs ==


This howto describes the steps needed to allocate GPU resources to a virtual machine (VM), installing the necessary drivers as well as simple steps to on what to check to see that the GPU is properly allocated and cannow be used.
Vous trouverez ici l'information sur comment allouer des ressources GPU à une instance virtuelle (VM ou ''virtual machine''), comment installer les pilotes requis et comment vérifier si le GPU peut être utilisé.


To use a GPU within a VM, the instance needs to be deployed with on for the flavors listed below, to make the GPU available to the Operating System via the PCI bus.
== Gabarits pris en charge ==
 
Pour utiliser un GPU dans une instance, cette dernière doit être déployée selon un des gabarits listés ci-dessous. Le système d'exploitation accède au GPU via le bus PCI.


* g2-c24-112gb-500
* g2-c24-112gb-500
Line 11: Line 12:
* g1-c14-56gb
* g1-c14-56gb


== Preparing a Debian 10 Instance ==
== Préparer une instance Debian 10 ==
To use the GPU via the PCI bus, the proprietary Nvidia drivers are required. Due to Debian's policy, the drivers are available from the non-free pool only.
 
Les pilotes fournis par NVDIA sont nécessaires pour utiliser un GPU via le bus PCI. Comme l'exige Debian, les pilotes doivent être ceux de la section ''non-free''.
 
===== Section ''non-free'' =====


===== <u>Enabling the non-free pool</u> =====
Connectez-vous par SSH et, si elles n'y sont pas, ajoutez à ''/etc/apt/sources.list'' les lignes suivantes&nbsp;:
Log in via ssh and add the sources below to ''/etc/apt/sources.list'', if not already in there.


<pre>
<pre>
Line 23: Line 26:
</pre>
</pre>


===== <u>Installing the Nvidia Driver</u> =====
===== Installer le pilote NVIDIA =====
The following command will update the apt cache, so that apt will be aware of the new software pool sections, runs an upgrade to update the OS to the latest software versions and installs the kernel headers, the nvidia-driver and the pciutils, which will be required to list the devices connected to the PCI bus.  
 
La commande suivante
* met à jour la cache <code>apt</code> pour que <code>apt</code> considère les nouvelles sections;
* met à jour le système d'exploitation;
* installe les en-têtes du noyau (''kernel''), un pilote NVIDIA et <code>pciutils</code>, requis pour lister les pilotes connectés au bus PCI.  


<pre>
<pre>
root@gpu2:~# apt-get update && apt-get -y dist-upgrade && apt-get -y install pciutils linux-headers-`uname -r` linux-headers-amd64 nvidia-driver
root@gpu2:~# apt-get update && apt-get -y dist-upgrade && apt-get -y install pciutils linux-headers-`uname -r` linux-headers-amd64 nvidia-driver
</pre>
</pre>
After the installation has finished and the nvidia has been automatically compiled and loaded, the following steps can be used to verify that everything has been prepared to launch the ''nvidia-persistenced'', which will create the device files and makes the GPU accessible to the user space.


* Check if the GPU is exposed on the PCI bus
Si la commande s'effectue sans erreur, le pilote NVIDIA aura été compilé et chargé. 
 
* Vérifiez si le GPU est visible sur le bus PCI.
<pre>
<pre>
root@gpu2:~# lspci -vk
root@gpu2:~# lspci -vk
Line 50: Line 58:
</pre>
</pre>


* Check that the nvidia kernel module is loaded
* Vérifiez que le module du kernel <code>nvidia</code> est chargé.
<pre>
<pre>
root@gpu2:~# lsmod | grep nvidia
root@gpu2:~# lsmod | grep nvidia
Line 57: Line 65:
</pre>
</pre>


Now the userspace process can be started, which will create the necessary character device files.
* Démarrez <code>nvidia-persistenced</code> pour créer les fichiers des pilotes et rendre le GPU accessible dans votre espace.
<pre>
<pre>
root@gpu2:~# service nvidia-persistenced restart
root@gpu2:~# systemctl restart nvidia-persistenced
 
root@gpu2:~# ls -al /dev/nvidia*
root@gpu2:~# ls -al /dev/nvidia*
crw-rw-rw- 1 root root 195,  0 Mar  6 18:55 /dev/nvidia0
crw-rw-rw- 1 root root 195,  0 Mar  6 18:55 /dev/nvidia0
Line 67: Line 74:
</pre>  
</pre>  


The GPU is now available within the user space and can be used.
Le GPU est maintenant disponible.


== Preparing a CentOS 7 Instance ==
== Préparer une instance CentOS 7 ==
Nvidia provides repositories for various distributions, therefore the required software can be installed and maintained via these repositories.


To compile the module sources from the nvidia repository, it is necessary to install dkms to automatically build the modules on kernel updates.
NVIDIA offre des dépôts pour différentes distributions; les logiciels requis peuvent donc être installés et maintenus via les dépôts.
It ensures that the GPU is still working after OS updates, dkms is provided in the EPEL repository and additionally the kernel headers and the kernel source needs to be installed
 
before the nvidia driver can be set up.
Pour compiler les sources des modules à partir du dépôt NVIDIA, il faut installer <code>dkms</code>. Ceci construit automatiquement les modules pour la mise à jour des kernels pour faire en sorte que le GPU fonctionne après une mise à jour de l'OS.
<code>dkms</code> se trouve dans le dépôt EPEL.
Les en-têtes et la source du kernel doivent être installés avant la configuration du pilote NVIDIA.
 
===== Installer le dépôt EPEL et les logiciels requis =====


===== <u>Enabling the EPEL repository and install needed software</u> =====
<pre>
<pre>
[root@gpu-centos centos]# yum -y update && reboot
[root@gpu-centos centos]# yum -y update && reboot
Line 82: Line 91:
</pre>
</pre>


===== <u>Adding the NVIDIA repository and install the driver package</u> =====
===== Installer le dépôt NVIDIA et le paquet du pilote =====
 
Installez le dépôt <code>yum</code>.
<pre>
<pre>
[root@gpu-centos centos]# yum-config-manager --add-repo http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
[root@gpu-centos centos]# yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
yum install -y cuda-drivers
yum install -y cuda-drivers
</pre>
</pre>


Nvidia uses it's own gpg key to sign it's packages, yum will ask to autoimport it.
NVIDIA utilise sa propre clé GPG pour identifier ses paquets. Quand <code>yum</code> demande si vous voulez l'auto-importer, répondez y pour ''yes''.
 
<pre>
<pre>
Retrieving key from http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/7fa2af80.pub
Retrieving key from http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/7fa2af80.pub
Line 99: Line 109:
</pre>  
</pre>  


After the installation a reboot is required to properly load the module and create the nvidia device files.
Après l'installation, redémarrez l'instance pour charger correctement le module et créer les fichiers pour les pilotes NVIDIA.
<pre>
<pre>
[root@gpu-centos ~]# ls -al /dev/nvidia*
[root@gpu-centos ~]# ls -al /dev/nvidia*
Line 109: Line 119:
</pre>
</pre>


The GPU is now accessible via any user space tool.
Le GPU est maintenant accessible à tous les outils dans votre espace.
 
[[Category:Cloud]]

Latest revision as of 21:01, 4 November 2024

Other languages:

Vous trouverez ici l'information sur comment allouer des ressources GPU à une instance virtuelle (VM ou virtual machine), comment installer les pilotes requis et comment vérifier si le GPU peut être utilisé.

Gabarits pris en charge

Pour utiliser un GPU dans une instance, cette dernière doit être déployée selon un des gabarits listés ci-dessous. Le système d'exploitation accède au GPU via le bus PCI.

  • g2-c24-112gb-500
  • g1-c14-56gb-500
  • g1-c14-56gb

Préparer une instance Debian 10

Les pilotes fournis par NVDIA sont nécessaires pour utiliser un GPU via le bus PCI. Comme l'exige Debian, les pilotes doivent être ceux de la section non-free.

Section non-free

Connectez-vous par SSH et, si elles n'y sont pas, ajoutez à /etc/apt/sources.list les lignes suivantes :

deb http://deb.debian.org/debian buster main contrib non-free
deb http://security.debian.org/ buster/updates main contrib non-free
deb http://deb.debian.org/debian buster-updates main contrib non-free
Installer le pilote NVIDIA

La commande suivante

  • met à jour la cache apt pour que apt considère les nouvelles sections;
  • met à jour le système d'exploitation;
  • installe les en-têtes du noyau (kernel), un pilote NVIDIA et pciutils, requis pour lister les pilotes connectés au bus PCI.
root@gpu2:~# apt-get update && apt-get -y dist-upgrade && apt-get -y install pciutils linux-headers-`uname -r` linux-headers-amd64 nvidia-driver

Si la commande s'effectue sans erreur, le pilote NVIDIA aura été compilé et chargé.

  • Vérifiez si le GPU est visible sur le bus PCI.
root@gpu2:~# lspci -vk
[...]
00:05.0 3D controller: NVIDIA Corporation GK210GL [Tesla K80] (rev a1)
	Subsystem: NVIDIA Corporation GK210GL [Tesla K80]
	Physical Slot: 5
	Flags: bus master, fast devsel, latency 0, IRQ 11
	Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
	Memory at 1000000000 (64-bit, prefetchable) [size=16G]
	Memory at 1400000000 (64-bit, prefetchable) [size=32M]
	Capabilities: [60] Power Management version 3
	Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
	Capabilities: [78] Express Endpoint, MSI 00
	Kernel driver in use: nvidia
	Kernel modules: nvidia
[...]
  • Vérifiez que le module du kernel nvidia est chargé.
root@gpu2:~# lsmod | grep nvidia
nvidia              17936384  0
nvidia_drm             16384  0
  • Démarrez nvidia-persistenced pour créer les fichiers des pilotes et rendre le GPU accessible dans votre espace.
root@gpu2:~# systemctl restart nvidia-persistenced
root@gpu2:~# ls -al /dev/nvidia*
crw-rw-rw- 1 root root 195,   0 Mar  6 18:55 /dev/nvidia0
crw-rw-rw- 1 root root 195, 255 Mar  6 18:55 /dev/nvidiactl
crw-rw-rw- 1 root root 195, 254 Mar  6 18:55 /dev/nvidia-modeset

Le GPU est maintenant disponible.

Préparer une instance CentOS 7

NVIDIA offre des dépôts pour différentes distributions; les logiciels requis peuvent donc être installés et maintenus via les dépôts.

Pour compiler les sources des modules à partir du dépôt NVIDIA, il faut installer dkms. Ceci construit automatiquement les modules pour la mise à jour des kernels pour faire en sorte que le GPU fonctionne après une mise à jour de l'OS. dkms se trouve dans le dépôt EPEL. Les en-têtes et la source du kernel doivent être installés avant la configuration du pilote NVIDIA.

Installer le dépôt EPEL et les logiciels requis
[root@gpu-centos centos]# yum -y update && reboot
yum -y install epel-release && yum -y install dkms kernel-devel-$(uname -r) kernel-headers-$(uname -r)
Installer le dépôt NVIDIA et le paquet du pilote

Installez le dépôt yum.

[root@gpu-centos centos]# yum-config-manager --add-repo https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-rhel7.repo
yum install -y cuda-drivers

NVIDIA utilise sa propre clé GPG pour identifier ses paquets. Quand yum demande si vous voulez l'auto-importer, répondez y pour yes.

Retrieving key from http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/7fa2af80.pub
Importing GPG key 0x7FA2AF80:
 Userid     : "cudatools <cudatools@nvidia.com>"
 Fingerprint: ae09 fe4b bd22 3a84 b2cc fce3 f60f 4b3d 7fa2 af80
 From       : http://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/7fa2af80.pub
Is this ok [y/N]: y

Après l'installation, redémarrez l'instance pour charger correctement le module et créer les fichiers pour les pilotes NVIDIA.

[root@gpu-centos ~]# ls -al /dev/nvidia*
crw-rw-rw-. 1 root root 195,   0 Mar 10 20:35 /dev/nvidia0
crw-rw-rw-. 1 root root 195, 255 Mar 10 20:35 /dev/nvidiactl
crw-rw-rw-. 1 root root 195, 254 Mar 10 20:35 /dev/nvidia-modeset
crw-rw-rw-. 1 root root 241,   0 Mar 10 20:35 /dev/nvidia-uvm
crw-rw-rw-. 1 root root 241,   1 Mar 10 20:35 /dev/nvidia-uvm-tools

Le GPU est maintenant accessible à tous les outils dans votre espace.