Wie Gaming-Hardware fit für neue Aufgaben wird

Eine Forschungsgruppe aus Graz entwickelt in einem vom Wissenschaftsfonds FWF finanzierten Projekt Methoden, um Grafik-Hardware für Videospiele flexibler für verschiedene Anwendungen zu machen. Das hat auch Auswirkungen auf die Programmierung von Supercomputern.

Der hohen theoretischen Leistungsfähigkeit steht allerdings die starke Spezialisierung der GPUs gegenüber, die für ganz bestimmte in der Grafikverarbeitung benötigte Rechenoperationen optimiert sind und deren Architektur seit 15 Jahren praktisch unverändert ist. Dieter Schmalstieg von der Technischen Universität Graz untersucht nun in einem vom Wissenschaftsfonds FWF finanzierten Projekt, wie GPUs flexibler gemacht werden könnten, ohne die Vorteile der hohen Rechenleistung zu verlieren.

Aufgaben parallel verarbeiten
„In den Achtziger und Neunziger Jahren waren Computerspiele eher ein Thema für Kinder. Mittlerweile ist das eine große Industrie, die mit GPUs die derzeit billigste und leistungsfähigste Hardware der Welt hervorgebracht hat“, sagt Dieter Schmalstieg. „So ist die Idee entstanden, dass sich diese auch für andere Dinge verwenden lässt.“ Der Schlüssel sei die „Parallelisierbarkeit“ von Algorithmen, so Schmalstieg: Wie lässt sich eine Aufgabe am besten in einzelne Aufgaben zerlegen, die sich parallel abarbeiten lassen? Die Besonderheit von GPUs ist die hohe Anzahl von Rechenkernen. Während ein Prozessor eines PCs derzeit typischerweise acht einzelne Rechenkerne besitzt, haben neue GPUs mehr als 5.000 Rechenkerne, die parallel arbeiten können, dabei allerdings nicht besonders flexibel sind.

„Was GPUs normalerweise tun, ist einen einzigen Befehl auf riesige Mengen von Daten anzuwenden.“ Jede Veränderung dieses Prinzips geht bisher auf Kosten der Effizienz und macht die Vorteile wieder zunichte. Schmalstieg arbeitet mit seinem Team daran, die vorgefertigten Software-Tools, die für Videospiele optimiert sind, durch neue, flexiblere Werkzeuge zu ergänzen, ohne die Effizienz zu verlieren. Dazu soll etwa der Speicher besser ausgenutzt werden: „Das Problem ist ein Klassiker der Informatik“, sagt Schmalstieg. Es gibt mehrere Arten von Speicher, schnelle, kleine Cache-Speicher, dann eine mittlere Hierarchiestufe von größeren, weniger schnellen Speichern und schließlich den Hauptspeicher, der groß, aber relativ langsam ist.

„Normalerweise überlässt man die Aufteilung des Speichers den Übersetzungswerkzeugen des Herstellers. Wir suchen nach Möglichkeiten, Entwickler-Teams mehr Einfluss auf die Zuweisung von Speicher zu ermöglichen“, erklärt Schmalstieg. Auch auf die Verteilung von Rechenaufgaben auf die unterschiedlichen Kerne sollen Entwickler-Teams größeren Einfluss bekommen, was die Effizienz weiter erhöht. Der Wissenschafter vergleicht seinen Zugang mit dem „Hacken“ von Hardware, weil die Herstellerfirmen nur ungern Einblick in ihre Entwicklungen geben und so vieles unbekannt sei. „Es geht hier um Geschäftsgeheimnisse.“ Das Ziel sei einerseits, Dinge auszureizen, die mit aktueller Hardware möglich sind, aber auch Konzepte zu entwickeln, die für künftige Generationen von Hardware sinnvoll sein könnten.

GPUs für Virtual Reality fit machen
Schmalstieg interessiert sich besonders für Grafikanwendungen, wo „Latenz“ eine Rolle spielt. Das ist für Anwendungen relevant, die in Echtzeit reagieren sollen, und zwar so schnell, dass ein Mensch die Verzögerung nicht bemerkt. Das ist etwa für Virtual Reality (VR) wichtig, wo es bei zu großen Latenzzeiten zu Übelkeit bei Anwenderinnen und Anwendern kommt. Für einige spezielle Anforderungen von Virtual-Reality-Systemen seien aktuelle GPUs nicht optimiert, so Schmalstieg: „Bei VR-Systemen sieht jedes Auge ein eigenes, nur geringfügig verändertes Bild. Es ließe sich viel einsparen, wenn man diese Ähnlichkeiten ausnützt.“

Die Idee sei nicht neu, doch mit den von ihm entwickelten Methoden ließe sich hier eine Verbesserung erzielen. „Bisher muss das Bild für jedes Auge komplett neu berechnet werden. Wir haben einen Prototypen geschaffen, der zeigt, wie das effizienter gemacht werden kann“, sagt der Forscher. Weiters wird bei Virtual-Reality-Brillen das Bild über eine Linse ans Auge gebracht, die den eigentlichen Bildschirm verzerrt. Hier müsse bisher ein flaches Bild berechnet und nachträglich verzerrt werden. Auch das lässt sich mit Schmalstiegs flexibleren Tools vereinfachen, indem direkt das verzerrte Bild berechnet wird.

GPUs für Supercomputer
Schmalstiegs Arbeit basiert auf der Sprache CUDA des GPU-Herstellers Nvidia. Er entwickelt damit Softwaretools, die dann von anderen Entwicklern verwendet werden können, die in einer Hochsprache wie C++ arbeiten, quasi als Schnittstelle zwischen Hardware und den Softwareentwicklern. Obwohl es sich in diesem Grundlagenprojekt um Prototypen handelt, laufen die Programme in Echtzeit, wie der Forscher betont.

Während Schmalstieg sich vorwiegend mit Grafik beschäftigt, interessiert sich sein Projektpartner Markus Steinberger für GPUs in Supercomputern. Aktuelle Supercomputer verfügen durch die Verwendung von GPUs oft über astronomische Werte bei der theoretisch möglichen Rechenleistung, können diese aber aufgrund der mangelnden Flexibilität nicht ausreizen. Hier spielt Latenz keine Rolle, sondern nur die möglichst gute Auslastung aller Kerne der GPUs. Auch hier bringt eine Flexibilisierung der Softwaretools große Vorteile. Im Rahmen des Projekts gelang es zu zeigen, wie moderne Supercomputer, die GPUs nutzen, besser ausgereizt werden können. Allerdings sei diesbezüglich noch Überzeugungsarbeit nötig, sagt Schmalstieg. Das Potenzial sei aber groß: „Hier wird weniger Standard-Software verwendet. Die Hemmschwelle, alternative Entwicklungsumgebungen zu verwenden, könnte daher geringer sein“, erklärt Schmalstieg. „Wir haben nachgewiesen, dass sich hier viel herausholen lässt.“

2. Februar 2019, von Markus 'Markus S.' Schaffarz