Zum Hauptinhalt Zur Navigation Zur Suche

Die Spieleentwicklung hinkt der CPU-Entwicklung hinterher

Gamescom
Optimierung für verschiedene Architekturen wird immer wichtiger. Intel warnt PC-Spieleentwickler davor, die rasante Entwicklung der Prozessorarchitekturen zu unterschätzen. Wenn Spiele davon profitieren sollen, müssen sie die verschiedenen CPU-Topologien berücksichtigen – aktuelle und in naher Zukunft erscheinende.
/ Christian Klaß
45 Kommentare News folgen (öffnet im neuen Fenster)

Intels Softwareingenieur Leigh Davies hat anlässlich der GDC Europe 2009 in Köln einen Vortrag vor Spieleentwicklern gehalten. Er betonte, dass größere PC-Spiele teils über drei Jahren entwickelt werden, während Intel jedes Jahr neue CPUs vorstelle – in den geraden Jahren neue Architekturen, in den ungeraden Jahren die Die-Shrinks.

Schon seit 2005 wird Code nicht mehr einfach schneller, wenn eine neue Hardware kommt, so dass sich Designentscheidungen schnell negativ auswirken können. Deswegen sei es wichtig, bei der Entwicklung nicht nur die aktuelle Hardware zu berücksichtigen, sondern auch die der nahen Zukunft. Kommende Technik früh einbeziehen, das ist Davies Forderung.

Spiele sollten CPU-Aufbau berücksichtigen

Multicore-Optimierungen werden immer relevanter, erfordern es aber auch, den Aufbau der verschiedenen CPUs zu berücksichtigen und beispielsweise Cache-Größen im Auge zu behalten, insbesondere wenn sich mehrere Kerne einen Cache teilen. Davies hält es deshalb für wichtig, dass Anwendungen erkennen, auf was für einer CPU sie laufen und wie sie diese optimal ausnutzen können.

Wünschenswert seien verschiedene Code-Pfade, die dann optimal auf die Architekturen angepasst sind. Die Zeit der Optimierung nur auf Dual-Core-CPUs ist für Davies längst vorbei – mit dem Core i7 wurden vier Kerne (Quad Core) zum Standard, für die Zukunft sind Desktop-CPUs mit weiteren Kernen und ebenfalls zusätzlichem Hyperthreading zu erwarten. Damit spielt Davies auf den Gulftown an, der Mitte 2010 mit 6 Kernen kommt und 12 Threads zeitgleich verarbeiten kann.

Als Beispiel für eine fehlgeschlagene Optimierung nannte Davies ein Spiel, das auf Core 2 Duo optimiert war – wobei die Entwickler versucht haben vorherzusagen, in welchen der beiden Kerne die Threads laufen, eventuell Hintergrundtasks auf bestimmte Kerne zu schieben und damit etwas mehr Leistung herauszukitzeln.

Thread Assumptions können jedoch "grausam grausam schiefgehen", so Davies. Für den zeitweiligen Zugewinn an Leistung müsse mit jahrelangen Kopfschmerzen gerechnet werden. In diesem Fall wurde das Spiel auf späteren CPUs nahezu unspielbar – die Ladezeit wuchs von ein paar Sekunden auf über 40 Minuten. Es sei ein Fehler, eine bestimmte CPU vorauszusetzen und nur für diese zu optimieren. Ebenso sollte CPUID richtig genutzt werden, damit die Ermittlung der Kerne, Cachegröße und weiterer Angaben nicht schiefgeht.

Unterstützung für Entwickler

Die nötigen Compiler und Entwicklertools(öffnet im neuen Fenster) zur Optimierung für verschiedene Architekturen sowie die zu berücksichtigenden Prozessorspezifikationen(öffnet im neuen Fenster) und Infos zur korrekten Ermittlung von CPUs(öffnet im neuen Fenster) bietet Intel auf seiner Website an.

Um den eigenen Code ständig zu überprüfen, empfiehlt Davies reguläre, wiederhol- und damit vergleichbare Tests auf verschiedenen PCs, entweder mit eigenen Demonstrations- oder Benchmark-Modi.


Relevante Themen