ArcGIS AllSource 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
Ein Grafikprozessor (GPU) ist eine Hardware-Komponente eines Computers, die das Rendern von Grafiken auf dem Bildschirm beschleunigen soll. 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 CUDA-Compute Capability Version 5.2 oder höher von dem Werkzeug unterstützt. In Ihrem System muss eine entsprechende Karte installiert sein, um auf diese Funktion zugreifen zu können.
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 NVIDIA Grafikkarte aufgeführt ist, können Sie nicht auf diese Funktion zugreifen und das Werkzeug verwendet die CPU.
Wenn eine NVIDIA Grafikkarte aufgeführt ist, überprüfen Sie über die NVIDIA Systemsteuerung, welcher GPU-Typ auf Ihrem System installiert ist:
- Klicken Sie mit der rechten Maustaste auf dem Desktop in einen leeren Bereich.
- 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 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
Das Werkzeug verwendet nur für die Berechnung eine GPU. 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 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, die für Rechenvorgänge genutzt wird.
Im Falle mehrerer GPUs in einem System wird durch zwei Systemumgebungsvariablen festgelegt, welche GPU verwendet wird: CUDA_DEVICE_ORDER und CUDA_VISIBLE_DEVICES.
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 darauf durchzunummerieren, wie sie auf einem Computer installiert sind, ä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 dazu 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 Umgebungsvariablen CUDA_VISIBLE_DEVICES und CUDA_DEVICE_ORDERfinden Sie auf der Website 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-(Timeout Detection and Recovery-)Bedingung 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.
Vorsicht:
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 Registrierungsdatenbank verfügen, auf die Sie bei Problemen zurückgreifen können, oder lassen Sie die Änderung von einem kompetenten Systemanalytiker vornehmen.