Optimierung der Collatz-WUs

Sabroe SMC

Grand Admiral Special
Mitglied seit
14.05.2008
Beiträge
4.516
Renomée
379
Standort
Castrop-Rauxel
  • Docking@Home
  • BOINC Pentathlon 2011
  • BOINC Pentathlon 2012
  • BOINC Pentathlon 2013
  • BOINC Pentathlon 2014
  • BOINC Pentathlon 2015
  • BOINC Pentathlon 2016
  • BOINC Pentathlon 2017
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2019
  • BOINC Pentathlon 2021
  • BOINC Pentathlon 2022
  • BOINC Pentathlon 2023
Beim Vergleich der Laufzeiten von meiner 7990 mit denen der "besten Computer" bei Collatz waren mir die extrem kurzen Laufzeiten aufgefallen. Eine kurze Suche ergab, das es eine Möglichkeit gibt die Laufzeit zu optimieren. Der Anstoß wurde durch den Projektadministrator Slicker selbst gegeben.
Im Projektordner von Collatz (X:\XYZ\projects\boinc.thesonntags.com_collatz) befindet sich eine Datei Namens solo_collatz_4.07_windows_x86_64__opencl_ati_100.config. Diese ist mit dem Windows Editor zu öffnen. Standardmäßig ist sie leer. Folgender Text muß hineinkopiert werden:

<configuration>
verbose=1
items_per_kernel=20
kernels_per_reduction=9
threads=8
sleep=1
build_options=-Werror
</configuration>

Solltet Ihr bisher die Auslastung der Graka mittels app_config optimiert haben solltet Ihr den Eintrag bei den Solo Wus auf

<gpu_usage>1.0</gpu_usage>
<cpu_usage>1.0</cpu_usage>

umstellen. Die obige Configuration gilt für AMD 7970 und 7990 und ist auf meinen Grakas erprobt.
Weitere Einstellmöglichkeiten hier:
verbose = [0 | 1]
Ein Wert von 1 bewirkt, dass mehr Informationen über die GPU , OpenCL -Version , etc., in die Protokolldatei geschrieben werden. Wenn aktiviert, sollte dies die erste Zeile der Konfigurationsdatei sein, so dass es die anderen Einstellungen in der Protokolldatei geschrieben werden.


items_per_kernel = [10 .. 22]
Dies ist die Anzahl der zwei 256 -Bit-Zahlen (zB 2 ^ N) , die pro -Kernel Aufruf berechnet wird. Setzen Sie diese Zahl höher liegt eine größere Last auf der GPU. Eine zu hohe Einstellung führt zum Treiberabsturz und das die Anwendung "hängt". Der Standardwert ist 14 oder 2 ^ 14 oder 16384 Einträge .


kernels_per_reduction = [ 2 .. 9] Die Zahl (2 ^ N wieder einmal) der Kerne , bevor eine Reduktion läuft. Die Standardeinstellung ist 8 oder 2 ^ 8 = 256 . Eine geringere Einstellung kann die Bedienbarkeit am Monitor verbessern. Eine höhere Einstellung führt zu einer höheren GPU- Last. Eine zu hohe Zahl wird zu einer hohen CPU als auch GPU- Auslastung führen.


threads = [ 5 .. 10]
Diese enthält die Anzahl der Threads, die parallel laufen . Höher ist nicht unbedingt schneller. Diese Zahl ist geräteabhängig. Wenn zu hoch eingestellt ist , wird die Anwendung sie automatisch so reduzieren das sie mit dem Gerät kompatibel ist.
Die meisten AMD -GPUs erlauben bis zu 256 Threads ( eine Einstellung von 8). NVidia Grafikprozessoren ermöglichen kann 512 oder sogar 1024 ( eine Einstellung von 9 oder 10) . OpenCL erfordert ein Minimum von 32 ( eine Einstellung von 5) nach den Khronos -Spezifikationen.


build_options = [ Zeichenfolge, die alle wahl OpenCL bauen Optionen]
Dies wurde ausschließlich für Debugging aufgenommen, um in der Lage zu sein " -cl -opt -disable - Werror " zu nutzen. Wenn die OpenCL-Anwendung innerhalb von 1-2 Sekunden nach dem Start abstürzt, können Sie " build_options = -cl -opt -disable - Werror " verwenden und sehen, ob das das Problem behebt.


sleep= [ 1 .. 1000]
Dies steuert die Anzahl der Millisekunden, die die Anwendung in einen Schlafzustand während der Wartezeit für die asynchrone Kernel verbringt um abzuschließen. Der Standardwert ist 1 . Das Setzen dieser höheren (z. B. 2-5) wird zu einer besseren Video-Antwort führen, sondern wird die Anwendung erheblich verlangsamen.

Danach speichern und Boinc neu starten.
Eine Laufzeitreduktion von ca 40% ist die Folge.
Und nun viel Spass beim ausfrickeln der besten Einstellmöglichkeiten.

PS Für die Nvidiakarten und auch für alle anderen Arten von GPU-WU's (large, mini) gilt sinngemäß das selbe. Auch dort werden Laufzeiten stark reduziert.
 
Zuletzt bearbeitet:
gilt das nur für die Collatz oder kann man das auch bei den Solo und mini Collatz anwenden?
 
Jupp Danke! Funktioniert auch mit meiner AMD 7850 und bei den Collatz habe ich eine Laufzeit von 2340 Sec. statt 2900 Sec. Credit weiß ich noch nicht, da die WU`s bei Herrn Pen Ding Kaffee trinken.


Edit: hier mal zwei WU´s
1 Jan 2014, 16:10:25 UTC 2 Jan 2014, 15:51:57 UTC Fertig und Bestätigt 1,581.28 1,139.04 4,353.61 collatz v4.07 (opencl_ati_100)

1 Jan 2014, 16:10:24 UTC 2 Jan 2014, 14:59:24 UTC Fertig und Bestätigt 1,556.63 1,128.42 4,129.21 collatz v4.07 (opencl_ati_100)
 
Zuletzt bearbeitet:
ich erreiche erst mit 2 gleichzeitig laufenden wus die 99% auslastung. 0.5 cpu und 0.5 gpu scheint aber ganz gut zu laufen meine 6870 schaft damit 2 wus in 1 1/2 std und es ist nur ein kern für die gpu belegt.

das entspricht einer laufzeit von ca 2700 sec pro wu ;) und generiert somit über 256k credits am tag.
 
So, ich habe auch welche gekriegt:
-Die mini_collatz putzt die HD7750 in 3 Minuten weg? Ist das normal?
-collatz habe ich auch, aber noch keine gerechnet...
-solo_collatz geht gar nicht :-[ Rechenfehler nach weingen Sekunden -> habe mal den "Overdrive" rausgenommen und die Standardeinstellungen geladen. mal sehen.

Übrigens mit 0,02CPU+1GPU eine Auslastung von 97% - da brauche ich kaum nachhelfen...

>>> die erste WU mini_collatz ist gültig:
Laufzeit:189.36 /// CPU-Zeit: 188.80 /// Credits: 451.71
Wow! :o das kann man akzeptieren.

>>> auch die 1. Collatz ist durch: Laufzeit 26min : 08sec (Laufzeit 1,568.38sec) >> die 2. hat 1,581.06sec Laufzeit
Mit wieviel Cr kann man da rechnen für ne einfache Collatz?
Wenn ich Denjos Rechnung mal zurückspule, also ca. 4k /WU, sollte dann bei meiner HD7750 etwa 210...220k geben - Geilomat.

---------- Beitrag hinzugefügt um 13:42 ---------- Vorheriger Beitrag um 12:01 ----------

Boah, habe mal gerade geschaut, wo im Team ich denn überhaupt stehe ..... Platz 333.
Ganz toll!
Nix wie wech da!? Was oxidiere ich denn da hinten rum. (grummel)
 
Zuletzt bearbeitet:
solo_collatz bringen irgendwas um die 8K, soweit ich das noch im Kopf habe.
 
Wenn die einfachen Collatz 8k bringen, dann komme ich bei meinen Laufzeiten ja auf >400k am Tag?
Mit den Solos kämpfe ich noch, habe gerade wieder eine geladen. Kann es sein, dass die etwas allergisch reagieren auf eine übertaktete ATI?
Habe jetzt aber den Default-Takt drin und versuche es nochmal.
 
ausprobieren geh doch mal 50 mhz runter und guck wie lange sie durchhalten
 
Der Takt wars nicht. Alle WUs mit (opencl_ati_100) fliegen mir um die Ohren, während die (ati13ati) alle durchlaufen.
Ich habe jetzt mal die "Optimierung" wieder rausgelöscht und versuche nochmal.
Dann kann ich noch den Treiber erneuern, aber dann weiß ich irgendwie nicht weiter.

>> O:K:, das wars auch nicht. in drei-vier Sekunden 5 Berechnungsfehler... zum Glück kommen im Moment nur (ati13ati) rein.

Na, sag mal, wann habe ich das letzte Mal neue Treiber draufgebracht? :o Da ist ja noch ein 12.11 drauf!?
Das mache ich aber erst heute abend. Treiber per Remote ändern? Lieber nicht!
 
Zuletzt bearbeitet:
Solo Collatz bringen ~8K, Collatz ~4K, mini hab ich noch nicht ausprobiert
 
Ja, ich habe inzwischen die erste gültige Collatz mit 3770 Cr.
Die Minis sind unterschiedlich, zwischen 410 und 470 Cr war alles dabei, mit Laufzeiten bei 3:10 bis 3:30 min.

Aber Solos kriege ich nicht zum Laufen. Genauer alle (opencl_ati_100) enden mit Berechnungsfehler...
Wenn ich das nicht bald hinkriege, muss ich Collatz wieder stoppen. Mittlerweile habe ich mehr Fehler als Gültige. Das muss ich dem Projekt nicht antun.
 
Zuletzt bearbeitet:
Deine Comps sind "versteckt", man kann sich also nicht die WUs anzeigen lassen die betroffen sind.
 
Oh, ich mach das mal auf...
Betroffen ist mein FX-6300. Da habe ich allerdings eben den Treiber ge-updated. Mal sehen...
Der Xeon hat eben testweise ne mini mit (opencl_ati_100) erfolgreich durchgeschoben und der hatte den neueren Treiber...

So, nun sollten die PCs zu sehen sein.

---------- Beitrag hinzugefügt um 21:01 ---------- Vorheriger Beitrag um 20:54 ----------

Neuer Treiber : 13.251-131206a-166389C-ATI

Und der scheint das Problem behoben zu haben.
Eine Solo_collatz mit opencl_ati_100 läuft jetzt seit gut drei Minuten und macht keinen Stress.
Vorher wäre die in weniger als einer Sekunde abgeschmiert. O.K., nicht zu früh freuen, aber erstmal sieht es gut aus.
Aktuell: 5min Laufzeit und 11% fertig...

Ich werde langsam düsig im Kopp. Wie bin ich eigentlich darauf gekommen, dass das eine HD7750 ist? Der FX-6300 hat aktuell die HD6870 drin *noahnung*

Aktuell: 10min und 22,3% >> also geschätzte Gesamtlaufzeit 45min bei GPU aufgebrezelt auf 1000MHz und GPU-Last 97%- ist das normal?
letzte Zwischenmeldung: 22:30min und 50%

Ich denke, jetzt läuft das....

@Sabroe SMC:
Du hast 4.003.521 Cr in den letzten 24h gemacht? Ich fasse es nicht. Wie viele GPU hast du da dran?
 
Zuletzt bearbeitet:
11 - davon eine Dual GPU. Mit Solo-WUs waren es sogar >6 Mio
 
Wow. Ja, da kann ich nicht einmal mit, wenn ich alle Reserven auf das eine Projekt ansetzen würde...

O.K., es kann nicht jeder ganz vorn sein. Meine Solo_Collatz ist überigens durch. Also denke ich, es war wirklich der alte Treiber und jetzt läuft es.
Werde morgen aml die andern GPUs durchprobieren. Mal sehen, was ne 7750 oder ne 7790 so bringt.
 
Hat irgendwer eine Empfehlung für die Werte hier und meine Graka HD7790?

<configuration>
verbose=1
items_per_kernel=20
kernels_per_reduction=9
threads=8
sleep=1
build_options=-Werror
</configuration>


Ohne Optimierung ist die HD7790 erstaunlicher Weise nur unwesentlich schneller als die HD6870. Mal gerade 2 Minuten spart sie ein, was mir zu wenig erscheint. Vielleicht liegts ja aber auch an der Speicheranbindung (HD6870 mit 256bit, HD7790 nur mit 128bit ).
Wenn die Werte oben für die 7970 und 7990 gelten, sind sie sicher zu heftig für meine 7790. Ich habe nur kein Gefühl dafür, was da überhaupt geht.

Nachtrag:
O.K., da keine Vorschläge kamen, habe ich den Eintrag einfach 1:1 reingenommen. Zumindestens läuft die Anwendung noch nach dem BM-Neustart. Mal sehen, ob sich was ändert. Vergleichswerte habe ich inzwischen von zwei GPUs da.

Erste Resultate HD7790:
Ich wollte es nicht glauben, aber die knuspert die solo_collatz jetzt schneller weg als die einfachen collatz ... 25 bis 26 Minuten für eine!
Einfach versuchen hilft eben manchmal doch. Achso: Die GPU rennt jetzt auf 1200/1600 +3% Power bei 100% Last und 68°C
 
Zuletzt bearbeitet:
Hab einfach die Configuration der alten app für die neue übernommen mal schauen obs noch was bringt...

Gibt es eig. ne Möglichkeit der AMD & Intel GPU unterschiedlich viele CPU Kerne zuzuweisen? Also für AMD GPU=1.0 CPUs Intel GPU= 0.5 CPUs ???
 
Zuletzt bearbeitet:
Nur wenn die Apps unterschiedlichen Namen haben
 
Hab das jetzt anders gelöst mit 2 Boinc instanzen und dann jeweils immer die AMD oder Intel GPU gesperrt...
 
Hmm, das muss ich für meine AMD HD7770 auch mal austesten!
 
Moin, habe auf meinem Hauptcrunchrechner (940BE@FireProV4900 & HD 5770) bei den solo(ati14) Paketen immer nach 2-3 Sekunden Berechnungsfehler, aktueller Treiber drauf, keine Übertaktung, 7.2.39 Client drauf, alles nicht gefruchtet. Woran kann das liegen?

Grüße
 
Nabend

hab eine Frage wie kann ich meine GPU auslastung auf ca 97% bekomen aktuell schwankt meine HD 7790 zwischen 1-100% munter.
 
Zurück
Oben Unten