GPU-fähige Knoten

ArcGIS 11.4 | |  Help archive

Kubernetes bietet Unterstützung für die Verwaltung von Grafikprozessoren (GPUs) auf verschiedenen Knoten in einem Cluster. Dazu werden Device-Plug-ins eingesetzt.

In ArcGIS Enterprise on Kubernetes können Sie ein Device-Plug-in implementieren, um GPU-fähige Knoten in einem Cluster zu aktivieren und so GIS-Workflows zu optimieren, z. B. für Raster-Analysen und Deep Learning. Standardmäßig sind Funktionalitäten wie die Raster-Analyse so konfiguriert, dass sie im CPU-Modus ausgeführt werden. Sie bieten aber auch die flexible Möglichkeit zur Ausführung im GPU-Modus, sofern diese Ressourcen verfügbar sind.

Ob Sie die Bereitstellung und Nutzung von GPUs in einem Cluster in Erwägung ziehen, ist optional, da dies zusätzliche Kosten verursacht.

Zur Aktivierung der GPU ist ein NVIDIA-Device-Plug-in für Kubernetes erforderlich. Das NVIDIA-Device-Plug-in für Kubernetes ist ein DaemonSet, worüber Sie die Anzahl der GPUs auf jedem Knoten eines Clusters anzeigen, GPU-fähige Container ausführen und den Zustand der GPUs verfolgen können.

Hinweis:

Derzeit wird ArcGIS Enterprise on Kubernetes nur mit NVIDIA-GPUs unterstützt.

Aktivieren der GPU

Zum Aktivieren der GPU für Ihre Organisation gehören die folgenden Schritte; sie richten sich jedoch nach Ihrer Umgebung und Ihren Einstellungen.

  1. Führen Sie die Schritte zur Konfiguration der Raster-Analyse bzw. einer anderen Funktionalität, für die Sie GPU-fähige Knoten verwenden möchten, aus.
  2. Vergewissern Sie sich, dass das Device-Plug-in auf Ihrer Instanz installiert ist.

    Viele Cloud-Umgebungen verfügen über vorkonfigurierte GPU-Knoten. Wenn das Device-Plug-in nicht installiert ist, finden Sie weitere Informationen und Installationsschritte in der Dokumentation zum NVIDIA-Device-Plug-in für Kubernetes. Bei einer lokalen Bereitstellung muss der Administrator auf jedem Knoten in einem Cluster die GPU aktivieren.

  3. Legen Sie Anforderungen und Limits für die GPU fest, um GPU-fähige Knoten für die GIS-Workflows Ihrer Organisation zu nutzen.
  4. Wenn GPU-Workloads ausschließlich auf GPU-Knoten ausgeführt werden sollen, können Sie optional die Knotenaffinität und Toleranzen konfigurieren.

Festlegen von Anforderungen und Limits für die GPU

Legen Sie über das ArcGIS Enterprise Administrator API-Verzeichnis für jede der folgenden Bereitstellungen Anforderungen und Limits für die GPU fest:

  • system-rasteranalysistools-gpsyncserver (wird für Trainingsmodelle verwendet)
  • system-rasterprocessinggpu-dpserver (wird für die Verarbeitung verwendet)

  1. Melden Sie sich als Administrator beim ArcGIS Enterprise Administrator API-Verzeichnis an.
  2. Klicken Sie auf System > Deployments.
  3. Suchen Sie nach der system-rasteranalysistools-gpsyncserver-Bereitstellung, und klicken Sie auf die zugehörige ID.
  4. Klicken Sie auf Edit Deployment.
  5. Suchen Sie im JSON-Code der Bereitstellung nach dem Abschnitt resources sowie den Parameter customResources.
              
    "containers": [
          {
            "name": "main-container",
            "resources": {
              "memoryMin": "4Gi",
              "memoryMax": "8Gi",
              "cpuMin": "0.125",
              "customResources": {
                "limits":{"nvidia.com/gpu": "1"},
                "requests":{"nvidia.com/gpu": "1"}
              },
              "cpuMax": "2"
            },
    
  6. Aktualisieren Sie den Parameter customResources für jeden aufgeführten Container, um Anforderungen und Limits für die GPU anzugeben.
  7. Klicken Sie auf Submit, um die Änderungen an der Bereitstellung zu speichern.
  8. Wiederholen Sie die Schritte für die system-rasterprocessinggpu-dpserver-Bereitstellung.

In der Dokumentation zur Administrator Directory API erfahren Sie, wie Sie Systembereitstellungen bearbeiten.

Konfigurieren der Knotenaffinität und Toleranzen

Auf GPU-Knoten können sowohl CPU- als auch GPU-Workloads ausgeführt werden. Wenn es zulässig ist, dass Ihre CPU-Workloads auf einem GPU-Knoten ausgeführt werden, sind keine weiteren Schritte erforderlich. Um sicherzustellen, dass GPU-Workloads ausschließlich auf GPU-Knoten ausgeführt werden, muss Ihr Administrator jedoch zusätzliche Schritte unternehmen, um die Knotenaffinität und Toleranzen zu konfigurieren. Zu diesem Zweck müssen die Knoten mit einem sog. Taint gekennzeichnet und Toleranzen auf die entsprechenden Services angewendet werden, damit sie auf einem Knoten, der mit einem Taint gekennzeichnet ist, geplant werden können. Dieser Konfigurationsvorgang umfasst die nachfolgenden Schritte:

Hinweis:

In ArcGIS Enterprise Manager können Sie die Effekte NoSchedule und PreferNoSchedule auswählen. In dieser Version ist der Effekt NoExecute nicht verfügbar, da er bei Arbeitsabläufen, die aktuell auf einem Knoten ausgeführt werden, zu Unterbrechungen führen kann. NoExecute kann jedoch bei der Konfiguration der Knotenaffinität und Toleranzen über die Admin-API angewendet werden.

  1. Kennzeichnen Sie die GPU-Knoten mit einem Taint, um sicherzustellen, dass GPU-Workloads ausschließlich auf GPU-Knoten geplant werden.

    kubectl taint nodes <your-node-name> nvidia.com/gpu=Exists:NoSchedule
    

  2. Geben Sie eine Beschriftung für die GPU-Knoten an. Sie können auch eine vorhandene Beschriftung verwenden, die bereits für den Knoten angegeben wurde.

    kubectl label nodes <your-node-name> raster=GPU
    

  3. Melden Sie sich bei ArcGIS Enterprise Manager als Administrator an.
  4. Klicken Sie auf die Schaltfläche Services auf der Seitenleiste.
  5. Klicken Sie auf Systemdienste, und wählen Sie RasterProcessingGPU aus.
  6. Klicken Sie auf die Registerkarte Pod-Platzierung, um die Pod-Platzierung für den Service zu verwalten.
  7. Um eine Knotenaffinitätsregel anzuwenden, mit der sichergestellt wird, dass die Pods des Service auf GPU-Knoten geplant werden, geben Sie im Abschnitt Knotenaffinität die folgenden Informationen an, und klicken Sie auf Hinzufügen:
    • Typ: Erforderlich
    • Schlüssel: Raster
    • Operator: In
    • Wert: GPU
  8. Um eine Toleranz anzuwenden, die das Ausführen von Pods auf Knoten mit Taints ermöglicht, geben Sie im Abschnitt Toleranzen die folgenden Informationen an, und klicken Sie auf Hinzufügen:
    • Effekt: NoSchedule
    • Schlüssel: nvidia.com/gpu
    • Operator: Ist vorhanden

  9. Klicken Sie auf Speichern.
  10. Überprüfen Sie, ob GPU-Pods auf den GPU-Knoten ausgeführt werden.

Sie können nun Raster-Analysewerkzeuge verwenden und Bilddaten in Ihrer Organisation hosten. Beachten Sie auch die Empfehlungen für das Optimieren von Raster-Analysen.