PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Multiprozessor-Systeme nicht zum Spielen geeigenet?


goldman82110
2005-01-19, 15:22:53
Hallo Leute,

alle warten ja auf die neuen Multi-Core Systeme. Aber was ist denn eigentlich mit den heutigen Möglichkeiten ein Multi Prozessor-System zu bauen? Eignen sich die nicht zum Spielen?

Möglichkeiten würde es ja genug geben: AMD Opteron, AMD Athlon MP und Intel hat doch sicher auch was vergleichbares anzubieten.

Da ja anscheinend viele Spiele bei neuen Grafikkarten Prozessorlimitiert sind würde sich doch das vielleicht lohnen.

br
2005-01-19, 15:32:03
..

JFZ
2005-01-19, 15:47:51
Es gibt nur eine handvoll Spiele, die heute von dualprozessoren profitieren können. (Mir fällt jetzt nur quake 3 ein). Daher bringt dies in Spielen erstmal noch nichts.
Dagegen bringt es aber beim Arbeiten mit mehreren Tasks jede Menge. Als Faustregel: Dort wo HT was bringt, bringen Multiprozessoren auch was.

Aber man muß bedenken: Wenn jetzt Intel und AMD sich daranmachen, DualCore auf den Markt zu bringen, werden sich auch die meisten Spieleentwickler genötigt fühlen, mehr Unterstützung für mehrere Prozessoren zu bringen (AFAIK wird z.B. Unreal3 das auch können).

Momentan kämpfen wir mit dem Henne-Ei-Problem. Solange kaum jemand so ein System hat, gibt es keine optimierte Software, und ohne optimierte Software kauft sich keiner ein multi-prozessoren-system.

Vertex
2005-01-19, 15:55:12
nehme eure (etwas präziseren) Fragen gerne entgegen!

goldman82110
2005-01-19, 16:00:35
Da fällt mir doch gleich mal was ein Vertex:

Wie ist das wenn du am Zoggen bist. Wird bei dir ein Prozessor 100% ausgelastet und der andere langweilt sich?

Hast du schon mal ein Spiel ausprobiert das auf Multi-Prozzi optimiert ist? Wie verhält es sich da?


ciao

avalanche
2005-01-19, 16:04:00
Ein Multiprozessor-System bringt beim Spielen immer dann mehr, als ein Singleprozessor-System, wenn man beim Spielen noch was Anderes machen will. Besonders bei rechenintensiven Dingen ist das natürlich interessant.

goldman82110
2005-01-19, 16:10:05
Also kann man sagen, daß auch ein zukünfitger Mulit-Core CPU mit heutiger Spiele-Software keinerlei Performancevorteile bringen würde?

Vertex
2005-01-19, 16:23:48
Da fällt mir doch gleich mal was ein Vertex:

Wie ist das wenn du am Zoggen bist. Wird bei dir ein Prozessor 100% ausgelastet und der andere langweilt sich?

Hast du schon mal ein Spiel ausprobiert das auf Multi-Prozzi optimiert ist? Wie verhält es sich da?


ciao

normalerweise wird die Last aufgeteilt... meistens gleich auf alle 4 CPUs (--> 25% Auslastung im Taksmanager)... aber bringt mehr Nachteile als Vorteile... da der Transfer ziemlich viel Zeit kostet... und die HTT CPUs sowieso nicht so die Leistung bringen...

Hab sehr viele Games dahingehend getestet bis auf Quake3, hab kein Game gefunden, das es ausnutzen könnte... >25%

es stimmt was avalanche sagt... power hat man immer genügend...

Sonst sollte man vielleicht noch anmerken, dass man ab 2 CPUs ziemlich an Speicherbandbreite bei den Xeons verliert... und auch so ein wenig an single Performance drunter leiden muss... mal ganz abgesehen von der Übertaktbarkeit...

LordDeath
2005-01-19, 16:30:02
auf sauberen testumgebungen kann so ein echtes dual cpu system wohl etwas langsamer sein, als ein vergleichbares single cpu system, was aber einen für den home-user besser ausgestattetes mainboard hat.
aber auch normalen home pcs, wo auch im hintergrund mal auch anderes laufen kann wie z.B. bei mir trillian, emule, outlook usw. wäre ein dual cpu system auf jeden fall besser!

goldman82110
2005-01-19, 16:43:53
normalerweise wird die Last aufgeteilt... meistens gleich auf alle 4 CPUs (--> 25% Auslastung im Taksmanager)...

Wir haben hier in der Arbeit auch nen Server mit 2x2 HT Prozzis. Wenn nur ein Task läuft hab ich im Taskmanager mit der Anzeige '1 Graph for all CPUs' auch 25%. Wenn ich aber auf '1 Graph per CPU' umschalte seh ich daß ein Prozzi mit 100% ausgelastet ist und die anderen 3 nur minimal ausgelastet sind.

Bist du sicher daß die Last wirklich auf die Prozzis gleich verteilt wird und die 25% nicht nur einfach vom Taskmanager zusammenrerechnet werden? Also 1x100%+0%+0%+0% / 4 = 25%...

Weiss jetzt garnicht ob man bei Win XP die Anzeige im Taskmanager umschalten kann. In der Arbeit haben wir Win 2003 Server Version, da geht das.

Savay
2005-01-19, 17:51:14
aber auch normalen home pcs, wo auch im hintergrund mal auch anderes laufen kann wie z.B. bei mir trillian, emule, outlook usw. wäre ein dual cpu system auf jeden fall besser!

naja ich denke das ist nicht so einfach zu sagen

dualcores werden im, ich sag dazu mal salopp "parallelisierter niedriglast bereich" :biggrin: z.B. schon etwas günstiger sein weil einige probleme im ggs zu ner "standart SMT" config wegfallen!

im übrigen machen trillian, outlook und konsorte den bock auch nicht fett...so sehr brechen single prozessor systeme da wirklich nicht ein...das liegt eher innerhalb der meßungenauigkeit und lohnt den aufwand nicht.

echte dual CPU systeme haben bei so ner lastverteilung auch eher nachteile...nur HTT und dualcores (noch mehr als HTT) fühlen sich in dem bereich aber schon etwas wohler als singe CPU systeme

man muss schon wirklich was forderndes nebenher laufen lassen um per SMT große vorteile zu bekommen, nen WMV9 HD vid abspielen mal als extremes beispiel :smile:


multithreading gehört schon die zukunft aber es wird denke noch etwas dauern bis single CPU systeme echte nachteile haben! da wie schon gesagt auch erst die software entsprechend geschrieben werden muss

Vertex
2005-01-19, 18:31:41
auf sauberen testumgebungen kann so ein echtes dual cpu system wohl etwas langsamer sein, als ein vergleichbares single cpu system, was aber einen für den home-user besser ausgestattetes mainboard hat.
aber auch normalen home pcs, wo auch im hintergrund mal auch anderes laufen kann wie z.B. bei mir trillian, emule, outlook usw. wäre ein dual cpu system auf jeden fall besser!

damit meine ich (aus Erfahrung) den Unterschied zwischen einer CPU in meinem Mainboard und 2 CPUs... wobei es schon stimmt dass der Unterschied sehr gering ist...

Bokill
2005-01-19, 18:32:13
Nun eine Spiele(Grafik)schnittstelle ist zumindest schon traditionell lange auch auf Dual-Core eingerichtet.

Bei OpenGL dürfte da recht schnell eine Anpassung möglich sein.

MFG Bokill

patermatrix
2005-01-19, 21:06:48
normalerweise wird die Last aufgeteilt... meistens gleich auf alle 4 CPUs (--> 25% Auslastung im Taksmanager)
Das dürfte das bedeuten, was goldman82110 geschildert hat. Der Taskmanager zeigst halt nicht besser an.

Siehe dazu auch diesen Post (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=2664503&postcount=17) aus diesem Thread (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=199274).

avalanche
2005-01-19, 22:33:13
Das beim Zocken bzw. beim Ausführen einer rechenintensiven Applikation die Last "schlecht" verteilt sein mag, sollte daran liegen, dass ein Thread eben gerade maximal viel Saft will und die anderen weniger. Einen Thread können sich eben keine CPUs mehr teilen, einen Thread erledigt ein Prozessor alleine, egal wieviele andere CPUs noch im System vorhanden sind.

EDIT: Ich meine mich daran erinnern zu können, dass wir schon ein paar mehr Forenthreads zu diesem Thema hatten - da könnte man bei größerem Interesse auch mal die Suchfunktion bemühen

Vertex
2005-01-20, 06:36:20
Das dürfte das bedeuten, was goldman82110 geschildert hat. Der Taskmanager zeigst halt nicht besser an.

Siehe dazu auch diesen Post (http://www.forum-3dcenter.org/vbulletin/showpost.php?p=2664503&postcount=17) aus diesem Thread (http://www.forum-3dcenter.org/vbulletin/showthread.php?t=199274).

nur dass sich imho (dank Performance nachmessbar) etwas weniger Leistung ergibt, als wenn ich es auf eine fixe CPU festlege... also er switcht wirklich...

Cherubim
2005-01-20, 07:44:16
Moin

um meine erfahrung mit DP und spielen zu schildern:

es gibt keinen signifikanten unterschied zwischen singel und dual CPU systemen. Quake III spiele ich nicht (und auch nix auf der engine), daher kann ich dazu nix sagen.

sehr wohl aber einen unterschied macht es in der gesammtperformance...
es gibt keine probleme, wenn man ein aufwändiges 3D spiel spielt und gleichzeitig Seti@Home und BOINC (auch Seti) am start hat.
im allgemeinen laufen mehrere tasks nebeneinander wesentlich schneller ab und ich will es nicht mehr missen :redface:


was bring Dual -core/prozessor im allgemeinen?

-schnelleres, flüssigeres arbeiten mit vielen tasks
-wesentlich beschleunigtes arbeiten mit multi-task fähigen programmen (zb SolidWorks, Photoshop, Adobe Premiere, DVD umwandeln ect.)


wofür bringts nix?
für FPS freaks. die sind mit nem A64 FX oder P4EE besser bedient.
( es sei denn, sie wollen zocken und gleichzeitig ne DVD rendern :biggrin: )




@Vertex

was hast du für ein Board?
und wie hast du 2x 3.6 finanziert bekommen :| :biggrin:

Vertex
2005-01-20, 19:56:34
Moin

um meine erfahrung mit DP und spielen zu schildern:

es gibt keinen signifikanten unterschied zwischen singel und dual CPU systemen. Quake III spiele ich nicht (und auch nix auf der engine), daher kann ich dazu nix sagen.

sehr wohl aber einen unterschied macht es in der gesammtperformance...
es gibt keine probleme, wenn man ein aufwändiges 3D spiel spielt und gleichzeitig Seti@Home und BOINC (auch Seti) am start hat.
im allgemeinen laufen mehrere tasks nebeneinander wesentlich schneller ab und ich will es nicht mehr missen http://www.forum-3dcenter.net/vbulletin/images/smilies/redface.gif


was bring Dual -core/prozessor im allgemeinen?

-schnelleres, flüssigeres arbeiten mit vielen tasks
-wesentlich beschleunigtes arbeiten mit multi-task fähigen programmen (zb SolidWorks, Photoshop, Adobe Premiere, DVD umwandeln ect.)


wofür bringts nix?
für FPS freaks. die sind mit nem A64 FX oder P4EE besser bedient.
( es sei denn, sie wollen zocken und gleichzeitig ne DVD rendern http://www.forum-3dcenter.net/vbulletin/images/smilies/biggrin.gif )




@Vertex

was hast du für ein Board?
und wie hast du 2x 3.6 finanziert bekommen http://www.forum-3dcenter.net/vbulletin/images/3dc/smilies/common/cwm13.gif http://www.forum-3dcenter.net/vbulletin/images/smilies/biggrin.gif

http://www.forum-3dcenter.net/vbulletin/images/3dc/smilies/common/wink.gif das leben is ja sooo ungerecht nicht? http://www.forum-3dcenter.net/vbulletin/images/3dc/smilies/common/bluesmile.gif (Selbstfinanzierung... als Schüler... der in den Sommerferien arbeitet)

bitte keine "warum" Frage... thx

ach ja... DP möchte glaube ich niemand missen... http://www.forum-3dcenter.net/vbulletin/images/3dc/smilies/common/bluesmile.gif zumindest wenn ers hat

lol
2005-01-20, 21:02:50
Was hast du eig für eine Board für deine zwei 3,6Ghz Schlappen?? Weil bei Serverboards is ja nix mit takten, oder?

Wilhelm
2005-01-20, 22:30:42
@lol
Wieso wollt ihr alle alles immer sofort und hier und jetzt ohne Sinn und Verstand übertakten?

@Topic:
Das große Problem ist, das es im Augenblick kaum Software gibt (für einen Enduser) die von 2 Prozessoren profitieren. Aber das wird sich bald ändern, weil dieser Technik die Zukunft gehört. Ab Mitte 2005 wird Intel Dual CPUs für 300 $ anbieten.

lol
2005-01-20, 22:44:23
Hab ich gesagt das ich übertakten will? Ich hab nur nach seinen Board gefragt

PatkIllA
2005-01-20, 23:53:59
Das große Problem ist, das es im Augenblick kaum Software gibt (für einen Enduser) die von 2 Prozessoren profitieren.
Ich fand das damals mit meinem Dual P3 gar nicht so schlimm. Es ist beim arbeiten einfach genial (fast) immer Reserven zu haben. Deshalb warte ich auch schon sehnsüchtig auf die DualCoreprozzies

Cherubim
2005-01-21, 07:51:09
das leben is ja sooo ungerecht nicht? (Selbstfinanzierung... als Schüler... der in den Sommerferien arbeitet)

bitte keine "warum" Frage... thx

ach ja... DP möchte glaube ich niemand missen... zumindest wenn ers hat

nein, ich finde das leben nicht ungerecht...
und schüler bin ich auch nicht, sonder technischer zeichner, sonst würde sich das nicht wirklich lohnen :rolleyes:
aber knapp 800Euro pro CPU halte ich dann doch für etwas.....überdimensoniert...
das einzige was die teile unterscheidet ist ein anders eingestellter multi :|


und missen will ich es wirklich nicht mehr, wie auch PatkIllA schon sagte, ist es einfach nur genial quasi immer freie rechenpower zu haben.


Hab ich gesagt das ich übertakten will? Ich hab nur nach seinen Board gefragt

ich habe, falls es interessiert (und ich denke, Vertex hat auch sowas in der richtung) ein Asus NCCH-DL. Das hat einen Canterwood und somit AGP und dual-DDR-400 und eben 2x So604 200FSB
im bios lässt sich der FSB werksseitig bis 233MHz hochsetzen.
eine VCore erhöhung ist afaik nur mit einem verdrahtungstrick zu bewerkstelligen.

wer allerdings maximalen takt aus xeons rausholen will (die gehen in der regel alle sehr weit) kauft sich zb das Asus NCCH und 2x Xeons mit 166MHzFSB.
allerdings muss man dann auf NX-Bit und EM64 verzichten

weitere infos zu meinem sys:
http://www.nethands.de/pys/show.php4?id=28430

Vertex
2005-01-22, 13:26:17
naja... also so schlimm is es auf dem Softwaremarkt auch nicht... also man findet schon die richtige Software wenn man danach sucht ;) ... wenn auch nicht in allen Bereichen

jo hab ein NCCH-DL und hab vcore mod... aber auch nur um die normalen Spannungen zu erreichen... ich betreibe mein sys immer noch mit meinem alten Enermax 430W Netzteil (12V@33A) mittels eps adapter...

naja laufen tuts...

übertakten lässt es sich bis ca. 4,26GHz... dann machen mein NT scheinbar entgültig... naja... ;)

wer sich n bisserl mit dem board und mitn Übertakten von Xeons beschäftigt hat, weiß dass in letzter Zeit da Limitierungen durch Hersteller (Vermutung, deshalb keine Namen) eingebaut werden... zumindest ist es praktisch unmöglich über 233 zu kommen... (wäre ja dank clockgen möglich) ... bei mir endets mit 236... mit einer CPU sieht die Sache ganz anders aus...

trotz sofwaremäßigem Multiplikator heruntersetzen kommt man nicht höher...

@Wilhelm: weil man bei 2 Prozessoren gleich doppelt so viel an Performance dazubekommt im Vergleich zu nem Single... also da zahlt es sich erst richtig aus... ;) (sollte als Scherz gemeint sein...)

MadManniMan
2005-01-22, 17:56:33
Tja, wies dereinst bei Grafikchips mit mehreren Textureinheiten pro Pipeline nur Vorteile bei Multitexturing bzw. Trilinearem Filter gab, wirds für Spiele gewiß nicht so einfach sein, etwas dementsprechend äquivalent auslastendes für mehrere Prozessoren zu finden. Bei Multitexturing geht der Gewinn durch multiple TMUs ja wirklich in begrenzenden Situationen mit großem Schritte auf 100% Reingewinn zu - was könnte bei Spielen so aufgeteilt werden, daß DP etwas bringen?

Demirug
2005-01-22, 18:15:41
Tja, wies dereinst bei Grafikchips mit mehreren Textureinheiten pro Pipeline nur Vorteile bei Multitexturing bzw. Trilinearem Filter gab, wirds für Spiele gewiß nicht so einfach sein, etwas dementsprechend äquivalent auslastendes für mehrere Prozessoren zu finden. Bei Multitexturing geht der Gewinn durch multiple TMUs ja wirklich in begrenzenden Situationen mit großem Schritte auf 100% Reingewinn zu - was könnte bei Spielen so aufgeteilt werden, daß DP etwas bringen?

Man kann recht viel aufteilen aufgrund der geringen Verbreitung von entsprechenden Systemen hat sich aber bisher kaum jemand die Mühe gemacht darüber nachzudenken oder es gar zu implementieren.

*schleichwerbung*
Im Hinblick auf zukünftige CPUs haben wir unsere Engine grundsätzlich Multi-CPU/Multi-Core fähig gemacht. Die Basis dabei ist die zerlegung der Arbeit in Jobs welche dann auf einer CPU zur ausführung kommen. Soweit als möglich wird das System versuchen jeder verfügbaren CPU immer einen Job zuzuordnen. Als Job kommen zum Beispiel in Frage:

- die KI einer einzelnen computer gesteuerten Einheit.
- ein Partikelsystem
- ein Zustandskontrollnetzwerk (mit sowas steuern wir Türen usw; ist etwas ähnliches wie eine Statemaschine)
- Optimierung der Anweisungsfolge für die Grafikkarte.
- ein Script

Es gibt aber auch Dinge die man derzeit leider nur von einer CPU erledigen lassen kann. So zum Beispiel die Kommunikation von der CPU zur GPU. Damit die zweite CPU während dieser Zeit nicht ganz untätig bleiben muss versuchen wir da Aufgaben wie die Kommunikation mit dem Soundchip und anderen IO Geräten (Maus, Keyboard, Netwerkkarte bei LANspielen, ...) hinzuschieben was auch ganz brauchbar funktioniert.

patermatrix
2005-01-22, 19:25:31
unsere Engine
Sorry für OT: Ist die noch in der Entwicklung und geheim, oder gibts dazu schon genauere Informationen?

Demirug
2005-01-22, 19:43:17
Sorry für OT: Ist die noch in der Entwicklung und geheim, oder gibts dazu schon genauere Informationen?

Entwicklung: Ja
geheim: nicht wikrlich sonst würde die PCGH nicht seit zwei Moaten Details bringen. Im ersten teil ging es übrigens um die Dualcore Sache.

Wolfram
2005-01-22, 20:17:52
Nochmals zu bereits vorhandenen Spielen ;)...

In Quake3 war die SMP-Unterstützung nach irgendeinem Patch nicht mehr vorhanden. Bis dahin hing es aber auch immer von der Grafikkarte bzw. deren Treiber ab, ob SMP funktionierte und auch tatsächlich schneller war. Ein paar interessante Benchmarks (http://www.firingsquad.com/hardware/q3adrivers/page4.asp) dazu. Jedenfalls hat die zweite CPU offenbar die Szenerie mitberechnet, in welcher Form auch immer. Demirug, weißt Du mehr?

Bei UT2004 gibt es IIRC einen zweiten Thread für den Sound. Ansonsten haben meines Wissens nur ältere Spiele zwei CPUs unterstützt (Falcon4, Tribes).

Was andere Software angeht: Da gibt es einen Haufen Zeuch, das SMP-fähig ist: Cubase SX, Sonar, Sound Forge, Photoshop, SoftImage, 3d Studio Max, Maya. Aber da gibt es wohl auch weniger zu synchronisieren als bei Spielen oder es ist einfacher(?).

maximAL
2005-01-22, 20:21:13
wirds für Spiele gewiß nicht so einfach sein, etwas dementsprechend äquivalent auslastendes für mehrere Prozessoren zu finden.

warum nicht? bei vielen spielen dürften sich unterschiedliche teile doch recht gut auf mehrere threads verteilen lassen. KI, physik, spiellogik, und natürlich grafik, input etc...was mit einer festen aktualisierungs-rate läuft (afaik bei physik oder auch KI oft der fall) könnte seinen thread immer wieder schlafen legen, was imho auch programmiertechnisch etwas eleganter ist, als alles über timer etc. zu regeln.

Demirug
2005-01-22, 20:43:42
warum nicht? bei vielen spielen dürften sich unterschiedliche teile doch recht gut auf mehrere threads verteilen lassen. KI, physik, spiellogik, und natürlich grafik, input etc...was mit einer festen aktualisierungs-rate läuft (afaik bei physik oder auch KI oft der fall) könnte seinen thread immer wieder schlafen legen, was imho auch programmiertechnisch etwas eleganter ist, als alles über timer etc. zu regeln.

Das funktioniert so leider nicht. Das Problem ist das die einzelnen "großen" Teile eines Spiels (Physik, KI, ...) zu sehr aufeinader aufbauen. Man kann oft erst ein Teil berrechnen nachdem andere angeschlossen sind. Zudem sind zu viele Threads schlecht für die Gesamtperformance weil jeder Threadwechsel CPU Zeit kostet.

Daher sollte man pro CPU nur einen Thread haben und die Arbeitsteilung innerhalb des Module durchführen. Also zum Beispiel CPU1 rechnet Bot KI 1 und CPU 2 rechnet Bot KI 2 usw. Wenn man das nicht für jedes Modul einzeln programmieren will baut man sich einmalig einen Framework der das verteilen und syncronisieren von Jobs auf mehren CPUs übernimmt.

Benedikt
2005-01-22, 21:29:37
Entwicklung: Ja
geheim: nicht wikrlich sonst würde die PCGH nicht seit zwei Moaten Details bringen. Im ersten teil ging es übrigens um die Dualcore Sache.

Gibts da im Internet auch was zu lesen, über eure Engine?
Habt ihr schon konkrete Spiele-Projekte am laufen, wo eure Engine eingesetzt wird?

MFG,
B. W.

Demirug
2005-01-22, 22:01:12
Gibts da im Internet auch was zu lesen, über eure Engine?

Noch nicht.

Habt ihr schon konkrete Spiele-Projekte am laufen, wo eure Engine eingesetzt wird?

MFG,
B. W.

Ja, aber darüber herscht stillschweigen.

Ist aber genug OT sonst bekomme ich noch eine drauf.

StefanV
2005-01-22, 22:12:57
Aber da gibt es wohl auch weniger zu synchronisieren als bei Spielen oder es ist einfacher(?).
Nein, in dem Bereich sind MPS Systeme verbreiteter, so das es sinn macht die von vornherein entsprechend zu proggen.

Bei Games wirds bisher nicht gemacht, da nicht wirklich auf SMP Systemen gezockt wird und die Verbreitung recht gering bis nicht vorhanden ist.

Früher gabs noch den Mendochino der dual Fähig war, dazu ein Abit BP6...

Heute gibts nichts, was nur annähernd in dem Preisbereich ist (ok, ev. ein Dual Sempron System auf 'nem Tyan Tiger MP)...

deekey777
2005-01-22, 23:12:16
Soll Gothic 3 ua auch HTT unterstützen? :confused:

Plasmafusion
2005-01-22, 23:24:45
Als Dual Xeon 3.2Ghz Besizter bringt DualCPU immer etwas nä(h)mlich:

Das OS (z.B. Windows) läuft i.d.R. auf CPU1. Dein Spiel, Simulation oder wie man nennen mag kann speziell auf CPU2 zugewiesen werden.
Da die meisten Programme laufend irgendwelche Win32-API aufrufe machen, egel ob durch MFC, DirectX oder sonstwie kann dies von CPU1 gemacht werden. CPU2 schickt nur die Abfrage an die API und CPU1 gibt die Ergebnisse zurück.

Der Voteil liegt in der Entlastung von CPU2, welches mehr Power für das eigentliche Spiel hat.

Dinge wie Fraps und Add-on Tools können ebenfalls auf CPU1 ausgelagert werden. Je nach Anwendungsfall gibts nix oder ein paar Prozent mehr "Schub".

Reinrassige MultiThread-Programme ziehen natürlich voll durch, das wissen Xeon-User schon seit langem.

Vertex
2005-01-22, 23:43:12
Als Dual Xeon 3.2Ghz Besizter bringt DualCPU immer etwas nä(h)mlich:

Das OS (z.B. Windows) läuft i.d.R. auf CPU1. Dein Spiel, Simulation oder wie man nennen mag kann speziell auf CPU2 zugewiesen werden.
Da die meisten Programme laufend irgendwelche Win32-API aufrufe machen, egel ob durch MFC, DirectX oder sonstwie kann dies von CPU1 gemacht werden. CPU2 schickt nur die Abfrage an die API und CPU1 gibt die Ergebnisse zurück.

Der Voteil liegt in der Entlastung von CPU2, welches mehr Power für das eigentliche Spiel hat.

Dinge wie Fraps und Add-on Tools können ebenfalls auf CPU1 ausgelagert werden. Je nach Anwendungsfall gibts nix oder ein paar Prozent mehr "Schub".

Reinrassige MultiThread-Programme ziehen natürlich voll durch, das wissen Xeon-User schon seit langem.

sicher... dass fraps läuft merkt man gar nicht mehr... (wenns die Festplatte schafft ;))

aber die Entlastung... da denke ich is bei Spielen nicht so wirklich der Performancegewinn drinnen als dass es erwähnenswert wäre... zumindest bei deinen Beispielen...

S3NS3
2005-01-24, 06:14:15
Ich wollte eigentlich vor kurzem einen kleinen Artikel über SMP in Games und Anwendungen schreiben. Aber habe kaum ein Spiel dazu bekommen nur eine oder 2 CPU´s zu nutzen (Dual Xeon mit HT hat ja 4 logische CPU´s). Da hatte ich dann schlagartig keine lust mehr :)

Werde aber heute ein paar Benches und die dazugehörigen CPU-Last-Screens posten. So wars nicht ganz umsonst. Kann aber schonmal sagen das es in den 2-3 Games die ich getestet habe so in etwa GARNICHTS bringt...
Nicht direkt in FPS...

danko
2005-01-24, 07:30:08
SMP für Spiele ist IMO gar nicht so kompliziert umzusetzen.
Fast jedes Spiel hat ja verschiedene Funktionseinheiten welche mehr oder weniger unabhängig voneinander arbeiten. Als Beispiel möchte ich da mal die 3D-Engine und die KI aufführen. Es ist sicher keine große Arbeit die Spiele so zu programmieren das z.B. die KI als extra Thread auf einer eventuell vorhandenen zweiten CPU laufen kann.

CU Danko

S3NS3
2005-01-24, 09:02:28
Denke ich auch.

Aber z.B. nutzt HL2 alle Cpus Teilweise. Also irgendwas ist da schon getrennt. Aber FPS mäßig bringts nix. Vieleicht hat da jemand ne Theorie. Werde die klamotten ja heut abend posten.

Demirug
2005-01-24, 09:18:21
SMP für Spiele ist IMO gar nicht so kompliziert umzusetzen.
Fast jedes Spiel hat ja verschiedene Funktionseinheiten welche mehr oder weniger unabhängig voneinander arbeiten. Als Beispiel möchte ich da mal die 3D-Engine und die KI aufführen. Es ist sicher keine große Arbeit die Spiele so zu programmieren das z.B. die KI als extra Thread auf einer eventuell vorhandenen zweiten CPU laufen kann.

CU Danko

Das Problem ist der Gameloop der vorschreibt das die Module nacheinader durchlaufen müssen. Normalerweise muss ja die KI die Figuren erst mal bewegen bevor sie die 3D Engine rendern kann. Man könnte jetzt natürlich versuchen die KI schon für den nächsten Frame durchrechnen zu lassen wenn der aktuelle gerade zur Grafikkarte geschickt wird. Allerdings entsteht dann das Problem das die KI dabei unter umständen schon Daten aktulisiert welche noch gar nicht gerendert wurden. Die Syncronisiation wird bei sowas schnell zum Horror.

Demirug
2005-01-24, 09:23:01
Denke ich auch.

Aber z.B. nutzt HL2 alle Cpus Teilweise. Also irgendwas ist da schon getrennt. Aber FPS mäßig bringts nix. Vieleicht hat da jemand ne Theorie. Werde die klamotten ja heut abend posten.

Das liegt an dem Threaddispatching von Windows. Ein Thread der auf ausführung wartet (Im Falle von Spielen möchte ein Thread eigentlich immer ausgeführt werden) kann im Normalfall jeder CPU zugeordent werden. Allerdings wird er auch noch ablauf der Zeitscheibe von dieser CPU wieder weggenommen. Da er aber immer noch ausgeführt werden will wird er relativ schnell wieder einer CPU zugeordent. Das kann dann auch eine andere sein. Deswegen wandert ein Spiel das nur einen Thread hat in der Regel von CPU zu CPU. Man kann das verhindern indem man den Thread fest einer CPU zuordent. Ich habe allerdings nie ausprobiert ob das Performancemässig was bringt.

Coda
2005-01-24, 10:10:06
Wenn eine App beide CPUs zu 50% auslastet, wird kein SMP benützt.
Der Task Scheduler verteilt das nur gleichmäßig auf beide CPUs, das ist normal.

S3NS3
2005-01-24, 18:06:46
Das liegt an dem Threaddispatching von Windows. Ein Thread der auf ausführung wartet (Im Falle von Spielen möchte ein Thread eigentlich immer ausgeführt werden) kann im Normalfall jeder CPU zugeordent werden. Allerdings wird er auch noch ablauf der Zeitscheibe von dieser CPU wieder weggenommen. Da er aber immer noch ausgeführt werden will wird er relativ schnell wieder einer CPU zugeordent. Das kann dann auch eine andere sein. Deswegen wandert ein Spiel das nur einen Thread hat in der Regel von CPU zu CPU. Man kann das verhindern indem man den Thread fest einer CPU zuordent. Ich habe allerdings nie ausprobiert ob das Performancemässig was bringt.



Ahh ! Danke für die erklärung ! Erklärt so einiges!
Aber warum macht das HL2 und D3 nicht? Ist HL2 in mehrere Threads aufgeteilt und D3 halt in einem "grossen" ??




Auf jeden hier mal ein paar Testergebnisse mit CPU-Last Screens:


Doom3 - Timedemo1:

640 x 480:

1 CPU
http://deadlychris.bei.t-online.de/3dcenter/Doom3_640_1CPU.jpg
85,3 FPS

2 CPU´s
http://deadlychris.bei.t-online.de/3dcenter/Doom3_640_2CPU.jpg
85,6 FPS

4 CPU´s
http://deadlychris.bei.t-online.de/3dcenter/Doom3_640_4CPU.jpg
83,2 FPS

In 1024 und 1600 das selbe bild. 2 CPU´s ohne HT am schnellsten. MINIMAL!
Und wie man sieht interessiert den das nicht die Bohne das es mehrere CPU´s gibt. Bei 4 hatte sich nur die dritte ausgesucht...




HalfLife2:

Guru3d_Demo4

640 x 480:

1 CPU
http://deadlychris.bei.t-online.de/3dcenter/HL2_640_1CPU.jpg
124,1 FPS

2 CPU´s
http://deadlychris.bei.t-online.de/3dcenter/HL2_640_2CPU.jpg
124,1 FPS

4 CPU´s
http://deadlychris.bei.t-online.de/3dcenter/HL2_640_4CPU.jpg
125,1 FPS




1600 x 1200:

1 CPU
http://deadlychris.bei.t-online.de/3dcenter/HL2_1600_1CPU.jpg
122,1 FPS

2 CPU´s
http://deadlychris.bei.t-online.de/3dcenter/HL2_1600_2CPU.jpg
120,9 FPS

4 CPU´s
http://deadlychris.bei.t-online.de/3dcenter/HL2_1600_4CPU.jpg
121,4 FPS

S3NS3
2005-01-24, 18:08:27
Und noch ein paar Lastscreens von Farcry, hatte das nicht auf weniger CPU´s begrenzen können, also immer alle vier:

PCGames Demo:

640 x 480:
http://deadlychris.bei.t-online.de/3dcenter/fc_640_4cpu.jpg
63,79 FPS

1600 x 1200
http://deadlychris.bei.t-online.de/3dcenter/fc_1600_4cpu.jpg
63,79 FPS

1600 x 1200 8xAA / 16xAF
http://deadlychris.bei.t-online.de/3dcenter/fc_1600_816_4cpu.jpg
18,07 FPS

1600 x 1200 HDR
http://deadlychris.bei.t-online.de/3dcenter/fc_1600_hdr_4cpu.jpg
16,05 FPS

S3NS3
2005-01-24, 18:18:09
Aber wie wenig das auch NOCH in Games bringt... umso mehr bringt es was bei Grafik-Programmen !

Mein Sys ist effektiv drei mal so schnell im Rendern mit MentalRay wie mein alter P4 2,77Ghz.
Eine Szene da 30 minuten, jetzt 10. Und wie schon erwähnt lüppt das ganze System einfach runder ! Will es nicht mehr missen !
Dazu noch die gewissheit das wenn es mal Games nutzen werden es einen guten schub bringt. Wollte auch mindestens 2 Jahre kein neues Sys kaufen. Ausser Graka vieleicht.

Weil der Preis war HEISS..... insgesamt 3000€....

HellHorse
2005-01-25, 10:22:26
@S3NS3, könntest du, falls du zuviel Zeit hast, mal Q3A testen?
Aktuelle Q3A Versionen unterstützen unter Windooze kein SMP mehr.
Einfach die Linux Version nehmen, die ist sowieso schneller.
Und IIRC muss man SMP explizit aktivieren (r_smp 1 ?).

GloomY
2005-01-25, 22:18:41
Als Dual Xeon 3.2Ghz Besizter bringt DualCPU immer etwas nä(h)mlich:

Das OS (z.B. Windows) läuft i.d.R. auf CPU1. Dein Spiel, Simulation oder wie man nennen mag kann speziell auf CPU2 zugewiesen werden.
Da die meisten Programme laufend irgendwelche Win32-API aufrufe machen, egel ob durch MFC, DirectX oder sonstwie kann dies von CPU1 gemacht werden. CPU2 schickt nur die Abfrage an die API und CPU1 gibt die Ergebnisse zurück.

Der Voteil liegt in der Entlastung von CPU2, welches mehr Power für das eigentliche Spiel hat.Solange der Kernel den Syscall nicht bearbeitet hat, kann das Spiel auch nicht weiter laufen. Es hilft nichts, dass CPU2 dann frei ist, das Spiel muss eh warten.
Wenn man natürlich noch andere Prozesse am Laufen hat, welche Rechenzeit benötigen, dann können die während dessen ge-scheduled werden. Das beschleunigt die Ausführung des Spiels aber in keinster Weise.

maximAL
2005-01-25, 22:47:52
Das Problem ist der Gameloop der vorschreibt das die Module nacheinader durchlaufen müssen.

müssen? ich bin ja nur ein mieser hobby-frickler, aber bei vielen sachen könnte ich mir schon vorstellen, dass man sie sinnvoll auf verschiedene threads verteilen kann. aber das erfordert natürlich etwas umdenken...

Demirug
2005-01-25, 23:01:17
müssen? ich bin ja nur ein mieser hobby-frickler, aber bei vielen sachen könnte ich mir schon vorstellen, dass man sie sinnvoll auf verschiedene threads verteilen kann. aber das erfordert natürlich etwas umdenken...

Beim klasischen Gameloop ist "müssen" schon richtig.

Von einer sequenziellen Abarbeitung der grossen Module würde ich auch bei einem Multicore Gameloop nicht abweichen (Ich tuhe es entsprechend auch nicht). Ich kann jetzt natürlich nicht deine Erfahrungen im Bezug auf Multithreadentwicklung einschätzen. Ich musste allerdings ein paar Lektionen auf die harte Tour lernen. Ich will jetzt hier nicht zu sehr ins Detail gehen da es Offtopic wäre. Darum belasse ich es mal dabei das beim Multithreading der scheinbar offensichtliche Weg sich am Ende oft als sehr ineffektiv heraus stellt. Aus dem Grund musste ich eine Serversoftware mehrfach umschreiben um am Ende die Anforderung zu erreichen. Dabei habe ich allerdings wie gesagt viel lernen können.

Narf
2005-01-25, 23:47:50
Aktuelle Q3A Versionen unterstützen unter Windooze kein SMP mehr.
Einfach die Linux Version nehmen, die ist sowieso schneller.
Und IIRC muss man SMP explizit aktivieren (r_smp 1 ?), aber das hast du bestimmt gemacht.
Er hat aber DOOM getestet und NICHT Q3A.
Aber Q3A hat mulzi cpu unterstützung in einem pr läuft das sogar gabs feüher mal einen test in einer zeitschrift.

HellHorse
2005-01-26, 10:10:29
Er hat aber DOOM getestet und NICHT Q3A.
Und ich frage mich schon, warum die fps so tief sind. :rolleyes: Sorry blind :redface:

TruPlaya_UB
2005-01-26, 11:24:42
ich will den thread mal ein bissel aufwühlen und sagen warum es auch einen positiven grund für SMP bei Games gibt !!!

Bei Q3 war der Effekt gut zu sehen, man gewann nicht mehr FPS, aber dafür sackten diese auch nicht mehr so ein.
Jeder kennt das Doch, das er in nem raum ist und 200fps hat, und sobald er rausgeht aus dem raum, kann es bis aus 30fps zusammenbrechen, und wieder 1 sec später auf 150 fps anschwellen (extremfall)

Mit einem SMP lassen sich solche Dinger besser abfangen und somit läuft das game an sich flüssiger =)

S3NS3
2005-01-26, 17:12:30
@S3NS3, könntest du, falls du zuviel Zeit hast, mal Q3A testen?
Aktuelle Q3A Versionen unterstützen unter Windooze kein SMP mehr.
Einfach die Linux Version nehmen, die ist sowieso schneller.
Und IIRC muss man SMP explizit aktivieren (r_smp 1 ?).

Hab nur Windoof drauf. :)
Und genug Zeit und Linux zu Testen hab ich nicht ;)

goldman82110
2005-01-27, 11:13:43
Aber FPS mäßig bringts nix. Vieleicht hat da jemand ne Theorie. Werde die klamotten ja heut abend posten.

Kann es sein daß hier die Grafikkarte limitiert? Also daß die einfach nicht mehr FPS schafft?

Wolfram
2005-01-28, 11:31:36
Aus dem HL2-CPU-Scaling-Artikel bei Anandtech (http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=2330&p=8):

The impact of the CPU on gaming performance is in a transitional stage right now. As more games use Half Life 2 style physics we will see similar impacts with regards to CPU performance, but at this point there's a great deal of work being done on multithreading game engines for the next generation of games. So while the games coming in the immediate future may behave similarly to Doom 3 and Half Life 2, it's the games that follow that will truly be interesting.
Ist das nur bla bla oder gibt's da konkrete Informationen? Oder stimmt's eventuell gar nicht?:D

Wenn Spiele mit Blick auf Dual-Core-CPUs tatsächlich Multithreading benutzen würden, würden dann SMP-Rechner oder HT-CPUs automatisch mitprofitieren?

Demirug
2005-01-28, 11:35:36
Wenn Spiele mit Blick auf Dual-Core-CPUs tatsächlich Multithreading benutzen würden, würden dann SMP-Rechner oder HT-CPUs automatisch mitprofitieren?

Die Multi CPU Unterstützung kommt auf jeden Fall. Es gibt da (teilweise noch unter der Hand) schon mehrer Bestätigungen von unterschiedlichen Entwickler dazu.

Franky-Boy
2005-01-28, 13:52:50
Die Multi CPU Unterstützung kommt auf jeden Fall. Es gibt da (teilweise noch unter der Hand) schon mehrer Bestätigungen von unterschiedlichen Entwickler dazu.

Fragt sich nur: Wann? Ich schätze mal, dass frühestens in 2007 mit den ersten Spielen zu rechnen ist, welche von Dual Core CPU's richtig profitieren.

Intel führt Dual Core auf breiter Ebene im Herbst 2005 ein, AMD wird im ersten Halbjahr 2006 folgen. Bis Dual Core dann lohnende Marktanteile und entsprechend hohe Taktraten hat, wird das 1.Quartal 2007 ins Land ziehen.

Ciao Frank

HellHorse
2005-01-28, 15:46:58
Die Multi CPU Unterstützung kommt auf jeden Fall. Es gibt da (teilweise noch unter der Hand) schon mehrer Bestätigungen von unterschiedlichen Entwickler dazu.
Lasst ihr einen oder zwei Worker-Threads auf HTT-CPUs lauften? Falls zwei, wieviel bringt es?

Demirug
2005-01-28, 17:08:17
Lasst ihr einen oder zwei Worker-Threads auf HTT-CPUs lauften? Falls zwei, wieviel bringt es?

Derzeit 2 und das wird wohl auch so bleiben. Im Zweifelsfall kann man es sowieso konfigurieren wie viele Worker man haben möchte.

Performancemessungen habe ich bisher nur mit dem Athlon MP System gemacht.