Utilisation de vGPU dans le cloud

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page Using cloud vGPUs and the translation is 100% complete.
Other languages:

Cette page décrit comment

  • allouer des ressources de GPU virtuel (vGPU) à une machine virtuelle,
  • installer les pilotes requis,
  • vérifier si le vGPU peut être utilisé.

L'accès aux dépôts de données et aux vGPU n'est présentement possible qu'avec le nuage Arbutus. Prenez note que nous ne présentons ici que l'installation des pilotes vGPU. La boîte à outils CUDA n'est pas préinstallée, mais vous pouvez l'installer directement de NVIDIA ou la charger de la pile logicielle CVMFS. Si vous l'installez de NVIDIA, assurez-vous que le pilote de GPU n'est pas écrasé par celui du paquet CUDA.

Gabarits pris en charge

Pour utiliser un vGPU dans une machine virtuelle, l'instance doit être déployée sur un des gabarits mentionnés ci-dessous. Le vGPU sera disponible pour le système d'exploitation via le bus PCI.

  • g1-8gb-c4-22gb
  • g1-16gb-c8-40gb

Préparer une machine virtuelle sous CentOS7

Une fois que la machine virtuelle est disponible, assurez-vous de mettre à jour le système d'exploitation avec la plus récente version, incluant le noyau (kernel). Redémarrez ensuite la machine virtuelle.

[root@centos7]# yum -y update && reboot

Puisque les pilotes propriétaires NVIDIA doivent être compilés avec le noyau en cours d'exécution, le paquet DKMS est requis; voir EPEL Repository.

[root@centos7]# yum -y install epel-release

Installez le dépôt de données du nuage Arbutus. Ceci installe aussi la clé publique pour les paquets pour en assurer l'authenticité. Ces pilotes et les outils sont testés rigoureusement avec l'infrastructure avant qu'ils ne soient mis à votre disposition.

[root@centos7]# yum -y install http://repo.arbutus.cloud.computecanada.ca/pulp/repos/centos/arbutus-cloud-vgpu-repo.el7.noarch.rpm

La dernière étape est d'installer les paquets vGPU NVIDIA. Le paquet pour le module du noyau nvidia-vgpu-kmod prendra quelques minutes puisqu'il compile les modules de noyau requis en arrière-plan.

[root@centos7]# yum -y install nvidia-vgpu-kmod nvidia-vgpu-gridd nvidia-vgpu-tools

Si votre installation réussit, le vGPU sera accessible avec une licence. Testez ceci en exécutant nvidia-smi.

[root@centos7]# nvidia-smi         
Tue Sep 21 17:40:33 2021       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| 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  GRID V100D-8C       On   | 00000000:00:05.0 Off |                  N/A |
| N/A   N/A    P0    N/A /  N/A |    560MiB /  8192MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Pour vérifier l'état de la licence et les autres informations sur le vGPU :

[root@centos7]# nvidia-smi -q |less
==============NVSMI LOG==============

Timestamp                                 : Tue Sep 21 17:41:48 2021
Driver Version                            : 460.91.03
CUDA Version                              : 11.2

Attached GPUs                             : 1
GPU 00000000:00:05.0
    Product Name                          : GRID V100D-8C
    Product Brand                         : NVIDIA Virtual Compute Server
    Display Mode                          : Enabled
    Display Active                        : Disabled
    Persistence Mode                      : Enabled
    MIG Mode
        Current                           : N/A
        Pending                           : N/A
    Accounting Mode                       : Disabled
    Accounting Mode Buffer Size           : 4000
    Driver Model
        Current                           : N/A
        Pending                           : N/A
    Serial Number                         : N/A
    GPU UUID                              : GPU-c6d5d6c1-1b00-11ec-b031-a89a79e5169c
    Minor Number                          : 0
    VBIOS Version                         : 00.00.00.00.00
    MultiGPU Board                        : No
    Board ID                              : 0x5
    GPU Part Number                       : N/A
    Inforom Version
        Image Version                     : N/A
        OEM Object                        : N/A
        ECC Object                        : N/A
        Power Management Object           : N/A
    GPU Operation Mode
        Current                           : N/A
        Pending                           : N/A
    GPU Virtualization Mode
        Virtualization Mode               : VGPU
        Host VGPU Mode                    : N/A
    vGPU Software Licensed Product
        Product Name                      : NVIDIA Virtual Compute Server
        License Status                    : Licensed
    IBMNPU
        Relaxed Ordering Mode             : N/A
    PCI
        Bus                               : 0x00
        Device                            : 0x05
        Domain                            : 0x0000
        Device Id                         : 0x1DB610DE
        Bus Id                            : 00000000:00:05.0

Préparer une machine virtuelle sous Almalinux8

Une fois que la machine virtuelle est disponible, assurez-vous de mettre à jour le système d'exploitation avec la plus récente version, incluant le noyau (kernel). Redémarrez ensuite la machine virtuelle. Pour avoir accès au paquet DKMS, il faut le EPEL Repository.

[root@vgpu almalinux]# dnf -y update && dnf -y install epel-release && reboot

Installez maintenant le dépôt de données du nuage Arbutus.

[root@almalinux8]# dnf install http://repo.arbutus.cloud.computecanada.ca/pulp/repos/centos/8/x86_64/Packages/a/arbutus-cloud-vgpu-repo-1.0-1.el8.noarch.rpm

La prochaine étape est d'installer les paquets vGPU pour installer le pilote et les outils nécessaires.

[root@vgpu almalinux]# dnf -y install nvidia-vgpu-gridd.x86_64 nvidia-vgpu-tools.x86_64 nvidia-vgpu-kmod.x86_64

Si votre installation réussit, vous pouvez utiliser nvidia-smi pour vérifier le bon fonctionnement.

[root@almalinux8]# nvidia-smi 
Wed Apr  5 15:07:23 2023       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.182.03   Driver Version: 470.182.03   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| 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  GRID V100D-8C       On   | 00000000:00:06.0 Off |                    0 |
| N/A   N/A    P0    N/A /  N/A |    560MiB /  8192MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Préparer une machine virtuelle sous Debian10

Assurez-vous que les paquets les plus récents sont installés et que le système a été démarré avec le noyau stable le plus récent puisque DKMS exigera le dernier disponible dans les dépôts de données Debian.

root@debian10:~# apt-get update && apt-get -y dist-upgrade && reboot

Après un redémarrage réussi, le système devrait fonctionner avec le dernier noyau disponible. Le dépôt de données peut maintenant être installé en installant le paquet arbutus-cloud-repo qui contient aussi la clé gpg pour tous les paquets.

root@debian10:~# apt-get -y install gnupg
root@debian10:~# wget http://repo.arbutus.cloud.computecanada.ca/pulp/deb/debian/pool/main/arbutus-cloud-repo_0.1_all.deb
root@debian10:~# dpkg -i arbutus-cloud-repo_0.1_all.deb

L'installation du paquet affichera un avertissement puisque l'importation directe de la clé est facilitée par la procédure de post-installation du paquet.

Setting up arbutus-cloud-repo (0.1) ...
Warning: apt-key should not be used in scripts (called from postinst maintainerscript of the package arbutus-cloud-repo)
OK

Faites la mise à jour de la cache apt locale et installez les paquets vGPU.

root@debian10:~# apt-get update && apt-get -y install nvidia-vgpu-kmod nvidia-vgpu-tools nvidia-vgpu-gridd

Si votre installation réussit, le vGPU sera accessible avec une licence. Testez ceci en exécutant nvidia-smi tel que décrit ci-dessus pour CentOS7.

Préparer une machine virtuelle sous Debian11

Assurez-vous que les paquets les plus récents sont installés et que le système a été démarré avec le noyau stable le plus récent puisque DKMS exigera le dernier disponible dans les dépôts de données Debian.

root@debian11:~# apt-get update && apt-get -y dist-upgrade && reboot

Une fois le système redémarré, le noyau le plus récent devrait être en fonction et le dépôt de données peut être installé avec le paquet arbutus-cloud-repo qui contient la clé gpg pour tous les paquets.

root@debian11:~# wget http://repo.arbutus.cloud.computecanada.ca/pulp/deb/debian11/pool/main/arbutus-cloud-repo_0.1_all.deb
root@debian11:~# apt-get install -y ./arbutus-cloud-repo_0.1_all.deb

Faites la mise à jour de la cache apt locale et installez les paquets vGPU.

root@debian11:~# apt-get update && apt-get -y install nvidia-vgpu-kmod nvidia-vgpu-tools nvidia-vgpu-gridd

Préparer une machine virtuelle sous Ubuntu22

Assurez-vous que le système d'exploitation est à jour, que toutes les rustines (patches) les plus récentes sont installées et que le dernier noyau (kernel) stable est en cours d'exécution.

root@ubuntu22:~# apt-get update && apt-get -y dist-upgrade && reboot


Après un redémarrage réussi, le système devrait fonctionner avec le dernier noyau disponible. Le dépôt de données peut maintenant être installé en installant le paquet arbutus-cloud-repo qui contient aussi la clé gpg pour tous les paquets.

root@ubuntu22:~# wget http://repo.arbutus.cloud.computecanada.ca/pulp/deb/ubuntu22/pool/main/arbutus-cloud-repo_0.1_all.deb
root@ubuntu22:~# dpkg -i arbutus-cloud-repo_0.1_all.deb

Un avertissement sera affiché parce que la clé est ajoutée à l'étape de post-installation; vous pouvez ne pas en tenir compte. Faites la mise à jour de la cache locale apt et installez les paquets vGPU.

root@ubuntu22:~# apt-get update && apt-get -y install nvidia-vgpu-kmod nvidia-vgpu-tools nvidia-vgpu-gridd

Si votre installation réussit, le vGPU sera accessible avec une licence. Testez ceci en exécutant nvidia-smi tel que décrit ci-dessus pour CentOS7.

Préparer une machine virtuelle sous Ubuntu20

Assurez-vous que le système d'exploitation est à jour, que toutes les rustines (patches) les plus récentes sont installées et que le dernier noyau (kernel) stable est en cours d'exécution.

root@ubuntu20:~# apt-get update && apt-get -y dist-upgrade && reboot

Après un redémarrage réussi, le système devrait fonctionner avec le dernier noyau disponible. Le dépôt de données peut maintenant être installé en installant le paquet arbutus-cloud-repo qui contient aussi la clé gpg pour tous les paquets.

root@ubuntu20:~# wget http://repo.arbutus.cloud.computecanada.ca/pulp/deb/ubuntu/pool/main/arbutus-cloud-repo_0.1ubuntu20_all.deb
root@ubuntu20:~# dpkg -i arbutus-cloud-repo_0.1ubuntu20_all.deb

Un avertissement sera affiché parce que la clé est ajoutée à l'étape de post-installation; vous pouvez ne pas en tenir compte. Faites la mise à jour de la cache locale apt et installez les paquets vGPU.

root@ubuntu20:~# apt-get update && apt-get -y install nvidia-vgpu-kmod nvidia-vgpu-tools nvidia-vgpu-gridd

Si votre installation réussit, le vGPU sera accessible avec une licence. Testez ceci en exécutant nvidia-smi tel que décrit ci-dessus pour CentOS7.