Speicherbandbreite wirklich unerheblich?

jusaca

Commander
🎅Rätsel-Elite ’24
Registriert
Apr. 2008
Beiträge
2.264
Wenn ich auf meinem System (2500k @4Ghz; 2x4GB 1333) mit Photoshop arbeite und eine komplexere Berechnung in Auftrag gebe, kann ich im Taskmanager beobachten, dass zwar alle vier Kerne ausgelastet werden, aber nicht zu 100%; Aller Kerne laufen so auf etwa 60-70% Auslastung, während aber der Fortschrittsbalken in Photoshop noch vor sich hin "kriecht".
Versteht mich nicht falsch, die Kiste rennt wie geschmiert und ich bin mit der Leistung zufrieden.
Aber ich frage mich, aus welchem Grund die CPU nicht zu 100% ausgelastet wird, wenn doch noch genug Arbeit ansteht.
Die einzige schlüssige Erklärung, die ich mir selber liefern konnte, ist, dass der Arbeitsspeicher die Daten nicht schnell genug ran schaufelt.
Hier wird ja immer gesagt, dass einzig die Menge des RAM zählt und die Geschwindigkeit maximal 2-3% Performance bringt, aber wo ist dann der Flaschenhals in meinem System?
Meint ihr, hier würde 1600er die CPU besser auslasten können?

Grüße
jusaca
 
Um optimal das System zu nutzen stellt sich die Frage was maximal die CPU beherrscht. Wenn diese nur 1333 abkann, dann bringen 1600mhz nichts, den die CPU kann mit schneller ankommenden Daten ja defakto nichts anfangen. Aber die Frage ist durchaus Interessant. Ich nutze viel Cinema 4D und hab das Gefühl das es mit 1600mhz schneller geht als mit 1333, obwohl meine cpu nur 1333er kann. Is n alter i7 870. Ich denke ich werd das mal Testen.
 
Es kommt auch darauf an, wie gut die Software alle Kerne nutzt!
Multithreaded programmieren ist eine besch...eidene Arbeit IMHO und ja man kann das Ganze gut, schlecht oder irgendwo dazwischen gut umsetzen!
 
Er hat nur nen Speicherbus von 1333! Schnellere Ergebnisse kannst du mit einer SSD erreichen! Außerdem gibt es diverse einstellungen in Photoshop! Also Adobe After Effects schaffts meine Kiste richtig auszulasten! Ich hab natürlich alle Kerne aktiviert und jedem Kern 2GB zu geordnet. Den Rest fürs System!
 
Der Grund ist Multithreading. Photoshop teilt die Aufgaben so gut wie möglich auf alle Kerne auf. Allerdings gelinkt das nicht zu 100%. Das heißt, manchmal müssen Ergegnisse der Berechnungen verglichen, also syncronisiert werden. Außerdem liegt es am Multitasking. Windows lässt ein Programm immer nur eine gewisse Zeit, glaube so um eine Sekunde, rechnen, dann wird geschaut, welches Programm CPU Resourcen benötigt. In dieser Zeit kann es sein, dass Teile vom CPU Cache geleert werden. Auch das kostet Zeit.

Hoffe es stimmt alles so, was ich verzapfe. ;-)
 
jusaca schrieb:
Meint ihr, hier würde 1600er die CPU besser auslasten können?

Das könntest du doch testen wenn du versuchst den RAM auf 1600MHz hoch zu stellen.
Sollte mit den meisten Modulen möglich sein.
 
jusaca schrieb:
Aber ich frage mich, aus welchem Grund die CPU nicht zu 100% ausgelastet wird, wenn doch noch genug Arbeit ansteht.
Manche Aufgaben könnten nicht geteilt werden und Algorithmen müssen in keinster Weise die CPU zu 100 % auslasten. Oder kannst du schon weiterarbeiten, während das (Zwischen-)Ergebnis noch nicht einmal vorhanden ist?
jusaca schrieb:
Die einzige schlüssige Erklärung, die ich mir selber liefern konnte, ist, dass der Arbeitsspeicher die Daten nicht schnell genug ran schaufelt.
Die einzig richtige Erklärung ist, dass der Algorithmus die CPU nicht vollends auslasten kann. Selbst wenn ich ein Video mit x264 konvertiere, muss ich zwangsläufig keine 100 % Auslastung an der CPU haben. Mit XVid sieht dies noch ein wenig bescheidener aus. Spiele lasten CPU und GPU ja auch nicht zu 100 % aus, obwohl es genug zu tun gibt.
 
Hellsfoul schrieb:
Der Grund ist Multithreading. Photoshop teilt die Aufgaben so gut wie möglich auf alle Kerne auf. Allerdings gelinkt das nicht zu 100%. Das heißt, manchmal müssen Ergegnisse der Berechnungen verglichen, also syncronisiert werden. Außerdem liegt es am Multitasking. Windows lässt ein Programm immer nur eine gewisse Zeit, glaube so um eine Sekunde, rechnen, dann wird geschaut, welches Programm CPU Resourcen benötigt. In dieser Zeit kann es sein, dass Teile vom CPU Cache geleert werden. Auch das kostet Zeit.

Hoffe es stimmt alles so, was ich verzapfe. ;-)

Die Daten müssen aus dem Speicher über den Speicherbus "in die CPU" geladen werden. Da spielt dann zum einen die Leistungsfähigkeit des Speichercontrollers eine Rolle und vor allem die Geschwindigkeit des Busses, über den die Daten geschickt werden. Von daher würde es sich anbieten, die Taktung des an die CPU gebundenen Busses zu erhöhen und höher getakteten RAM zu benutzen.
Eine CPU mit großem Cache, dem schnellen "Zwischenspeicher" in der CPU, könnte sehr viel Beschleunigung bewirken. Der Cache ist um Faktor 100 schneller als RAM, da der Weg der Daten über den Bus entfällt und Daten direkt in die Register geladen werden können.

Jedoch kann es sein, dass über diesen Weg nicht weiter optimiert werden kann, da die Rechnungsergebnisse nach einer gewissen Anzahl verglichen und miteinander synchronisiert werden müssen.
Vereinfacht: Kern 1,2,3 ist fertig, Kern 4 jedoch nicht. Also muss gewartet werden, da das Ergebnis des Kerns 4 benötigt wird. Erst dann kann dieses geladen werden.

Die Rechenzeit der CPU ist vom Betriebssystem in extrem kleinen Zeiten (ms) aufgeteilt. Jedes Programm bekommt sein "Scheibchen vom Zeitkuchen".Über den Taskmanager unter Prioritäten lässt sich diese Rechenzeit vergößern.

Edit: Soweit zur Theorie. Ich denke bei der genannten Auslastung der Kerne ist einfach nicht mehr drin, da der Algorithmus nicht mehr hergibt. Ich würde einfach die Prorität im Taskmanager hochsetzen. Wenn man 20 Sekunden warten muss, machen 10% Leistungszuwachs 2 Sekunden aus. Und diese 2 Sekunden sind bei 20 nur schwierig subjektiv fühlbar, behaupte ich.
 
Zuletzt bearbeitet:
Ok, das sind natürlich auch logische Erklärungen. Dann kann ich also selber nicht viel ändern, da müsste Adobe weiter ihre Algorithmen optimieren. Naja, mir ging es ja auch hauptsächlich um das WARUM. Ich werde jetzt für ein bisschen Performance nicht weiter an dem System rumpfuschen, nachdem mir momentan schon das Board abgeraucht ist -.-

Die Priorität des Prozesses sollte eigentlich keine großen Auswirkungen haben, da ich neben PS selten weitere anspruchsvolle Software gleichzeitig laufen habe. Dass sich andernfalls die Rechenzeit aufteilt, ist auch für mich logisch.

Aber Faktor 100 beim Vergleich Cache-RAM?
Mein RAM schafft etwa 17GB/s, der winzige L1-Cache 100GB/s. Also nichtmal Faktor 6.
Der L3 schafft ja sogar nur 40GB/s, der dürfte aufgrund seiner Größe eine höhere Relevanz darstellen, oder?

Grüße
jusaca
 
Selbstzitat: "Eine CPU mit großem Cache, dem schnellen "Zwischenspeicher" in der CPU, könnte sehr viel Beschleunigung bewirken. Der Cache ist um Faktor 100 schneller als RAM, da der Weg der Daten über den Bus entfällt und Daten direkt in die Register geladen werden können."

Ich gehe dann mal detaillierter auf den Sachverhalt ein:
- Es muss erst auf den RAM zugegriffen werden, kostet Zeit in Millisekunden.
- Es müssen dann die Daten aus dem RAM geladen werden, kostet Zeit in Millisekunden.
- Dann müssen die Daten über DEN ENGPASS schlechthin wandern - den Bus. Kostet einige bis ganz viele Millisekunden, je nach Auslastung.
- Dann erst findet der übliche Weg statt: Cache -> Register. Kostet einige bis viele Nanosekunden.
-> Der enorme Faktor setzt sich also nicht nur aus den unterschiedlichen Durchsätzen zusammen, sondern vor allem aus den riesigen Unterschieden bei den Zugriffszeiten!

Bestes Beispiel sind die Festplatten: da beschweren sich Benutzer, dass sie einen Durchsatz von 120MB pro Sekunde erreichen, aber ihr Betriebssystem dennoch lange zum Laden benötigt. Warum? Weil auf sehr viele kleine, auf der Festplatte verteilte Dateien erst zugegriffen werden muss, bevor sie geladen werden können - logisch, oder?
Die Festplatte erreicht dann zwar 120MB pro Sekunde, benötigt jedoch 17ms für einen Zugriff - da hilft dir der beste Durchsatz nichts, wenn es nichts zum Laden/Schreiben gibt! Vor allem deshalb sind SSDs so schnell.
 
Oder extrem einfach gesagt: Spiel mal mit nem 200er Ping einen Ego-Shooter. ;)
 
Ein einfaches "es geht um die Latenz" hätte es auch getan :D
Aber ich danke natürlich für die ausführliche Erklärung ;)
 
DJ G! schrieb:
Ich gehe dann mal detaillierter auf den Sachverhalt ein:
- Es muss erst auf den RAM zugegriffen werden, kostet Zeit in Millisekunden.
- Es müssen dann die Daten aus dem RAM geladen werden, kostet Zeit in Millisekunden.
- Dann müssen die Daten über DEN ENGPASS schlechthin wandern - den Bus. Kostet einige bis ganz viele Millisekunden, je nach Auslastung.

Die lärmenden Dinger mit den drehenden Scheiben und Lesezeiten im Millisekundenbereich nennt man nicht RAM sondern Festplatte. :D

Der Zugriff auf den Hauptspeicher in aktuellen PCs läuft etwa 5 Größenordnungen schneller als deine Millisekunden-Geschichte. Einen 32bit-Wert aus dem RAM in ein Register lesen dauert 2-stellig viele Nanosekunden. Von einem "ENGPASS Bus" kann beim Lesen aus dem RAM heutzutage auch keine mehr Rede sein, da der Speichercontroller direkt in der CPU sitzt und mit den DRAM-Chips in voller Breite verdrahtet ist.
 
Was haben hier eigentlich viele mit ihrem Bus? :confused_alt::

Er hat einen Core i5, bei dem der Speichercontroller in der CPU sitzt und direkt mit dem Ram verdrahtet ist. Ohne Umweg über FSB, Northbridge oder sonstwo. Der Ram wird immer mit der vollen Geschwindigkeit (DDR3 1066, 1333, 1666, 2000, ....) ohne Engpass angebunden. Die Speicherbandbreite steigt dabei linear mit dem Takt. Mehr als DDR1333 bringen aber tatsächlich nur bei wenigen speziellen Anwendungen etwas. Photoshopfilter gehören für gewöhnlich nicht dazu, viele sind ja nicht mal in der Lage 4 Threads ordentlich auszulasten.

Du kannst deinen Ram probeweise ja mal auf 1066Mhz runtertakten und mit der Stoppuhr messen, wieviel Performanceverlust du hast. Viel wird es nicht sein, und durch Wechsel auf 1600er Ram wirst du noch weniger als die X Prozent gewinnen.
 
Herrlich, das Gemisch aus Vermutungen und Rätselraten.
Offenbar hat sich bislang niemand der hier Antwortenden mal mit Photoshop beschäftigt.
@TE: mal die Festplatten LED beobachtet, während der Fortschrittsbalken vor sich hin kriecht? Die leuchtet/flackert, oder? Dein "Problem" zu lösen/mildern hilft nur, eine möglichst schnelle SSD einzubauen und Photoshops Arbeitsvolume auf diese zu legen. Oder für selbiges eine RAM Disk zu nutzen.
 
Das Arbeitsvolume von PS ist eine Intel 320er.
Es geht dabei weniger um Filter, sondern meist um Stichting oder die Verrechnungsmethoden. Dabei werden zumindest alle vier Kerne relativ gleichmäßig beansprucht.
Meinen eigenen RAM im Takt zu verstellen, kann ich direkt ausprobieren, wenn Mindfactory mir endlich mal ein Ersatz-MB zuschickt... -.-

Grüße
jusaca
 
Da muss ich doch glatt mal schauen wie es mit 12 Threads/Arbeitsvolumen in der Ramdisk beim Stitching aussieht^^.
Aber ich würde mich sehr wundern wenn da alle Threads auch nur ansatzweise ausgelastet werden. Photoshop war noch nie die "ich nutze alle Kerne"-Vorzeige-Anwendung
 
Zuletzt bearbeitet:
Bringt Dir aber nichts, auch Stitching & Co nutzen das Arbeitsvolume. Da ich auch ausschließlich SSDs nutze, für das Arbeitsvolume eine noch schnellere als Deine, habe ich aus Erfahrung auch "lindern" geschrieben, allerdings ist es immer noch besser, als mit HDDs.
Zwischen DDR3-1333 und DDR3-2133 hast Du nur bei wenigen Filtern, wie dem Gaußschen Weichzeichner, sprürbare Vorteile, beim Stitching oder HDR berechnen z.B. überhaupt keine. Habe ich bei mir alles zur Genüge mit CS3/4/5 getestet.
@HisN: sowohl Stitching, als auch HDR, können nicht mal meinen i7-2700K mit HT auslasten. Hier bringt wieder mal nur der hohe CPU Takt Vorteile, und ein klein wenig die Crucial M4 mit ihrer hohen Schreibgeschwindigkeit. Hier könnte sich tatsächlich ausnahmsweise mal ein RAID0 aus mehreren SSDs bemerkbar machen, da recht große Datenblöcke z.B. fürs UNDO geschrieben werden. Bei meinen beiden früheren VelocyRaptoren hat mans etwas gemerkt, als sie im RAID waren.
 
Zuletzt bearbeitet:
Frank Du bist zu schnell für mich, ich muss doch auch erst mal meine Gedanken beim tippen sammeln :-)
 
Aus welchem Grund nutzt PS denn überhaupt die Festplatte, wenn doch 8GB RAM zur Verfügung stehen?
 
Zurück
Oben