IDF - Realtime-Raytracing auf Knights Ferry

IntelObwohl Intel seine Larrabee-Technik nun unter dem Namen Knights Ferry als Entwicklerkarte für Rechenbeschleuniger veröffentlicht, hat sich an der grundlegenden Strategie offenbar wenig geändert. So hat Daniel Pohl die neuste Version seiner Echtzeitraytracing-Forschungen vorgestellt, bei der diesmal das Spiel Wolfenstein in Echtzeit gerendert wurde. Allerdings setzt Intel im Gegensatz zu früher nun auf ein Client-Server-Setup, wohl auch um den Einsatz der Knights-Karten in Server- und HPC-Systemen stärker zu betonen.

Die Grafik des Spiels wurde auf vier Servern mit Knights Ferry-Karten berechnet, die nach letzten Informationen auf 32 x86-Kerne mit einem Takt von 1,2 GHz und 4-fach Hyperthreading setzen. Anschließend wurde die Grafik des Spiels via Netzwerk auf ein Dual-Core-Laptop gestreamt, dessen Rechenleistung dementsprechend keine Rolle mehr spielt. Die Grafikdemo lief bei einer Auflösung von 1280 mal 720 Pixeln bei 35 bis 80 Bildern pro Sekunde.

Besonders betont werden die vielen Reflexionen, die dank der Raytracing-Technik sehr einfach zu realisieren sind und an vielen Stellen im Spiel auftauchen. So kann man beispielsweise in den Spiegelungen im Zielfernrohr eines Scharfschützengewehrs sehen, was hinter dem Spieler vor sich geht. Auch ein aufwendiger Kronleuchter - bestehend aus 1 Million Polygonen - mit komplexen Lichtbrechungen wird in Echtzeit berechnet.
Immer noch problematisch für die Engine scheinen bewegte Objekte zu sein, wenn man sich die ruckeligen Bewegungen der Soldaten ansieht, die offenbar nicht für jedes Frame neu berechnet werden oder vielleicht auch einfach schlecht animiert sind. Ein weiteres Manko sind "Partikelsysteme", die hier einfach über mehrere hintereinandergelegte Sprites verwirklicht und dementsprechend gegenüber modernen 3D-Rasterisierungs-Engines erbärmlich erscheinen. Ebenso wirkt die Beleuchtung immer noch sehr steril, was der vereinfachten Lichtberechnung geschuldet ist. So genanntes Raytracing sieht erst mit komplexen Sekundärstrahlen beziehungsweise mit (Bidirektonialen) Path-Tracing oder MLT-Algorithmen inklusive Global Illumination wirklich gut aus, fordert dann aber auch ein vielfaches der Rechenleistung dieses hier gezeigten einfachen Raytracings.

Es zeigt sich mit dieser Demo vor allem deutlich, wie wenig Chancen Larrabee als Grafikkarte gehabt hätte und warum Intel das Projekt klugerweise zugunsten einer Umwidmung in Rechenbeschleunigerkarten für Server eingestellt hat. Denn wenn man für derartige Grafik gleich vier Knights Ferry-Karten braucht, dürfte die Energiebilanz gegenüber modernen GPUs noch katastrophaler ausfallen, als schon allgemein angenommen. 2012 will Intel mit Knights Corner eine modernere Version seiner Many-Integrated-Core-Chips in 22 nm-Technik auf den Markt bringen, die dann mehr auf mehr als 50 x86-Kerne setzt. Bis dahin dürften allerdings auch die GPGPU-Fähigkeiten der GPUs weiter verbessert werden. Der größte Vorteil, den Intel für seine Knights-Karten hat, liegt in den hochwertigen Compilern, die sehr einfach Code für CPUs und MIC-Chips kompilieren sollen, wohingegen die Entwicklung von GPGPU-Programmen noch recht aufwendig ist.


Kommentar schreiben

  • Loggen Sie sich oben mit ihren Benutzerdaten ein, um Kommentare zu verfassen.
  • Falls Sie noch kein Mitglied sind, können Sie sich in unserem Forum registrieren.

5 Kommentare

5.) isigrim 14.09.2010 - 07:59 Uhr
Rechtsklick auf das Schachbrett (den Graph Editor) -> Add -> Objects -> mesh
4.) Luk Luk 14.09.2010 - 07:35 Uhr
Kurze Frage isigrim:

Wie zum Teufel importiere ich .obj Modelle in die DEMO des Octane-Renderers?
3.) isigrim 14.09.2010 - 07:01 Uhr
Ich hab mich in den letzten Monaten relativ intensiv mit GPU-Raytracing beschäftigt und daher kam meine Enttäuschung über die Demo. Eigentlich hatte ich mir recht viel von Larrabee gerade im Bezug auf Raytracing erwartet.
Die meisten GPU-Raytracer sind aber tatsächlich eher auf Standbilder ausgelegt, weil Echtzeitraytracing einfach noch zuviel Rechenleistung braucht, bei ordentlicher Qualität. Da geht es allerdings dann um mehrfache Strahlberechnungen inklusive Globalillumination, diffusen Refraktionen und Reflektionen und weichen Schatten etc.
Wer sich ein Bild davon machen möchte und eine CUDA-fähige Grafikkarte besitzt, dem sei Octane-Render empfohlen, das ich schon seit der Alpha-Phase vor knapp einem Jahr teste. Für diejenigen, die sich für OpenCL interessieren und eine ATI oder Nvidia im System haben, sei SmallLuxGPU - die OpenCL beschleunigte Version von Luxrender - empfohlen.

Betrachtet man die berechneten Szenen, dann sieht man sehr schnell, dass die gezeigten Szenen quasi die einfachste Form von Raytracing sind, und da sind GPUs eigentlich sehr effizient, erst bei deutlich komplexeren Szenarien z.B. bei MLT - Metropolis Light Transport - holen CPUs auf, weil dafür die Pipelines der GPUs großteils noch zu starr sind. Gerade deshalb hatte ich eigentlich erwartet, dass man mit Larrabee bzw. Knights verstärkt auf komplexere Szenarien abzielt und nicht immer wieder den gleichen Nonsens mit rekursivem Raytracing abliefert, denn das hilft weder den Spielern (die mit der Grafikqualität wenig anfangen können) noch den Profis (die sehen möchten, wie gut die MICs bei komplexeren Szenarien sind). Mir wäre es lieber, man würde einmal einen Vergleich zwischen einem Sechskern-Xeon und Knights Ferry bei Raytracing inlkusive MLT zeigen (da hätte man nämlich wohl ein solides Einsatzfeld für die MICs, bei Filmproduktionen). Vielleicht kommt das ja noch. Momentan darf man eher vermuten, dass in den hier verwendeten Servern Knights Ferry Karten gemeinsam mit den Xeons für das Rendern zuständig waren.

Aber zurück zu den GPUs:
Ich bin mir ziemlich sicher, dass man den Kronleuchter z.B. mit nur zwei Fermis ebenso flüssig darstellen könnte. (Was allerdings zu beweisen wäre.) Nvidias "Design Garage Demo" (auf Basis von Optix) nach zu urteilen, sollte da aber kein Problem bestehen, denn dort werden deutlich komplexere Verfahren (mehrfache Strahlberechnung inklusive GI) bei der Berechnung angewendet und eine GF100 schafft in 1920x1080 (doppelte Pixelzahl im Vergleich zu 1280x720) immernoch 4 Frames pro sekunde. Da bei Raytracing der Aufwand der Berechnungen auch linear mit der Auflösung steigt, kann man sich ausmalen, welche Leistung hier inlusive vereinfachten Licht-Berechnungen möglich wäre. Die Fermis skalieren bei Raytracing übrigens ziemlich linear, wenn man mehrere verwendet.

Aber du hast recht, ich hätte es etwas weniger polemisch formulieren können ;)
2.) elwood_b 14.09.2010 - 06:31 Uhr
... ausserdem ist das normale Berechnen von 3D-Bildern ausgereift. Das wird seit 20 Jahren ständig verbessert, ständig optimiert, ständig erweitert. Bis Raytracing mal an das normale Bildniveau herankommt muß erst mal passieren, daß:
1. die Hardware um einiges leistungsfähiger wird
2. die Software das auch effizient umsetzen kann
3. die Garfikqualität besser wird
All die Optimierungen, Shader, Tricks die jetzt bei aktuellen Spielen eingebunden werden, müssten quasi neu gemacht werden - und die laufen nun mal recht gut auf den derzeitigen Grafikkarten...
Bis dahin dürfte der normale 3D-Beschleuniger einfach noch besser dastehen. Ausserdem ist die Frage, ob die ganzen ATi und Nvidia-Produkte nicht auch Raytracing könnten wenn die den ensprechenden Treiber bzw. Code hätten?!?
Oder anders herum, warum können nicht "echte" Spiegelungen in einer "normalen" 3D-Engine eingebunden werden?
Meiner Meinung nach wird sich das alles vermischen - eher langsam als schnell. Ist ja auch schon ein paar Jahre her wo das ganze von Intel übernommen worden ist.

Seien wir gespannt, mir ist das egal, wie das Bild auf den Bildschirm kommt. Intel hat sich da auf jeden Fall verkalkuliert - aber die bleiben wenigstens dran und gut Ding will Weile haben, oder?

Mal ganz abgesehen davon, was bringt mir das, wenn sowas in einer "Cloud" erzeugt wird, und dann gestreamt wird?!? Für Spiele dürfte das wohl nix werden, oder? Was kommen denn dann für Reaktionszeiten dabei raus? Der Aufwand um die ganze NW-Struktur so umzubauen, daß ich in Hintertupfingen ein Spiel über die Cloud zocken kann, mit einem Lag < 5ms dürfte wohl jede Effizienzrechnung sprengen, oder?
1.) hmd 13.09.2010 - 23:23 Uhr
Das kann man ja auch nicht vergleichen, konventionelles Rendering ist einfach um Faktoren schneller als Raytracing. Und wenn man dann noch ne Szene mit in sich spiegelnden Kristallen eines Kronleuchters hat ... hallo, da würde auch jede GPU einknicken wenn nicht mehrere GPUs dran rendern würden.

Das kann man mit Physikberechnung vergleichen. Wenn man Wasser real simulieren würde, bräuchte man 100 parallel geschaltete Fermis. Macht aber halt keinen Sinn, weil die Simulation schon sehr nah an der Realität ist. Schwachsinnig viel höher ist der Rechenaufwand um nur ein wenig besseres Resultat zu erhalten ... an dem schweitert die ganze Sache. Für ein Standbild ist der Raytracer wichtig, für bewegte Bilder reicht es vollkommen aus, wenn man dem Gamer was vorgauckelt. Sei das bei der Physik als auch bei der Grafik (Spiegelungen).