"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

GPUPI 3 ist final!

mat 05.04.2018 52703 54
gpupi-logo_229818.png
Nach monatelanger Arbeit können wir voller Stolz verkünden, dass unser GPUPI nun alle Features enthält, die für Version 3 geplant waren. Das neueste Release hört auf den Namen GPUPI 3.3 und ist die letzte Minor-Version der dritten Iteration unseres Compute-Benchmarks. Unter den Highlights der neuen Version befinden sich eine praktische Hardware-Erkennung mittels integriertem HWiNFO, die Multi-GPU-Berechnung mit unterschiedlichen Grafikkarten-Herstellern (zB: AMD und NVIDIA), ein brandneuer Command Line Modus und endlich ein neues Logo! Zusätzlich gibt es eine Fülle an kleineren und größeren Verbesserungen und Bugfixes, die das Benchen von Pi auf euren Grafikkarten und CPUs angenehmer als je zuvor gestalten. Bootet eure Workstations hoch - wir wollen Ergebnisse sehen!

HWBOT-Version für Weltrekorde und Punkte:
Neueste Version:


Optimierungen am Pi-Algorithmus

Zum ersten Mal seit GPUPI 1.x haben wir Hand am primären Compute Kernel angelegt. Es gab zwar immer wieder Leistungsverbesserungen in den letzten Versionen, aber die hatten ausschließlich damit zu tun, dass neue Funktionen von neuer Hardware und neuen Versionen der GPGPU-APIs eingebaut wurden. Dieses Mal haben wir allerdings den Schritt gewagt und den Algorithmus im Bereich der 128-bit-Integer-Funktionen schlanker implementiert. Dadurch fällt die Berechnung weniger komplex aus und lässt sich künftig leichter für neue Hardware optimieren. Der Hauptgrund für die Anpassung war jedoch ein anderer: Auf unserer Roadmap für GPUPI 4 steht nämlich ein neuer Native Path für CPU-Berechnungen mittels OpenMP, der die OpenCL-Implementierung für Prozessoren ablösen wird. Die neue CPU-Implementierung wird auch AVX und AVX2 unterstützen und dadurch deutlich schneller sein als die stiefmütterlich vernachlässigten OpenCL Driver von AMD und Intel. Dadurch vereinfacht sich die Installation bzw. Handhabung von GPUPI, weil kein zusätzlicher Driver mehr installiert werden muss, um CPUs zu benchen.

Folgende Performance-Optimierungen wurden in Version 3 implementiert:
  • Vereinfachung der 128-bit-Integer-Funktionen
  • Unterstützung für CUDA 9.x mit geringerem Overhead für Kernel Calls und neuer Memory Reduction Variante mit Warp Shuffles (optimiert den Speicherzugriff bei Summieren der Zwischenergebnisse, falls die Grafikkarte es unterstütz [Pascal aufwärts])
  • Verbesserte Kernel Synchronisierung bzw. "Kernel Call Parallelisierung" für OpenCL; reduziert ebenfalls den Overhead
  • Optimierung der OpenCL Memory Reduction durch Auslagerung von Berechnungen in den Preprocessor

Um zu vergleichen, was sich in Sachen Performance zwischen GPUPI 2.3.4 und GPUPI 3.3 getan hat, haben wir zwei GTX 1080 Ti in 32B antreten lassen. Ja, ihr lest richtig: 32 Milliarden Stellen von Pi in nur 4 Minuten und 37 Sekunden!


Unterstützung von neuer Hardware

GPUPI 3.3 unterstützt die folgenden neuen CPUs, APUs und Grafikkarten:
  • Titan V
  • Vega 56 und Vega 64
  • Threadripper
  • Coffee Lake
  • Intel Xeon Phi (Many Integrated Core Architecture)
  • Raven Ridge (Ryzen 5 2400G, Ryzen 3 2200G)
  • Ryzen 2

Debug Log und Tooltips

GPUPI ist sicherlich nicht der einfachste Benchmark dieser Welt und das ist uns voll und ganz bewusst. Deshalb bringt Version 3 mit einem ausführlichen Debug Log etwas Licht ins Dunkel. Das soll zum Verständnis beitragen und in Fehlerfällen für zusätzliche Informationen sorgen. Das Debug Log-Fenster kann über das Tools-Menü erreicht werden. Zusätzlich hat der Settings-Dialog nun Tooltips bekommen, die jede einzelne Einstellung genau erklärt und Empfehlungen ausspricht.


Hardware-Erkennung mittels HWiNFO

Gemeinsam mit dem Entwickler von HWiNFO haben wir an einer Hardware-Erkennung gearbeitet, die Taktraten von Grafikkarten und CPUs, sowie Speichertakt und -latenzen ausliest und am Ende des Runs ausgibt. Die gesammelten Systeminformationen können anschließend bequem an HWBOT übertragen werden, ohne einen manuellen Eingriff für einen gültigen Weltranglisten-Eintrag zu erfordern. Das ermöglicht einen effizienten Ablauf im Punktekampf auf HWBOT.


Mixed Multi-GPU-Modus

GPUs von unterschiedlichen Herstellern auf verschiedenen GPGPU-Plattformen zu mischen, wollten wir schon seit langer Zeit in die Feature-Liste unseres Benchmarks aufnehmen. Mit Version 3 können nun eine NVIDIA-Grafikkarte per CUDA und eine AMD-Grafikkarten per OpenCL gemeinsam Pi berechnen. Es fühlt sich wirklich ungewohnt an, Team Green und Team Red vereint zu sehen!


Verbesserte Codebase

Im Laufe der Entwicklung von GPUPI 3 wurden große Teile des Source Codes neu implementiert und refactored. Jegliche OS-Abhängigkeiten wurden in eigene Klassen ausgelagert und der Rechenkern ist so flexibel wie nie zuvor mit einer "Calculation"-Basisklasse, die zukünftige Erweiterungen an der Berechnung zulässt. Wozu erwähnen wir das überhaupt? Weil wir zwei weitere Punkte unserer Roadmap mit euch teilen wollen: GPUPI für Linux und ein eingebauter Stress Test. Für beides sind nun die Grundsteine gelegt, sodass unseren ambitionierten Plänen für GPUPI 4 nichts mehr im Wege steht.

Zu guter Letzt haben wir endlich ein automatisiertes Deployment eingerichtet. Damit sollten die Ausreden für kleinere Bugfix-Releases ein für alle Mal Geschichte sein. ;)

Schmerzfreie Timer

Was wäre ein Benchmark ohne einem verlässlichen Timer? Genau deshalb haben wir an der Uhr gedreht, um unsere Timer-Implementierung so robust, aber auch so schmerzfrei wie möglich zu halten. Wir verwenden jetzt zusätzlich den in der CPU integrierten Timestamp Counter für die Zeitmessung, wenn dieser auch verlässlich ist. Als Fallback unterstützen wir weiterhin RTC (Real Time Clock) und den High Precision Event Timer, kurz HPET. Da letztere Option im Bedarfsfall mühsam händisch aktiviert werden muss, greifen wir den Benchern unter die Arme und kümmern uns selbst um eine automatisierte Aktivierung inklusive Reboot. HPET kann anschließend auch jederzeit über das Tools-Menü wieder deaktiviert werden.

Außerdem lässt sich GPUPI nun auch ohne sicherem Timer benchen, dafür kann das Ergebnis nicht auf HWBOT hochgeladen werden. Damit wollen wir den Zugang zu GPUPI vereinfachen, denn bis dato konnte ohne der Aktivierung von HPET nicht einmal ein Resultat erzielt werden. Zeitgleich darf dadurch die Vergleichbarkeit der Resultate nicht leiden.

click to enlarge


Command Line Mode

Mit der mitgelieferten GPUPI-CLI.exe könnt ihr ab sofort ohne GUI in einer Power Shell oder einer Eingabeaufforderung benchmarken. Damit die Berechnung innerhalb des aktuellen Fensters stattfindet, müsst ihr die Shell mit Administratorrechten öffnen. Das ist notwendig, um den Driver für die Hardware-Erkennung installieren zu können.

Der Command Line Modus eignet sich speziell für die Automatisierung von GPUPI beim regelmäßigen Testen von Hardware und damit besonders interessant für Reviewer. Selbstredend haben wir GPUPI so in unser internes Benchmark-Automatisierungstool Rebench eingebaut.


Beispiele:
  • GPUPI-CLI.exe -h ... Help
  • GPUPI-CLI.exe -l ... Alle Devices auflisten
  • GPUPI-CLI.exe -d 1B -g ... 1B auf allen Grafikkarten im System laufen lassen, alle Berechnungsparameter werden automatisch getestet und die beste Kombination verwendet.
  • GPUPI-CLI.exe -d 1B -g -a OpenCL -b 20M -r 512 ... 1B auf allen OpenCL-fähigen Grafikkarten mit der Batch Size 20M und der Reduction Size 512 durchlaufen lassen
  • GPUPI-CLI.exe -d 100M -c ... 100M auf allen möglichen CPU-Konfigurationen durchlaufen lassen (kann etwas länger dauern)

Neues Logo

Mit besonderer Freude dürfen wir euch das neue Logo von GPUPI vorstellen. Es stammt aus der Feder des langjährigen Community-Mitglieds Jackinger, der bereits beim Layout von overclockers.at fleißig mitgemischt hat. Nach einigen Revisionen sind zwei Varianten herausgekommen, die wir beide je nach Icon-Größe im Benchmark verwenden:


Weitere Verbesserungen:

  • HWBOT-Features: Submission läuft nun verschlüsselt über https ab, Screenshots sind ab sofort Pflicht (um die Moderation von Ergebnissen zu erleichtern), Result-File-Validierung verbessert, Result-Files werden nun in einem besseren Format abgespeichert (zB: 2x_GeForce_GTX_1080_Ti_GPUPI_32B_04m-37.242s.hwbot)
  • Neue Reduction Size: 1024
  • Unterstützung für OpenCL 2.0 (keine Performance-Änderung, dafür schnellere Initialisierung der Runs)
  • Device Detection für AMD-Grafikkarten stark verbessert
  • Detailliertere und vor allem transparentere Darstellung der Eigenschaften von verwendeten GPGPU-Plattformen, CPUs und GPUs
  • Benchmark Runs beginnen jetzt ohne einem Start-Dialog zur Bestätigung. Dieses Setting kann über die Checkbox "Run Confirmation" geändert werden. Das ist sinnvoll für Extreme Overclocker, die ihre Hardware vor dem Run mit flüssigem Stickstoff abkühlen wollen.
  • Neue Legacy Version von GPUPI mit zahlreichen Kompatibilitätsverbesserungen, um möglichst viele, alte Hardware zu unterstützen (zB GeForce 200-Serie und Intel Core 2 Duos)
  • Ausführlichere und besser formatierte Fehlermeldungen
  • Effizientere GUI-Darstellung des Benchmark-Fortschritts (kein Flackern mehr beim Benchen von Grafikkarten)
  • About-Dialog aktualisiert

Ein herzliches Dankeschön an alle, die diese Version möglich gemacht haben:

  • Martin Malik von HWiNFO
  • Jackinger für das Logo Design
  • Intel Deutschland
  • GIGABYTE Deutschland
  • G.Skill
  • Blaues U-boot für seine GTX 280
  • Garbage für das unermüdliche Posten von Ergebnissen mit exotischen/unveröffentlichten CPUs und APUs
  • MisterHM80 fürs Testen mit Intel Xeon Phi
  • steponz für den Remote Zugriff auf seine Titan V
  • Sowie alle Tester aus unserer Community!

:ghug:
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz