AMD Ryzen 3000: Zen 2 braucht keine neuen Software-Optimierungen

Für die Produktionskosten sicherlich. Selbst bei Ryzen ist der I/O-Die circa 50 Prozent größer als das CPU-Chiplet. Bei halber Transistordichte entspricht dies immer noch einem Drittel der gesamten Schaltkreise und I/O-Funktionen skalieren meist schlecht mit feinerer Fertigung. Nimmt man noch die sinkende Yield-Rate mit steigender Chip-Größe; die hohen Fehlerquoten neuer Prozesse und die schlechteren Salvage-Möglichkeiten hinzu, würde eine Produktion von Ryzen 3000 als homogenes Design nach 1000-/2000-Vorbild vermutlich doppelt so viel teure 7-nm-Wafer-Fläche erfordern wie die jetzt gewählte Hybrid-Lösung.
Ich meinte eher ob das positive Auswirkungen auf die Kommunikation und den Latenzen haben würde.;)

Vielleicht "weil Wege kürzer sind" oder so.
 
Spiele wie GhostReconWildlands profitieren doch schon deutlich von mehr als 4 Kernen. Also sieht man dort schon eine Optimierung.
Nur wird halt nur dann optimiert, wenn im Mainstream CPUs mit vielen Kernen angekommen sind, was erst mit Ryzen der Fall war.

Ich bin mal gespannt, wie das bei Anno 1800 aussieht. Solche Strategiespiele sind dafür bekannt bei großen Städten in ein starkes CPU-Limit zu kommen.

Leider ist es so das viele die Problematik hinter der Parallelisierung in Spielen nicht kennen oder nicht verstehen.
Spiele sind immer eine eigene Form der virtuellen Umsetzung aus unserer Realität. Egal welches Spiel wir hernehmen, in jedem ist das primäre Geschehen abhängig vom Verhalten des Spielers. Rein auf das Gameplay bezogen hat man immer eine sequentielle Abfolge von Eingaben, Umsetzung, Aktualisierung für Spieler, Umgebung, usw. für jeden Game Loop Durchgang inkl. Rendering.
Parallelisieren lassen sich die Dinge welche unabhängig funktionieren können, z.B. kann das Wettersystem auf einem eigenen Thread permanent berechnet werden und eben viele andere Nebensächlichkeiten.
In Spielen wie Anno kann wesentlich mehr auf Threads ausgelagert werden, da Wirtschaft, Diplomatie, dies und jenes zwar global miteinander verzahnt sind, aber dennoch eigenständig für sich berechnet werden.
In einem Shooter bewegst du dich und folgst dem Prinzip von zielen > schießen > Trefferzone berechnen usw.
Es ist einfacher zu verstehen wenn man überlegt was in der Realität parallel abläuft (Umwelt, Umgebung, Verkehr) während man hier im Forum liest oder schreibt und weiß welche Dinge man in diesem Moment nicht zeitgleich machen kann (Einkaufen, Sport...).

Entwickler haben es mit vielen Tasks zu tun die sie nicht auslagern können bzw. könnte man schon sequentielle Teile auf einen anderen Thread schieben, allerdings würde der ursprüngliche Thread dann warten müssen, was es unnötig macht, zumal Threading auch nicht ganz ohne ist und deshalb sinnbehaftet eingesetzt wird.
Spiele nutzen auch heute schon 40 - 60 Threads in Summe zur Laufzeit, aber es hängt auch vieles vom Windows Scheduler ab wie er die Threads nach Lasten auf die CPU Threads verteilt.

Bei Anwendung wie Cinebench und Rendering generell ist es viel einfacher, dort wird das zu rendernde Frame in fixe Segmente vorab unterteilt und wenn man startet bekommen alle CPU Threads Segmente zugeordnet, die dann unabhängig gerendert werden. Jeder fertige Thread bekommt einen neuen Bereich zum abarbeiten bis das Frame am Ende komplett ist. Das ist was Cinebench letztendlich auch visuell gut veranschaulicht.

Für Spiele ist sozusagen die Kernanzahl relativ egal, jedenfalls ab 6-8 Kernen mit HT/SMT. Das Problem wird immer genau ein Thread sein (meistens Main Thread), der eine im Verhältnis höhere Auslastung erzeugt als die anderen Threads. Mit diesem und der pro Single Thread Performance steigen und fallen die FPS.
Deshalb ist die einzelne Kernleistung für sich betrachtet in Spielen elementar.
Optimierung hilft zwar es besser zu verteilen, aber die Realität erlaubt es uns auch nicht physisch zeitgleich an verschiedenen Orten zu sein. :)
 
@Buggi85

Ich verstehe was du meinst.Das heißt bei folgenden Genres wie folgt:

Strategie: Ist wohl das paradebeispiel wo man es gut paralellisieren kann.Dieses Genre ist also gut dafür.Allerdings ist die nachfrage nach solchen spielen nicht mehr so hoch und gute Strategiespiele sind mangelware.Was halt schade ist weil ab und zu mal doch mal lust haben zusammen strategie spiele zu nutzen.Aber zum glück habe ich da ja noch welche alten.

Egoshooter: Eines der größten Genres.Weil es von dem ganz viel davon gibt.Aber es lässt sich halt eher schlecht paralellisieren.Weil nicht so viele aufsplittungen möglich sind.Und es linear ist.

Rennspiel: Ist nicht so leicht aufzusplitten.Der Grund ist einfach.Das ganze läuft fest ab.Man hat eine gewisse gleichbleibende bewegung.Gewisse Grenzen bei der Geschwindigkeit.Es muss nicht so viel berechnet werden.Sodass es sich nicht so leicht splittern lassen.Wetter und so ist nicht so schwer zu berechnen.VIelleicht noch spyschikalische abläufe.Sich verformende umgebung.Ist alles aber nicht so fordernd.Sodass sich das eher schwer aufzusplittern lässt.Was also hier eher schwer ist immer noch mehr Kerne zu Unterstüzen.Und das Genre ist eher klein im vergleich zu strategie und Egoshooter.

Rollenspiele: Ein eher aussterbendes Genre.Im Gesammtvergleich zu den anderen noch weniger.Das SPiel läuft eher gemächig ab.Man kann hier noch so viel aufsplittern,weil hier nicht so viel zum splittern gibt.DIe meisten Rollenspiele sind nicht so aufwändig gestaltet.Auch das die meisten auf Fantasie abenteuer abzielen.AUch wäre hier vielleicht ein realischtisches Wettersystem möglich.DIe Ki der ganzen Gegener und bost vom Begleiter könnte hier gut aufgesplittert werden.Aber das sind nicht so viel um hier Monster CPUs so richtig zu fordern.Also eher wohl weniger für noch mehr Kerne geeignet.

Sportspiele: Ein genre das sehr klein ist.Und kaum von bedeutung ist.Optimerungen sind hier kaum rentabel.Kleine verkauszahlen machen es schwer.Zudem was will man hier großartig Optimieren.Das so dermaßen viele Kerne jemals benötigen würde.

Advance spiele: Ein fast ausgesorbenes Genre.Das spiel läuft so gemächlich ab,das man hier kaum aufsplittern könnte.Also ungeeignet für noch mehr Kerne.

Jump n Run: Ein Genre das wohl wenn es paralieisiert werden könnte ,wohl eher die Psyichkale bewegungen und die ki sich gut zum ausplittern Paralellisieren lassen kann.Der Rest ist kaum für den Prozessor für belang.Also kann man sagen eher sehr schlecht parallisierbar.Zudem ist das Genre kaum von bedeutung.Weil es im Markt so gut wie nie vertreten wird.Und wenn dann nur für kleine spiele.
Geschicklichkeitsspiele: Ein Genre da wo man so gut wie garnicht Parallisieren kann.Ich wüsste nicht was da großartige machbar wäre.Ein Genre für kleine Pcs ohne große Leistung.Zudem auch für den aktuellen Markt eher ne untergeodnete rolle.

Glücksspiele:EIn Genre wo auch so gut wie nix mehr weiter parallisiert werden kann.Zudem ist das genre auch von keiner Bedeutung mehr.

Erogames: Ein Genre für die Schublade.Auch für null optimierungsmöglichkeiten mehr.Was man da wohl noch optmieren kann.Ich sehe da nix mehr machbar.

2d spiele:Geht auch nix weiter mehr.

Indiespiele:Da es so klein ist,wird es da wohl auch nix grßartig mehr optimiert werden.Ob da großartig was gemacht werden kann,denke mal garnix mehr.


Ich hoffe ich habe keine Genres ausgelassen.
 
@DBGTKING

Ich hab mir bisher nie über alle Genres hinweg Gedanken gemacht, aber klingt ziemlich passend. :D

Strategiespiele profitieren am meisten von Multithreading, ja. Wobei aber mittlerweile auch die Open World Spiele.
Leider füllen die großen Studios ihre Spiele mit immer mehr Ballast, da geht dann noch die Netzwerkanbindung, Social Media, Kopierschutz, Plattform (Origin, Steam, Uplay) mit einher. Landet auch alles in eigenen Threads.
Der Renderpfad nutzt ab DX12 auch verstärkt Multithreading.
Also da tut sich schon einiges bevor man überhaupt die Spielelogik implementiert hat.

Ganz so pauschal lässt sich das aber auch nicht fest machen, hängt halt immer davon ab was für ein Spiel es werden soll und mit welchem Umfang.
Ich weiß halt nicht wie tief die ganzen Engines gehen und die Hardware direkt ansprechen. Über Low Level API für Direct3D ist klar, allerdings bei CPUs, ich weiß es nicht.
Multithreading ist nicht schwierig zu realisieren, nur kann es auch richtig Probleme machen. Da geht es dann um Thread Sicherheit und sonstiges. Ist nicht unbedingt beliebt bei Entwicklern und man muss schon ziemlich aufpassen.
Gerade bei Spielen hast du halt den Game Loop und wenn dort Threads nebenher laufen kotzen auch gerne mal die Entwickler. :D
 
Ich meinte eher ob das positive Auswirkungen auf die Kommunikation und den Latenzen haben würde.;)

Vielleicht "weil Wege kürzer sind" oder so.

Das habe ich wohl missverstanden.
Eine reiner Wechsel auf 7 nm beim I/O-Die würde vermutlich kaum Verbesserungen bringen. Aber im Sockel AM4 würde bei reiner 7-nm-Produktion kaum noch finanzielle Nachteile für ein monolithisches Design erwarten, welches alle Kommunikationsprobleme lösen würde.
 
Das habe ich wohl missverstanden.
Eine reiner Wechsel auf 7 nm beim I/O-Die würde vermutlich kaum Verbesserungen bringen. Aber im Sockel AM4 würde bei reiner 7-nm-Produktion kaum noch finanzielle Nachteile für ein monolithisches Design erwarten, welches alle Kommunikationsprobleme lösen würde.

Da würde ich wider sprechen. Der I/Die hat den Speichercontroller, die I/O Teile und so wie ich die AMD Cacheinfos lese wahrscheinlich auf den L3. Cache frisst relativ viel Die-fläche. Für den 8 Kerner könnte ein monolitischer Chip sich ausgehen, für alles darüber imho nicht, auch weil man dann unterschiedliche Masken laufen lassen müsste. So kann AMD nur die schlanken Chiplets in 7nm produzieren (und wahrscheinlich sogar 50% defekte nutzen) und dann den IO Chip passend zu der Anzahl der Chiplets in 14nm.
 
Zurück