Limitiert meine CPU die GPU beim Falten?

brooker

F@H Team #70335 Event Manager
Hallo zusammen,

wir hatten das Thema im Team bereits mehrfach diskutiert. Ich habe einige Tests durchgeführt, um zu mindestens für Nvidia-GPUs eine Antwort zu finden. Heute möchte ich Euch die Ergebnisse vorstellen.

Gegenstand der Untersuchung:

1. Kann eine CPU eine GPU limitieren?

2. Ab wann limitiert meine CPU nicht mehr?

3. Können Limitierungen durch das Bereitstellen von mehreren Threads pro WU vermieden werden?

4. Unterstützt der FAH-Client Multi-Core-Betrieb?

5. Welche Nachteile bringt ein CPU-Limit beim Folden?


Testsystem: siehe Signatur, Zuweisung mit Bill2's Process Manager


Wie bin ich vorgegangen?

Ich habe mir eine schöne 0x21 WU (Projekt 9205) geladen und habe diese mit den unterschiedlichsten Einstellungen am System abgearbeitet. Zwischen den Messungen lagen ca. 30 min.

-----------------------------------------------------------------------------------------------------------------------------------

Takt 1.6 GHz, WU-Prio "hoch"

Szenario 1 - 2 Threads, Ergebnis: TDF=6:14

Szenario 2 - 4 Threads, Ergebnis: TDF=6:14

Szenario 3 - 1 Thread, Ergebnis: TDF=6:16

Szenario 4 - ohne Zuweisung, Ergebnis: TDF=6:14

0x21_Pro9205_1600MHz_4Threads_TPF_0614.jpg 0x21_Pro9205_1600MHz_freiThreads_TPF_0614.jpg 0x21_Pro9205_1600MHz_1Threads_TPF_0616.jpg 0x21_Pro9205_1600MHz_2Threads_TPF_0614.jpg

Interpretation: die Zuweisung von 2 Threads (Core+Hyperthread) bringt einen Vorteil . Noch mehr Threads können aber nicht verwertet werden. Die Zuweisung von nur einem Thread (Core oder HyperThread) führt zu einem Limit mit einer Verschlechterung der TPF um 0:02 Minuten und einem Verlust von ca. 2.000 PPDs. Die freie Zuordnung von Lasten über das Betriebssystem, statt mit dem Prozessmanager, brachte keinen Mehrwert.

-----------------------------------------------------------------------------------------------------------------------------------

Takt 2.4 GHz, WU-Prio "hoch"

Szenario 5 - 2 Threads, Ergebnis: TDF=6:10

Szenario 6 - 4 Threads, Ergebnis: TDF=6:12

Szenario 7 - 1 Thread, Ergebnis: TDF=6:09

Szenario 8 - ohne Zuweisung, Ergebnis: TDF=nicht mehr relevant

0x21_Pro9205_2400MHz_1Threads_TPF_0609.jpg 0x21_Pro9205_2400MHz_4Threads_TPF_0612.jpg 0x21_Pro9205_2400MHz_2Threads_TPF_0610.jpg

Interpretation: die Takterhöhung von 1.6GHz auf 2.4 GHz führte zu einer Verbesserung der TPF von bis zu 5 Sekunden und einen brachte einen Gewinn von ca. 5.000PPDs mit sich.

-----------------------------------------------------------------------------------------------------------------------------------

Takt 3.6 GHz, WU-Prio "hoch"

Szenario 9 - 2 Threads, Ergebnis: TDF=6:08

Szenario 10 - 4 Threads, Ergebnis: TDF=nicht mehr relevant

Szenario 11 - 1 Thread, Ergebnis: TDF=6:09

Szenario 12 - ohne Zuweisung, Ergebnis: TDF=nicht mehr relevant

0x21_Pro9205_3600MHz_1_Threads_TPF_0609.jpg 0x21_Pro9205_3600MHz_2_2Threads_TPF_0608.jpg

Interpretation: Der Sprung auf 3.6 GHz bringt eine Verbesserung der TPF auf 6:08 Minuten. Es wird die selbe TPF erreicht wie mit 4.5GHz. Es liegt demnach kein CPU-Limit mehr vor. Damit dieses verifiziert werden kann, habe ich die GPU-Takt von 1.380MHz auf 1.550 MHz angehoben. Dadurch wurde eine bessere TPF von 5:51 Minuten erreicht.
Vermutung: Durch die Erhöhung des GPU-Taktes benötigt diese mehr Unterstützung von der CPU - siehe Takt 4.5 GHz.

0x21_Pro9205_3600MHz_2_1550MHz_Threads_TPF_0551.jpg

-----------------------------------------------------------------------------------------------------------------------------------

Takt 4.5 GHz, WU-Prio "hoch"

Szenario 13 - 2 Threads, Ergebnis: TDF=6:08

Szenario 14 - 4 Threads, Ergebnis: TDF=6:07

Szenario 15 - 1 Thread, Ergebnis: TDF=6:09

Szenario 16 - ohne Zuweisung, Ergebnis: TDF=nicht mehr relevant

0x21_Pro9205_4500MHz_1Threads_TPF_0609.jpg 0x21_Pro9205_4500MHz_4Threads_TPF_0607.jpg 0x21_Pro9205_4500MHz_2_2Threads_TPF_0608.jpg

Interpretation: Die TPF verbessert sich nicht mehr mit der Erhöhung des Taktes des CPU. Es besteht kein CPU-Limit mehr.

Vermutung: Durch die Erhöhung des GPU-Taktes benötigt diese mehr Unterstützung von der CPU. Das Ergebnis zeigt, dass die GPU mit einem Takt von 1.550 MHz von der CPU mit einem Takt von 3.6GHz limitiert wurde. Die Erhöhung des CPU-Taktes auf 4.5GHz verbesserte die TPF auf 5:51 Minuten. Ob damit das CPU-Limit aufgehoben worden ist bleibt offen, da keine schnellere Hardware vorhanden war.

0x21_Pro9205_4500MHz_2_1550MHz_Threads_TPF_0549.jpg

-----------------------------------------------------------------------------------------------------------------------------------

Ergebnisse:

zu 1. Kann eine CPU eine GPU limitieren? Ja. Je höher der GPU-Takt umso höher muss der CPU-Takt sein, damit es zu keiner Limitierung kommt.


zu 2. Ab wann limitiert meine CPU nicht mehr? Bei meinem Setup ohne GPU-OC limitierte die CPU ab ca. 3.6 GHz die GPU nicht mehr. Nach einem GPU OC lag jedoch wieder eine Limitierung vor. Diese konnte Du die Taktsteigerung der CPU auf 4.5 GHz aufgehoben werden. Ein CPU-Limit muss für jedes System individuell ermittelt werden.


zu 3. Können Limitierungen durch das Bereitstellen von mehreren Threads pro WU vermieden werden? Der Test zeigt, dass eine Zuweisung von mehr als 2 Threads keine Vorteile bringt. In Anwendung der Erkenntnis des Punktes 4 kann folgende Aussage getroffen werden: Sofen der GPU ein völlig freier Thread zur Verfügung steht reich einer aus. Da Windows die Anfrage gleichmäßig auf dei vorhandenen Threads verteilt, ist die Forderung praktisch nie erfüllt. Daher ergeben sich zwei mögliche Einstellungen. Nur die Priorität der WU erhöhen und die Windows-Automatik arbeiten lassen oder die Priorität der WU erhöhen und 2 Threads (Kern + Hyperthread) zuweisen. Je nach Anwendungsfall und Nebenlast des Rechners können sich darauf minimale Vorteile ergeben. Bei reinen Faltern oder Falten ohne Nebenlasten halte ich die Einstellung 1 für ausreichend.


zu 4. Unterstützt der FAH-Client Multi-Core-Betrieb? Im Test konnte ich darauf leider keine Hinweise finden.


zu 5. Welche Nachteile bringt ein CPU-Limit beim Folden? Vergleicht man die schlechteste TPF mit der besten stellt man fest, dass das Limit einen Punktverlust von ca. 25.305 PPDs mit sich bringt.

Anhang anzeigen 856199Anhang anzeigen 856200


offene Fragen:

... wie es um die Limitierung mit Nvidia-GPUs und 0x21er WU steht, ist nun klar. Die Frage ist, wie verhält sich eine Nvidia-GPU mit den anderen WUs und wie verhält sich eine AMD-GPU? Diese Fragen möchte ich in den kommenden Tagen versuchen zu beantworten.

Update: die 0x18er WUs limitieren GTX-Karten noch stärker. AMD-GPUs sind von einer Limitierung praktisch ausgeschlossen.


Interessantes während der Messung:

Bei einer Messung hatte ich ein wahnsinniges Ergebnis, was ich jedoch nicht reproduzieren konnte:

GTX 970@1.380MHz CPU-Takt 4.5 GHz WU: 0x21 Projekt: 9704 TPF: 1:24 Minute Est. PPD: 565.426 ;) - Lukas, danke für den guten Strom :daumen:

super.jpg


Anmerkungen, Berichtigungen, Nachmachen und Disskussion dringend erwünscht!


Grüße Brooker
 
Zuletzt bearbeitet:
Worin besteht der Unterschied zwischen den einzelnen Szenarien die durch einen Strich geteilt sind? :huh:

Szenario 1, 5 und 9 haben den gleichen Text (bei den anderen Nummern das Gleiche).
 
Da ich eine CPU habe welche kein OC erlaubt (mein Mainboard erlaubt auch kein OC über die Turbo Stufen), finde ich deine Erkenntisse sehr interessant. Allerdings habe ich jetzt in diesem Bezug ien Dilemma:

Wenn ich einem Falt-Core, 2 Threads zur Seite stelle, geht mein Turbo der CPU höher: vorher 3,5ghz, jetzt 3,7ghz.

Ich habe nun aber 2 GPU's und die falten z.b. aktuelle jeweils eine Core18.

Manuell, konnte ich jetzt jedem Core18, 2x2 Threads zur verfügung stellen. Wenn haber nun eine WU fertig ist und der core18 (oder 21) neu startet, bekommt er wieder eine Automatische zuweisung über alle Kerne --> nicht gut.

Bill2's Process Manager, könnte ich nun den Falt-Core's (18&21) bei erkennung der exe 2 Threads zuweisen.
Wenn haber nun die 2 GPU's wie aktuell jeweil mit core18 falten, bekommen die beiden WU die gleichen Threads zugewiesen --> auch nicht gut.
 
@arcDaniel: ich würde mal sagen, ein "halbes" Dillemma, für das es aber eine Lösung gibt. Weise den 0x21er 4 Threads zu und den 0x18er auch. Da nicht mehr als 2 Threads pro WU verwendet werden können, bleiben immer zwei frei und die krallt sich dann die 2. WU. :)
 
Klappt leider nicht wirklich, das Verhalten ist sehr komisch:
-2x2 manuell zugeordnete Threads an die beiden Core18, klappt ohne Probleme
-Lass ich den Process Manager 4 Threads an Core18 zuweisen, werden trotz 2x ausgeführter exe nur 2 Kerne zu 100% belastet und die PD gehen in den Keller

Könnte aber auch sein, dass der Process Manager noch nicht richtig mit Win10 umgehen kann...
 
... Win 10 wird leider noch nicht unterstützt :(

Aber, bei mir läuft diese Einstellung super! :)

Limt AMD.jpg
 
Zuletzt bearbeitet:
Ich habe meine 290 jetzt auf einem altem Board mit PCIe 1.1 und Core2Duo und das limitiert richtig! Höchstens noch 2/3 PPD gegenüber vorher in meinem PC :)

@TheSebi: Was mir zu diesem Thema aufgefallen ist. Die "Vorbereitungszeit" der WU wird umso länger, je schwächer die CPU ist. Bei meinem "kleinen Falter" kann das je nach WU und deren Größe auch schon mal 10 min dauern. Da kommt man leider nicht drum rum und das bringt Verluste mit sich. Um Dein Thema aber mal schnell aufzugreifen, habe ich gestern Abend mit AMD 260X mal mit zur GTX 970 in den "großen" Rechner gesteckt. Ich kann, abgesehen von der deutlich kürzeren "Vorbereitungszeit" kein Limit feststellen - siehe Screenie:

Limt AMD.jpg

Die AMD verursacht praktisch fast keine Last. Die GTX 970 aber deutlich. Hier mal die Gegenprobe - GTX 970 gestoppt.

Limt AMD_2.jpg

Was mir jedoch aufgefallen ist: die PPDs sind um ca. 5-6K gestiegen. Wobei das auch mit der deutlich schnelleren Vorbereitungszeit zu tun haben kann. Zum Thema Schnittstelle: allgemein steht die Aussage im Raum, dass die Anforderungen an die PCIe Schnittstelle sehr gering bei Folding@home sein sollen. Evtl. bringt die Summe aus Vorbereitungszeit und Schnittstelle Deinen Verlust :(
 
Zuletzt bearbeitet:
Naja, mann muss aber auch gestehen, dass da eine CPU im extrem zur anderen steht. Die 5-6k ppd minus, im Vergleich zum eingesparten Strom, ist ja noch vertretbar.

Ist bei deiner AMD CPU eigentlich so etwas wie OC möglich?
 
@ arcDaniel: sehe ich genauso. was will man für 15W verlangen. Ich halte das Gesamtpaket, in Bezug auf Anschaffungskosten und laufende Kosten, für fast Ideal. Die CPU lässt sich leider nicht übertakten.
 
Ich würde dann auch noch gern testen meine 290 beim kleinen Server von mir zu verbauen.
Der Atom am Board hat PCIe 8x für die GPU übrig, wäre theoretisch gleich schnell wie beim momentanen alten Board mit PCIe 1.1, aber vielleicht geht es mit dem Prozessor doch etwas besser :rollen:
Kann dann ja den Vergleich dokumentieren wenn ich einen Riser mit 8x habe ;)
 
@TheSebi41: klar, probier das mal aus. Ich vermute, dass auch die 290er bei Falten nur sehr geringe Last auf die CPU bringt. Lediglich bei der "Vorbereitung" wird die CPU stark beansprucht und weil sie doch recht schwach ist, wird es eine Weile dauern.
 
Zurück