leifman hat geschrieben:Locuza hat geschrieben:Cell ist eine ganz andere Mikroarchitektur und hat gezeigt was pain in the ass bei der Programmierung ist, die nichtwissenden Leute haben das natürlichen den Entwicklern in die Schuhe geschoben, dass sie unfähig sind "gescheit" zu programmieren, wissen tun aber die wenigstens was für ein Krampf so eine Programmierung auf dem Cell darstellt.
warum gelingt es einem entwickler aus dem cell das grafisch beste rauszuholen was in dieser generation konsolenübergreifend übern den bildschirm geflimmert ist?
gilt den nicht: einmal möglich = grundsätzlich möglich?
greetingz
Ein Beispiel: Wenn ein 1.90m Mann es schafft 1.90m zu springen, ist es dann nicht grundsätzlich möglich?
Für die 1.70m Männer wird das unmöglich sein.
Du hast es mal selber erwähnt, es kommt auf die Studiogröße drauf an, welches Budget man hat, wie viel Zeit zur Verfügung liegt usw.
Auf der PS3 ist es eine große Hürde den Peak zu erreichen, meistens schafft man nur mit großem Aufwand Xbox 360 Level und mit viel Kb-Zählerei auch das Level darüber, was eig. das gewünschte Ergebnis wäre.
Heutzutage ist die Situation nicht mehr zu heikel, da die APIs und Tools für die PS3 ausgereifter sind und Compiler und ähnliches besser funktionieren.
Zu Beginn war die PS3 Version eines Spiels oftmals schlechter an zu sehen, als die einer Xbox.
Heute passiert das weniger häufig, gibt immer noch Beispiele dafür und andere Spiele, gehen halt auch ein sichtbares Stück über Xbox-Level.
Grundsätzlich für alle möglich würde ich aber nicht behaupten.
JesusOfCool hat geschrieben:aus dem cell das grafisch beste
wtf? o.O
der cell ist ne cpu, keine gpu, aus dem holt man üblicherweise gar keine grafik raus.
Eine CPU kann alles berechnen, was auch eine GPU kann und noch mehr.
Damals hat die CPU den Job erledigt, bis speziell angepasste Prozessoren (GPUs) entwickelt wurden, die eben spezialisierte Hardware boten.
Der Cell hilft dem RSX bei manchen Spielen bei der Lichtberechnung und anderen Effekten.
Sir Richfield hat geschrieben:
Eine GPU ist eine CPU, nur mit optimierten Befehlssätzen.
Nein, dass ist eine falsche Sichtweise, ansonsten ist jeder Chip auf der Welt eine CPU mit "optimierten Befehlssätzen".
Eine CPU und eine GPU sind Prozessoren, haben zum Teil ähnliche Recheneinheiten und Schematas, aber da endet auch oft die Gemeinsamkeit.
JesusOfCool hat geschrieben:
jo, genau, deshalb ja auch üblicherweise. und genau deshalb wirds auch kaum jemand tun. wozu auch? multiplat spiele sehen ähnlich genug aus, da braucht man das nicht, die GPU der PS3 ist ja nicht so schlecht im vergleich zu der der 360. so richtig damit umzugehen ist dann wohl selbst für die exklusiv-entwickler nicht so einfach. was übrig bleibt sind die spiele von naughty dog.
die WiiU geht dann wieder den anderen weg, indem man dinge, die früher auf der CPU berechnet wurden, auf der GPU machen lässt, wie KI und physik sachen.
wobei es mich ehrlich gesagt im detail interessieren würde was das für grafikberechnungen sein sollen. videodekodierung zählt ja nicht wirklich, gehört ja nicht zur ingame grafik.
Man kann nicht alles auf die GPU verlagern.
Viele Sachen sind suboptimal, mal unmöglich und anders müssen abstrakt ganz anders formuliert werden, damit sie eine GPU überhaupt erst einmal berechnen kann.
In den letzten Jahren wurden die GPUs immer Compute freundlicher, da die Programmiersprachen sich weiterentwickelt haben z.B. OpenCl, auch OpenGL hat Teile für "allgemeine Berechnungen" und ebenso DX.
Die GPUs können auch immer mehr und haben immer mehr Caches bekommen und auch welche wo man auslesen und hineinschreiben kann, dass gab es alles damals nicht und deswegen sind auch sicherlich viele Dinge nicht möglich, die heute möglich sind. Allerdings ist ein RV7xx auch nicht eine Compute State-of-the-Art GPU-Architektur, wobei sie hier schon auch viele erste Ansätze hat was K.I-Routinen angeht und ähnliches.
GCN und Fermi sind z.B. jetzt für Compute sehr geeignete GPUs, in Grenzen der Möglichkeiten eben, weil da einfach weiterhin Befehlssätze und Möglichkeiten fehlen, um alles so berechnen zu können wie bei einer CPU.
greenelve hat geschrieben:Ich frage mich wie Far Cry 3 funktioniert. Auf PC werden mindestens 4GB RAM benötigt, laut Hersteller, und Konsolen haben nur 512MB zur Verfügung. oO
4Gb ist auf dem PC nur eine Empfehlung.
Auf dem PC belegt das OS schon 0,5-1Gb, dann reserviert es sich noch extra was und schon ist ein guter Teil weg. Far Cry 3 sieht auf dem PC auch am besten aus, die Auflösung ist die höchste, die Texturen am besten, die Sichtweite auch viel höher, das erhöht natürlich alles den Speicherbedarf.
Auf einer Konsole ist das alles runterskaliert damit das noch alles in den Speicher passt.
AtzenMiro hat geschrieben:Ich würde die Kombination bei der PS3 als besser einschätzen. Grafikkarten brauchen ihre Ressourcen um aufwändige Grafiken zu berechnen. Wozu brauch ich aber eine merkernige CPU mit mehreren Threads pro Kern, wenn die ganze Arbeit letzen Endes eh auf die GPU ausgelagert wird, oder halt werden muss, wenn die CPU nicht leistungstark genug ist?
Nur um mal fest zu halten: ich spreche hier von einem allgemeinen Fall. Ich weiß nicht, ob die CPU der WiiU wirklich so lahm ist, ich kann es mir nur schwer vorstellen, dass sie langsamer sein soll als eine soviel ältere CPU wie die der Xbox 360.
Sony's Strategie war also logisch. Das Problem war, dass Sony den aktuellen Trend der Multiplattform-Programmierung einfach verpennt haben und/oder zu arrogant waren und dachten, ihre neue Konsole wäre wieder das Maß aller Dinge und die ganzen Spieleentwickler würden sich in erster Linie auf die Playstation 3 konzentrieren. Und genau das ging nach hinten los, gepaart mit dem Umstand zu spät auf dem Markt gekommen zu sein.
Von der Architektur war die PS3 brilliant, bringt nur nichts, wenn sie komplett am Markt vorbei designt ist.
Du brauchst sie damit du weiterhin andere Dinge mit der CPU berechnen kannst und nicht unbedingt sub-optimale Routinen umschreiben musst auf die GPU, nur weil die CPU zu schwach ist.
Die CPU bei der Wiiu ist wohl wirklich sehr lahm und kommt wohl nur etwas über Xenon-Level hinweg.
Leider kann man darüber keine genauen Angaben machen, da die einzige gesicherte Sache, eben die 33mm² in 45nm sind und das ist halt sehr wenig, da kann auch nicht viel Power dahinter stecken.
Sony hat sich bei der PS3 wohl anfangs andere Sachen gedacht. Anfangs sollten wohl 2 Cells da reinwandern und auch mit TMUs vielleicht versehen werden, bis man gemerkt hat, dass es wohl eine scheiß Idee ist, weswegen man einen G70 eingebaut hat, der übrigens auch scheiße ist, weil der bei Textur-Zugriffen wohl sehr Stall anfällig ist.
Von der Architektur her, war die PS3 als System scheiße und wird es immer bleiben.
Pickt man sich auch nur einzelne Sachen heraus, wie z.B. den Cell dann hat er auch nicht so brillieren können da IBM ihn auch eingestellt hat und keine weiteren Entwicklungen angestrebt.
JesusOfCool hat geschrieben:@leifman: da hast du nicht so unrecht, aber das ist eben genau das problem. leistung alleine bringts eben nicht und die ressourcen fürs richtig gut machen will keiner hergeben weils geld kostet das man nicht hat. genau das ist ja der vorteil der 360 gegenüber der PS3. mit leistung alleine fängt man eben nichts an.
was cpu und gpu angeht ists andersrum aber genauso. der cell prozessor mag mit der idee, auch etwas an grafikberechnung zu übernehmen, designed worden sein, aber trend geht eigentlich in eine klar andere richtung. wenn also die CPU weniger arbeit hat, weil sie ihr von der GPU abgenommen wird, was ist dann wohl besser? so eine kombination wie sie die PS3 hat oder so eine wie sie die WiiU hat?
Das Stimmt total, enorme Leistung bringt kaum etwas, wenn der Zugang zu dieser ebenso enorm ist.
Die Kombination von der WiiU sollte deutlich besser sein, wie fast jedes System was man bauen könnte.
leifman hat geschrieben:@JesusOfCool
selbst wenn du unbedingt gpu und cpu so strikt trennen willst, was denkst du wie gut die beste gpu der welt mit einer schwachen cpu im schlepptau ist?
aber das is nebensache, mir ging es um Locuza's aussage, laut ihm liegen schwache ps3 ergebnisse nicht an den entwicklern sondern an der hardware, daraufhin stellte ich die frage auf, wenn es doch einmal möglich ist, das visuell beeindruckendste spiel der gen zu prorgrammieren, dann muss es doch generell möglich sein, also kann es doch fast nicht an der hardware liegen sondern an den fähigkeiten der entwickler!
klar, komplizierter ist es so einen cell zu programmieren, ressourcen aufwendiger und somit kostet es auch mehr geld, aber, schwächere multiplatts kann man nicht der hardware zuschreiben, sondern dem budget und den fähigkeiten der entwickler!
greetingz
Das stimmt eben nicht. Du hast ein ganz anderes System und musst ganze Berechnungsroutinen anders umschreiben, damit sie auf der PS3 laufen. Einige Sachen laufen extrem viel schneller, weil die SPUs da mega Power haben, im Vergleich zu 3 AltiVec Units beim Xenon, aber andersherum hast du für General Purpose nur eine PPE und auch die GPU ist scheiße.
Du hast auch keinen gemeinsamen Memory-Pool und somit kannst du ein gewisses Design nicht übernehmen oder hast mega krampfadern.
Was tust du, wenn ein Spiel auf der Xbox360 für die GPU-Dateien 300 Mb reserviert und für die CPU 200mb? Wie überträgst du dieses Modell auf eine PS3, die jeweils maximal 256mb hat?
Diese suboptimalen Übertragungen führen eben dazu, dass ein Spiel auf einer anderen Konsole herunterskaliert werden muss, was z.B. Texturen betrifft oder die Auflösung oder sonstiges.
Das kann natürlich auch die Xbox360 genau so treffen, wenn ein Spiel viele FP-Berechnungen hat, die man auf der Box nicht so realisieren kann, wie auf der PS3.
Wie immer, es gibt viele Sachen die limitieren können. Sei es der Entwickler, die Hardware, die Zeit, das Geld, der Aufwand etc.
leifman hat geschrieben:
klar, je besser ausgewogen das system, desto besser!
ich halte auch z.b. nix von shared memory, jedes bauteil sollte klar für die anfallenden aufgaben konzipiert sein und nix da mit aufgabe übernhemen, aufgaben teilen, einspringen etc.
kostet nur des entwicklers nerven und des geldgebers geld!
nur, ich muss sagen, ich fand sony's cell experimente durchaus spannend, bezogen auf die physik in killzone zb.
greetingz
Shared Memory ist ein Segen. Du musst nicht ständig Dateien hin und her verschieben, sondern hast sie lokal auf einer Stelle was Latenzen spart und kannst für jedes Bauteil soviel MB reservieren wie gebraucht wird. Hättest du noch einen kohärenten Speicher, dann bräuchtest du nicht einmal die Datensätze bei der GPU und der CPU immer spiegeln müssen, was viel Performance spart, Strom, und Platz.
Das spart Geld und Nerven jedes Entwicklers.