Raytracing in the cloud - bereits auf dem Herbst-IDF 2010 ein Thema [Quelle: siehe Bildergalerie]
Mithilfe von Intels MIC-Architektur (Many Integrated Core), welche auf dem Larrabee-Chip und der Knights Ferry genannten Coprozessor-Karte basiert, bringt Daniel Pohl, Raytracing-Spezialist bei Intel, das
Thema Raytracing und einen Cloud-basierten Ansatz zusammen. Einen ersten
Bericht samt Video zu diesem Vorgehen konnten wir Ihnen bereits im September 2009 liefern.
Die Raytracing-Cloud Server, in einem Rechenzentrum oder einfach nur im Keller des Eigenheims, welche auf Intels "Many Intregrated Core"-Architektur basieren, führen die aufwendigen Berechnungen für das Raytracing durch. Dafür nutzt "die Cloud" vier Knights-Ferry-Coprozessoren. Diese basieren auf Intels Larrabee-Chip mit jeweils 32 Kernen und 1,2 GHz Taktfrequenz. Diese sind, anders als Grafikkarten, voll x86-kompatibel und können mit den Standard-Tools der CPU-Programmierung angesprochen werden. In Zukunft sollen dank 22nm-Fertigung auch mehr als 50 Kerne in einem Prozessor integriert werden, welcher dann Knights Corner genannt wird.
Zur Lastverteilung bieten sich laut Daniel Pohl zwei Methoden an: einer teilt das Bild in Kacheln auf und alle beteiligten Server und Prozessoren arbeiten gemeinsam an einem Bild. Die andere ist von klassischen Multi-GPU-Lösungen wie SLI und Crossfire bekannt und nennt sich Alternate Frame Rendering. Dabei arbeitet jeder der in diesem Falle vier beteiligten Server an einem einzelnen Bild. Daniel Pohl empfielt für kommerziellen Einsatz aufgrund von Latenzproblemen die erste Lösung, nutzt für die Techdemo allerdings AFR, um die Bildrate weiter zu erhöhen und weniger Rechenzeit mit dem Verwaltungsoverhead zu verbringen.
Client-Server-Verbindung Die Technologie-Demonstration nutzt als Verbindung zwischen Server und Endgerät eine großzügige 1Gbit-Ethernet-Verbindung, sodass auf stark qualitätssenkende Kompression verzichtet werden kann. Eine unkomprimierte RGBA-Übertragung mit 60 Fps würde, selbst bei Verzicht auf den Alpha-Kanal (also nur RGB) die Grenzen des mit Gigabit-Ethernet machbaren sprengen. Daher kommt DXT1 zum Einsatz, welches eine Standardfunktion heutiger Grafiklösungen ist, sodass die Dekodierung ohne großen Aufwand erfolgen und optional auch vom (unterbeschäftigen) Host-Prozessor des Servers erledigt werden kann.
Schwankungen bei der Netzwerkverbindung, bei der verwendeten Hardware und anderen Faktoren machen eine genaue Vorhersage der Latenz schwierig. Zwei Rechenbeispiele, die Daniel Pohl anführt, sehen Latenzsummen zwischen 132 und 234 Millisekunden von Eingabegerät, Datenübertragung, Berechnung, Datenrückversand und Monitor. Für schnelle Shooter mit Wettkampfcharakter wohl etwas zu viel, aber etwas gemütlichere Spielarten wie Rollen- oder Strategiespiele sollten damit möglich sein.
Raytracing-Engine Die Raytracing-Engine ist zweigeteilt. Der auf der CPU laufende Part übernimmt die Ansteuerung der Knights Ferry und die Aufbereitung des Datenstroms. Auf Knights Ferry selbst wird der Löwenanteil der Arbeit geleistet und 31 der 32 Kerne werden mit ihren insgesamt 124 Hardware-Threads für die Pixelberechnungen des Raytracings selbst und für die Aktualisierung der Beschleunigungsstrukturen ausgelastet, um das Raytracing effizienter zu gestalten. Der freie Kern verwaltet anfallenden Treiber-Overhead. In der verwendeten 720p-Auflösung erreichte die Raytracing-Cloud aus vier Maschinen Fps-Raten zwischen 38 und 78 Fps in den von Intel genannten Beispiel-Szenarien.
Zusammenfassung: Spielen in der Cloud dürfte ein besonders für die Anbieter interessanter Zweig sein. Man vermarktet lediglich noch die Inhalte und schränkt seinen potenziellen Kundenkreis nicht auf Besitzer eine bestimmten Hardware oder einer bestimmten Rechenleistung ein. Jeder kann mit einem nahezu beliebigen, auch mobilen Endgerät den Inhalt "konsumieren". Zudem eröffnet Cloud-gaming eine nahezu vollständige Kontrolle des Urheberrechts, da an die Kunden lediglich ein Video-Datenstrom ausgeliefert wird und keinerlei kopierbare Inhalte auf dem Endgerät nötig sind. Anders herum ist der Konsum natürlich nur bei entsprechender Netzverfügbarkeit und - unterwegs - bei einem Mobilfunkvertrag mit entsprechender Datenrate möglich und sinnvoll. Zudem dürfte die Steuerung insbesondere bei zur Spielekonsole umfunktionierten Mobiltelefonen eine Herausforderung darstellen, wenn die Spiele nicht speziell für das jeweilige Endgerät optimiert werden.
Mithilfe rechenstarker Cloud-Lösungen lassen sich Raytracing-basierte Spiele auch heute schon flüssig umsetzen, ohne dass der einzelne Spieler einen sündhaft teuren Serverpark im Keller aufstellen muss.Weiterer Fortschritt ist in Sachen Netzwerkverbindung nötig, um einen qualitativ hochwertigen Datenstrom auch bei geringer Bitrate für mobile Endgeräte sicherzustellen. Intel muss außerdem noch daran arbeiten, auch mehrere Beschleunigerkarten in einem Host-System ansteuern beziehungsweise effizient nutzen zu können, sodass die Energie- und damit Kühlungs- sowie Platzbedarf in Rechenzentren nicht ausufern. Weitere Karten könnten auch dafür eingesetzt werden, die Darstellungsqualität beispielsweise durch Antialiasing zu erhöhen.
Quelle:
Intel
Freizeitschrauber
25.02.2011 20:27
Gerade, wenn mehrere Schüsse fallen (extra Lichtquellen) und gleichzetig noch Spiegelungen berechnet werden müssen, sieht das für mich eher nach Diashow aus....
Das wäre natürlich möglich.
Bei Spielerbewegung muss die Radiosity allerdings wieder neu berechnet werden, da diese sich ja auch im Umfang der globalen Beleuchtung befinden
Momentan ist Rastergrafik einfach das beste. Selbst gerastertes GI sieht bei Crytek verdammt gut aus.
PC-Selbstbauer
25.02.2011 19:06
Mit Radiosity hätte das Spiel halt immer z.B. 100 FPS, egal wo sich die Spieler befinden. Oder man bezieht die Spieler gar nicht in die Berechnung ein und lässt die Cloud beim Start halt ein bischen länger rechenen (und macht dann mit normalen Methoden auf dem heimischen PC weitere Berechnungen).
Gerade, wenn mehrere Schüsse fallen (extra Lichtquellen) und gleichzetig noch Spiegelungen berechnet werden müssen, sieht das für mich eher nach Diashow aus....
Freizeitschrauber
24.02.2011 23:16
Radiosity würde sich schon eher eignen aber dann hätte man wieder das Problem mit den Spiegelungen und die Anzahl der Polygone müsste wahrscheinlich auch wieder verringert werden müssen. Außerdem ist es noch langsamer.
Klar limitiert das. Es wäre deutlich sinnvoller, mit Raytracing "zu Hause" zu spielen und es nicht in der Cloud durchzuführen. Raytracing ist bezüglich des Rechenaufwandes sehr zickig. Es kann sein, dass eine einfache Szene mit über 100FPS läuft und der nächste Raum ruckelt nur noch mit 15 herum, wenn die Szene vor Sekundärstrahlen überquellt. Eine weitere Lichtquelle hier, noch ein Spiegel da und eine riesige, lichtbrechende Wasseroberfläche mir volumetrischem Licht und Kaustiken und Intels Overkill-Cloud kommt auf dem Zahnfleisch daher.
Wenn Intel wirklich ein Verfahren entwickeln will, Raytracing in Spiele zu bekommen, dann doch bitte daheim und nicht in der Cloud. Mit einem guten Monte-Carlo-Verfahren wäre dann sogar eine maximale Begrenzung an Strahlen möglich, sodass jede Szene IMMER mit der selben FPS-Rate gerendert wird (dabei muss man natürlich bei extrem komplexen Szenen an Qualität einbüßen...). Daher halte ich das für den besten Weg. Sonst sinkt die Leistung bei größerer Spielerzahl - was soll der Mist?
Radiosity ließe sich ja auch theoretisch mit Raytracing verbinden, aber Radiosity in Verbindung mit Raytracing wäre wohl weder performant, noch schön, weil für Radiosity in hoher Qualiät wiederum sehr hochauflösende Meshes benötigt werden... die Performance sinkt weiter. Zudem ist Radiosity sehr ineffizient...
Hier wäre wohl eher die traditionelle Lightmap-Methode oder gar globales Raytracing besser geeignet.
Ich frage mich in letzter Zeit häufiger, was an der tollen Cloud so super sein soll, dass Intel so drauf abfährt...