ArcGIS AllSource bietet 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. Bei bestimmten Arten von Verarbeitungsvorgängen kann diese Methode vorteilhaft sein. 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
Für die GPU-Verarbeitung sind verschiedene Lösungen verfügbar. 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 zuzugreifen. 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 Typen der Grafikkarten 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, welcher GPU-Typ in Ihrem System installiert ist:
- Klicken Sie mit der rechten Maustaste in einen leeren Bereich des Desktops.
- Klicken Sie im Kontextmenü auf NVIDIA-Systemsteuerung.
- Wechseln Sie im Systemsteuerungsfenster 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 nach der jeweiligen 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
Das Werkzeug verwendet eine GPU für die Berechnung. Wenn Ihr Computer jedoch nur über eine GPU verfügt, wird sie für die Anzeige und für die Berechnung verwendet. In diesem Fall wird bei der Ausführung des Werkzeugs eine 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.
Verfügt ein System über mehrere GPUs bestimmen zwei Systemumgebungsvariablen, welche GPU verwendet wird: CUDA_DEVICE_ORDER und CUDA_VISIBLE_DEVICES.
Standardmäßig ist die Systemumgebungsvariable CUDA_DEVICE_ORDER auf FASTEST_FIRST festgelegt. Das bedeutet, dass mehrere GPUs in einem Computer mit 0 beginnend von der schnellsten zur langsamsten GPU 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 TCC-Modus (Tesla Computer Cluster) gilt als schneller als eine GPU im standardmäßigen WDDM-Modus (Windows Display Driver Model). Folglich wird sie zuerst aufgeführt (Index 0) und standardmäßig zur Ausführung des Werkzeugs verwendet. Ist keine GPU im TCC-Treibermodus vorhanden und für die Umgebungseinstellung CUDA_DEVICE_ORDER die Standardeinstellung festgelegt, wird die schnellste GPU (mit dem Index 0) verwendet, sofern nichts anderes angegeben ist.
Um eine GPU anzugeben oder zu deaktivieren, können Sie die Systemumgebungsvariablen CUDA_DEVICE_ORDER und CUDA_VISIBLE_DEVICES wie folgt festlegen:
- Wenn Sie eine andere GPU verwenden möchten, geben Sie sie über die Systemumgebungsvariable CUDA_VISIBLE_DEVICES an. Erstellen Sie zunächst diese Umgebungsvariable, falls sie noch nicht in Ihrem System vorhanden ist. Legen Sie deren 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 bestimmt wird. Gehen Sie zum Ändern des Wertes CUDA_DEVICE_ORDER genauso vor wie für die Systemumgebungsvariable CUDA_VISIBLE_DEVICES.
- Wenn die Analyse keine der in Ihrem System installierten GPU-Geräte verwenden soll, legen Sie die Systemumgebungsvariable CUDA_VISIBLE_DEVICES auf -1 fest, und starten Sie die Anwendung anschließend neu. Für die Ausführung des Werkzeugs wird dann nur die CPU verwendet.
- Damit ein Werkzeug wieder mit einem GPU-Gerät verwendet werden kann, löschen Sie entweder die Systemumgebungsvariable CUDA_VISIBLE_DEVICES, oder legen Sie deren 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 beschrieben, um bei der Verwendung der GPU-Funktion eine optimale Performance zu erzielen.
Festlegen des TCC-Treibermodus
Legen Sie bei NVIDIA-GPUs die für die Berechnung verwendete GPU auf den TCC-Treiber statt auf den standardmäßigen WDDM-Treiber fest. 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 sich die Rechen-GPU im WDDM-Treibermodus befindet, kann das Windows-Anzeigegerät die GPU neu starten, wenn Rechenaufgaben 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.
Um diese Situation zu vermeiden, können Sie den Registrierungsschlüssel "TdrDelay" ändern. Wenn Sie ihn auf einen geeigneten Wert (z. B. 60 Sekunden) festlegen, können längere Rechenvorgänge abgeschlossen werden, bevor die TDR-Bedingung ausgelöst wird. Der Registrierungspfad 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. Nehmen Sie vor dem Erstellen oder Ändern dieses Registrierungswertes eine Sicherung der Registrierung vor. Starten Sie den Computer neu, damit die Änderung wirksam wird. Weitere Informationen finden Sie in der Microsoft-Entwicklerdokumentation unter Timeouterkennung und -wiederherstellung (TDR).
Vorsicht:
Esri übernimmt keine Verantwortung 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.