Skip to main content

GPU-Verarbeitung mit Spatial Analyst

Mit Spatial Analyst-Lizenz verfügbar.

Mit 3D Analyst-Lizenz verfügbar.

ArcGIS Pro bietet nun eine optimierte Performance bei Verwendung der GPU-Verarbeitung für einige Werkzeuge. Diese Technologie nutzt die Rechenleistung der Grafikkarte moderner Computer, um die Performance bestimmter Vorgänge zu optimieren.

Die folgenden Werkzeuge unterstützen derzeit die GPU-Verarbeitung:

GPU-Verarbeitung

Eine GPU ist eine Hardware-Komponente in einem Computer, die das Rendern von Grafiken auf der Bildschirmanzeige beschleunigt. Seit einiger Zeit wird die Verarbeitungsleistung von GPUs auch für die Durchführung allgemeiner Verarbeitungsaufgaben genutzt.

Bei Werkzeugen, die sich per GPU beschleunigen lassen, übernimmt die GPU die Raster-Verarbeitungsaufgaben anstelle der CPU. Bestimmte Arten von Verarbeitungsvorgängen profitieren von dieser Methode. In diesen Fällen wird die Verarbeitungsaufgabe von der Software in viele kleine Portionen geteilt und zur Verarbeitung an die GPU gesendet. Die GPU führt die Berechnungen für alle kleinen Portionen parallel mit höherer Geschwindigkeit durch. Die resultierenden Daten werden zurückgesendet und die Komponenten von der Software zu einem endgültigen vollständigen Produkt zusammengeführt.

Unterstützte GPU-Karten und -treiber

Es stehen verschiedene Lösungen für die GPU-Verarbeitung zur Verfügung. Derzeit werden nur NVIDIA-GPUs mit einer CUDA-Compute Capability der Mindestversion 5.2 oder höher vom Werkzeug unterstützt. In Ihrem System muss eine entsprechende Karte installiert sein, um auf diese Funktion zugreifen zu können. Für die Analyse der Sonneneinstrahlung wird eine CUDA-Compute Capability der Mindestversion 7.0 oder höher empfohlen, um die zusätzlichen GPU-Performance-Verbesserungen in vollem Umfang zu nutzen.

Um die Grafikkarten auf einem Windows-Computer zu überprüfen, öffnen Sie den Geräte-Manager des Systems, und blenden Sie die Option "Grafikkarte" ein. Hier werden die Markennamen und Grafikkartentypen angezeigt. Wenn keine Grafikkarte der Marke NVIDIA aufgeführt ist, können Sie nicht auf diese Funktion zugreifen, und das Werkzeug verwendet die CPU.

Ist eine NVIDIA-Grafikkarte aufgeführt, überprüfen Sie über die NVIDIA-Systemsteuerung wie folgt, welcher GPU-Typ in Ihrem System installiert ist:

  1. Klicken Sie mit der rechten Maustaste auf dem Desktop in einen leeren Bereich.

  2. Klicken Sie im Kontextmenü auf Mehr Optionen anzeigen (oder drücken Sie Umschalt + F10 auf der Tastatur).

  3. Klicken Sie auf NVIDIA-Systemsteuerung.

  4. Wechseln Sie im Fenster der Systemsteuerung zum Hilfemenü, und klicken Sie auf Systeminformationen.

    Es werden alle NVIDIA Grafikkarten, deren Treiberversionen und andere Eigenschaften angezeigt.

Nachdem Sie den Typ der NVIDIA-GPU-Karte ermittelt haben, suchen Sie deren CUDA-Compute Capability auf der NVIDIA-Hilfeseite für CUDA-GPUs. Suchen Sie im entsprechenden Abschnitt Ihre spezifische GPU-Karte, und notieren Sie sich den dort aufgeführten Compute Capability-Wert. Er muss mindestens 5.2 betragen, um vom Werkzeug unterstützt zu werden.

Wenn eine GPU-Karte auf einem Computer installiert ist, ist sie mit einem Standardtreiber ausgestattet. Bevor Sie ein Analysewerkzeug ausführen, das eine GPU verwendet, müssen Sie die GPU-Kartentreiber auf der Aktualisierungsseite für NVIDIA-Treiber auf die neueste Version aktualisieren.

GPU-Konfiguration

Die Werkzeuge können für Berechnungen nur eine GPU verwenden. Wenn Ihr Computer jedoch nur über eine installierte GPU verfügt, wird sie für die Anzeige und für die Berechnung verwendet. In diesem Fall wird zum Zeitpunkt der Ausführung des Werkzeugs die Warnmeldung angezeigt, dass die Anzeige möglicherweise nicht reagiert. Für räumliche Analysen empfiehlt sich die Verwendung von zwei GPUs: eine für die Anzeige und eine für Rechenvorgänge.

Wenn mehrere GPUs in einem System vorhanden sind, bestimmen die Umgebungsvariable GPU-ID und zwei Systemumgebungsvariablen (CUDA_DEVICE_ORDER und CUDA_VISIBLE_DEVICES), welche GPU verwendet wird.

Standardmäßig wird die Systemumgebungsvariable CUDA_DEVICE_ORDER auf FASTEST_FIRST festgelegt. Das bedeutet, dass mehrere GPUs auf einem Computer beginnend bei 0 von der schnellsten zur langsamsten durchnummeriert werden. Um die GPUs basierend auf ihrer Installation in einem Computer zu nummerieren, ändern Sie die Umgebungseinstellung CUDA_DEVICE_ORDER in PCI_BUS_ID.

Eine GPU im Tesla Computer Cluster (TCC) gilt als schneller als eine GPU im Standard-Windows Display Driver Model (WDDM). Folglich wird sie als erste aufgeführt (Index 0) und standardmäßig zur Ausführung des Werkzeugs verwendet. Wenn keine GPU im TCC-Treibermodus vorhanden ist und die CUDA_DEVICE_ORDER-Umgebung in ihrer Standardeinstellung belassen wird, wird die erste GPU (mit dem Index 0) verwendet, sofern nicht anders angegeben.

Um eine GPU festzulegen oder um sie zu deaktivieren, können Sie die Systemumgebungsvariablen CUDA_DEVICE_ORDER und CUDA_VISIBLE_DEVICES wie folgt einrichten:

  • Um eine andere GPU zu verwenden, legen Sie sie über die Systemumgebungsvariable CUDA_VISIBLE_DEVICES fest. Erstellen Sie zunächst diese Umgebungsvariable, falls sie noch nicht in Ihrem System vorhanden ist. Legen Sie ihren Wert anschließend auf den Indexwert (0 für die erste, 1 für die zweite usw.) fest, der das zu verwendende GPU-Gerät darstellt, und starten Sie die Anwendung neu. Der Indexwert hängt von der Reihenfolge ab, die durch die Systemumgebungsvariable CUDA_DEVICE_ORDER festgelegt wurde. Um den Wert CUDA_DEVICE_ORDER zu ändern, führen Sie dieselben Schritte aus wie bei der Systemumgebungsvariablen CUDA_VISIBLE_DEVICES.

  • Wenn die Analyse keine der in Ihrem System installierten GPU-Geräte verwenden soll, setzen Sie die Systemumgebungsvariable CUDA_VISIBLE_DEVICES auf -1 starten Sie die Anwendung anschließend neu. Die Ausführung des Werkzeugs erfolgt ausschließlich unter Verwendung der CPU.

  • Damit das Werkzeug wieder mit einem GPU-Gerät verwendet werden kann, löschen Sie entweder die Systemumgebungsvariable CUDA_VISIBLE_DEVICES, oder legen Sie ihren Wert auf den Indexwert des zu verwendenden GPU-Geräts fest, und starten Sie die Anwendung neu.

Weitere Informationen zu den Systemumgebungsvariablen CUDA_VISIBLE_DEVICES und CUDA_DEVICE_ORDER finden Sie im CUDA Toolkit Programming Guide.

In den folgenden Unterabschnitten werden die erforderlichen Konfigurationsschritte zum Erzielen einer optimalen Verarbeitung bei Verwendung der GPU-Funktion beschrieben.

Festlegen des TCC-Treibermodus

Stellen Sie bei NVIDIA-GPUs die Berechnungs-GPU auf den TCC-Treiber und nicht auf den Standard-WDDM-Treiber ein. Der TCC-Modus ermöglicht eine effizientere Nutzung der Berechnungs-GPU.

Um den TCC-Treibermodus zu aktivieren, verwenden Sie das NVIDIA System Management Interface-Steuerungsprogramm, das sich in der Regel unter C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe befindet. Mit dem Befehl 'nvidia-smi -dm 1 -i 2' wird die Karte mit der Geräte-ID 2 beispielsweise in den Anzeigemodus 1 (TCC) umgeschaltet.

Hinweis:

Wenn Sie ArcGIS Server ausführen, muss sich die für die Berechnung verwendete GPU im TCC-Treibermodus befinden.

Deaktivieren des ECC-Modus

Deaktivieren Sie den EEC-Modus (Error Correcting Code) für die Berechnungs-GPU, da er den für die GPU verfügbaren Speicher reduziert.

Um den ECC-Modus zu aktivieren, verwenden Sie das NVIDIA System Management Interface-Steuerungsprogramm (nvidia-smi), das sich in der Regel unter C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe befindet. Mit dem Befehl 'nvidia-smi -e 0 -i 1' wird beispielsweise der ECC-Modus für die GPU mit der Geräte-ID 1 deaktiviert.

Erhöhen der TDR-Einstellung

Wenn die Berechnungs-GPU sich im WDDM-Treibermodus befindet, kann der Treiber des Windows-Anzeigegeräts die GPU neu starten, wenn Berechnungsaufgaben länger als einige Sekunden dauern. Dies wird als Windows-TDR-Bedingung (Timeout Detection and Recovery) bezeichnet. In diesem Fall kann die Ausführung des Werkzeugs nicht abgeschlossen werden, und es wird ein GPU-Fehler zurückgegeben.

Sie können den Registrierungsschlüssel "TdrDelay" ändern, um dies zu verhindern. Indem Sie ihn auf einen geeigneten Wert (z. B. 60 Sekunden) festlegen, kann ein längerer Vorgang abgeschlossen werden, bevor die TDR-Bedingung ausgelöst wird. Der Registry-Pfad für den Schlüssel "TdrDelay" lautet in den meisten Windows-Systemen HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers. Wenn kein TdrDelay-Schlüssel vorhanden ist, müssen Sie ihn in diesem Pfad erstellen. Wenn Sie diesen Registry-Wert erstellen oder ändern, führen Sie zunächst eine Sicherung der Registrierung durch. Starten Sie den Computer neu, damit die Änderung wirksam wird. Weitere Informationen finden Sie unter Timeout detection and recovery (TDR) in der Microsoft-Entwicklerdokumentation.

Achtung:

Esri übernimmt keine Haftung für Systemprobleme, die durch unsachgemäße Änderungen an der Registrierung auftreten. Stellen Sie sicher, dass Sie über eine funktionierende Sicherung der Registrierung verfügen, auf die Sie bei Problemen zurückgreifen können, oder lassen Sie die Änderung von einem kompetenten Systemanalytiker vornehmen.