GPU-Workerknoten konfigurieren

Überprüfen Sie, ob die GPU-Workerknoten (GPU = Graphics Processing Unit; Grafikprozessor) für die Bereitstellung bereit sind.

GPU-Knoten vorbereiten

Führen Sie die folgenden Schritte auf allen GPU-Knoten aus:

  1. Richten Sie ein Repository ein.

  2. Installieren Sie den NVIDIA-Treiber.

    a. Richten Sie das lokale Repository des NVIDIA-Treibers ein.
    Laden Sie zunächst die richtige Version des Treiberpakets für die GPU von NVIDIA Driver Downloads Wird in einer neuen Registerkarte geöffnet herunter. Führen Sie anschließend den folgenden Befehl aus, um das Paket zu installieren:

    b. Installieren Sie den Treiber.

  3. Entfernen Sie vorhandene udev-Regeln für Hot-Plug-fähigen Speicher.
    Setzen Sie die 'hotadd'-Speicherregel der 'udev'-Regeln auf Kommentar.

    # Memory hotadd request
    #SUBSYSTEM!="memory", ACTION!="add", GOTO="memory_hotplug_end"
    #PROGRAM="/bin/uname -p", RESULT=="s390*", GOTO="memory_hotplug_end"
    

    Die Datei mit den udev-Regeln ist an den folgenden Positionen verfügbar:

  4. Aktivieren Sie den Service nvidia-persistenced.

    systemctl enable nvidia-persistenced
    
  5. Starten Sie den Knoten erneut.

  6. Validieren Sie die Konfiguration, indem Sie den folgenden Befehl ausführen:

    nvidia-smi
    

GPU-Treiberversion aktualisieren

Sie können den GPU-Treiber vor oder nach der Installation von IBM® Cloud Private aktualisieren.

Wichtig: Die NVIDIA-Containerlaufzeit wird von der IBM Cloud Private-Umgebung nicht verwendet. Die NVIDIA-Containerlaufzeit und ihre Abhängigkeiten dürfen auf IBM Cloud Private-GPU-Knoten nicht installiert werden.

  1. Aktualisieren Sie die GPU-Treiberversion. Weitere Informationen hierzu finden Sie unter http://www.nvidia.com/Download/index.aspx Wird auf einer neuen Registerkarte geöffnet.

  2. Nachdem Sie die GPU-Treiberversion aktualisiert haben, müssen Sie 'kubelet' erneut starten, damit Kubernetes die Änderungen am GPU-Treiber übernehmen kann.

    systemctl restart kubelet
    

Bereitschaft von Knoten für Bereitstellung überprüfen

Sie müssen die folgenden Prüfschritte auf dem Workerknoten ausführen, auf dem der Nvidia-GPU-Treiber installiert ist.

  1. Überprüfen Sie, ob der Nvidia-Grafikprozessor betriebsbereit ist.

    nvidia-smi
    

    Die Ausgabe wird wie folgt angezeigt:

    Thu Nov  9 16:44:28 2017
    +-----------------------------------------------------------------------------+
    | NVIDIA-SMI 375.66                 Driver Version: 375.66                    |
    |-------------------------------+----------------------+----------------------+
    | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
    | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
    |===============================+======================+======================|
    |   0  Tesla K80           Off  | 0000:08:00.0     Off |                    0 |
    | N/A   47C    P8    26W / 149W |      0MiB / 11439MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    |   1  Tesla K80           Off  | 0000:09:00.0     Off |                    0 |
    | N/A   36C    P8    31W / 149W |      0MiB / 11439MiB |      0%      Default |
    +-------------------------------+----------------------+----------------------+
    
    +-----------------------------------------------------------------------------+
    | Processes:                                                       GPU Memory |
    |  GPU       PID  Type  Process name                               Usage      |
    |=============================================================================|
    |  No running processes found                                                 |
    +-----------------------------------------------------------------------------+
    

    Wenn eine Fehlernachricht zurückgegeben wird, installieren Sie den GPU-Treiber erneut auf dem Knoten. Weitere Informationen hierzu finden Sie unter http://www.nvidia.com/Download/index.aspx Wird auf einer neuen Registerkarte geöffnet.

  2. Stellen Sie sicher, dass die Ordner für die GPU-Treiber verfügbar sind.

    1. Überprüfen Sie, dass der Ordner /var/lib/kubelet/device-plugins/nvidia-driver vorhanden ist.
    2. Überprüfen Sie, dass unter dem Ordner /var/lib/kubelet/device-plugins/nvidia-driver mindestens zwei Ordner vorhanden sind. Die Ordnernamen lauten init und <driver-version-number>.

    Falls mindestens ein Ordner nicht vorhanden ist, müssen Sie sicherstellen, dass die GPU-Treiber ordnungsgemäß installiert wurden. Führen Sie anschließend die folgenden Befehle aus:

    1. Löschen Sie den Ordner mit den Treiberdateien.

      rm -rf /var/lib/kubelet/device-plugins/nvidia-driver
      
    2. Starten Sie den Service 'kubelet' erneut.

      systemctl restart kubelet
      
  3. Überprüfen Sie, ob die GPU-Ressourcen für die Verwendung durch Kubernetes verfügbar sind.

    kubectl describe nodes
    

    In der Befehlsausgabe muss der Knoten mit GPU folgende Einträge aufweisen:

    Capacity:
    [snip]
    nvidia.com/gpu:     2
    [snip]
    Allocatable:
    [snip]
    nvidia.com/gpu:     2
    

    Wenn für den Knoten mit den NVIDIA-GPUs keine nvidia.com/gpu-Einträge vorhanden sind, ist der Grund hierfür wahrscheinlich die falsche Installation des GPU-Treibers. Sie müssen den GPU-Treiber möglicherweise erneut installieren.

Sie können jetzt Anwendungen bereitstellen, die GPU-Ressourcen auf Ihrem Workerknoten verwenden. Weitere Informationen hierzu finden Sie im Abschnitt zum Erstellen einer Bereitstellung mit angeschlossenen GPU-Ressourcen.