Die Spieleentwicklung hinkt der CPU-Entwicklung hinterher
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.
- Anzeige Hier geht es zu Intel-Prozessoren bei Alternate Wenn Sie auf diesen Link klicken und darüber einkaufen, erhält Golem eine kleine Provision. Dies ändert nichts am Preis der Artikel.