FORUM Tom's Hardware »
Off Topic
»
Smalltalk-Sofa (von ernst bis witzig) »
Moderne Hardware Gerüchte
| Seitenende | |
|---|---|
| Autor |
Thread : Moderne Hardware Gerüchte
|
|
Profil: Honorary Poster
Mehr Informationen
|
Hallo,
Nachricht zitiert 2 mal
Nachricht bearbeitet von 3D Mann am 05.09.2008 um 23:30:56 |
|
Anzeigen
|
|
|
Profil: Old Hand
Mehr Informationen
|
Amen! Danke! |
|
Profil: Veteran
Mehr Informationen
|
|
|
Mein Name ist Programm...
Profil: Eternal Poster
Mehr Informationen
|
Meine Rede |
|
Profil: Honorary Poster
Mehr Informationen
|
@procarion
Nachricht zitiert 1 mal
Nachricht bearbeitet von 3D Mann am 06.07.2008 um 04:59:10 |
|
Profil: Veteran
Mehr Informationen
|
|
|
Profil: Honorary Poster
Mehr Informationen
|
CB erreicht ähnlich hohe Werte, allerdings mit 4 GHz OC, was ich nachvollziehbarer finde, als die 3GHz-Werte mit QX6850.
Nachricht bearbeitet von 3D Mann am 06.07.2008 um 05:04:14 |
|
Am Anfang war das Bit ... Prost!
Profil: Old Hand
Mehr Informationen
|
Moin @7obi
Nachricht zitiert 1 mal
Nachricht bearbeitet von DHAmoKK am 05.07.2008 um 13:36:14 |
|
Mein Name ist Programm...
Profil: Eternal Poster
Mehr Informationen
|
Nachricht bearbeitet von FormatC am 05.07.2008 um 14:48:18 --------------- Das Leben ist nicht immer toll. ...aber die Grafik ist spitze!. |
|
Profil: Veteran
Mehr Informationen
|
Hab's nicht gut erklärt, wollte nicht zuviel offtopic schreiben. Gemeint war etwas anderes: Eine Anwendung/Spiel kann Arbeit von mehreren Cores erledigen lassen, indem es diese Arbeit in Prozesse oder Threads aufteilt. Das Betriebssystem verteilt diese auf die zur Verfügung stehenden Cores. Die Arbeit, die zu verrichten ist, entspricht 100%. Diese habe ich in exemplarische vier Teile zerlegt. Den Teilen geben wir noch Namen: T1 ist 75% der Gesamtarbeit Zusammen ergibt diese Arbeit 100%. T entspricht dabei zufällig der Assoziation Thread. Das Betriebssystem verteilt nun diese Threads auf verschiedene Cores. Eine exemplarische Verteilung könnte wie folgt aussehen: DualCore: QuadCore: Im Fall des DualCores entspricht T2 + T3 + T4 = 25% < 75%. Obwohl sich T2, T3, T4 alle einen Core teilen müssen, muss T1 praktisch nie auf die anderen warten oder hat keinen freien Timeslot zum Rechnen auf einem Core. Der Gesamtperformancegewinn gegenüber SingleCore ist in diesem Beispiel: 33% (= 100%:75% - 1) Völlig egal ob das Ding auf einem DualCore oder QuadCore läuft. Ca. 33% Performancegewinn. Diese Modellrechnung beachtet weder die Betriebssystem-Grundlast, noch Reibungsverluste durch Synchronisieren noch die Tatsache, dass jeweils zwei Cores einen 2nd Level Cache teilen.
Kernproblem beim Multithreaden ist: Die Arbeitsaufteilungen, die ich wähle, werden die Last im allgemeinen nicht gleichmäßig aufteilen. Manche Vorgänge lassen sich praktisch gar nicht aufteilen (z.B. Syntax-Parsen oder bestimmte verlustlose Kompressionen). Andere Vorgänge lassen sich besser aufteilen, sind aber aus Synchronisationsicht schlecht oder skalieren nicht (Beispiel: Du stehst an einer Kasse mit einem riesen Wocheneinkauf. Drei offene Kassen und deren KassiererInnen erlauben Dir den Gesamteinkauf zu dritteln und jede kassiert einen Teil gleichzeitig. Blöderweise musst jeweils mit Deiner EC Karten PIN 3x getrennt an jeder Kasse bezahlen. Das skaliert genau so lange wie der Teil den Du auf eine andere Kasse verteilst langsamer durch die anderen bereits arbeitenden Kassen gezogen würde als 1x zusätzlich zu bezahlen dauert. In der Praxis vielleicht 2-3 KassierInnen). Anhaltspunkte für's Aufteilen findet man durch Nachdenken oder Profiling Tools. Videokompression allgemein (DivX, H.264) lässt sich hervorragend aufteilen. Denn das Bild wird ohnehin in 16x16 Macroblöcke zerlegt und auf dieser Basis komprimiert. Die Schwierigkeiten liegen trotzdem im Detail und DivX skaliert auch derzeit nur bis 4 Cores gut. x264 macht problemlos 8 Cores und mehr und skaliert sehr gut. Um bei CUDA gut zu skalieren müsste man die Arbeit in ca. 128 - 256 verschiedene Teile zerlegen. Das ist nicht immer effizient möglich oder nur mit einem enormen Aufwand. Also: Videokompression erzeugt relativ einfach eine gleichmäßig volle Last auf den Cores (*). Bei Games ist das anders. Es könnte z.B. so sein, dass Szenen mit vielen Gegnern gut von QuadCores erledigt werden, während der DualCore in die Knie geht. Das merkt man dann bei der Average FPS kaum, aber bei der Minimum FPS kann der Unterschied gravierend sein. Kurve gekriegt, back on Topic: We need X-Testing.
Nachricht bearbeitet von 7oby am 05.07.2008 um 18:06:39 |
|
Am Anfang war das Bit ... Prost!
Profil: Old Hand
Mehr Informationen
|
Moin @7obi Nichts desto trotz hier, hauptsächlich für andere, mal ein gutes Beispiel zum Thema Multithreading, auch wenn es jetzt etwas vom eigentlichen Thema abweicht: Einige behaupten nämlich, wenn ihre Anwendung auf mehreren Kernen läuft, sie aber nicht voll auslastet, das wäre schon Multithreading. Sehr schwer, denen zu erklären, dass es für eine Anwendung besser ist, dass sie alle Kerne voll auslastet, als nur so ein bisschen. Habe selbst so ein Heimchen als Kumpel, ich weiß, wovon ich rede Sehr schön zu sehen ist das mit WinRAR in einer aktuellen Version (ich habe 3.70) unter "Extras -> Benchmark und Hardwaretest". Man beachte im Bild jeweils rechts das Kästchen zur Aktivierung von Multithreading sowie das Ergebnis in Kb/s und links die Auswirkung auf den Prozessor. @Thema
Nachricht zitiert 2 mal
Nachricht bearbeitet von DHAmoKK am 05.07.2008 um 18:30:38 |
|
Profil: Honorary Poster
Mehr Informationen
|
Nur schlaue Köpfe im Forum |
|
Profil: Veteran
Mehr Informationen
|
|
|
Profil: Honorary Poster
Mehr Informationen
|
@DHAmoKK
Nachricht bearbeitet von 3D Mann am 06.07.2008 um 05:19:59 |
