SSE2 vs. SSE vs. 3DNow!

TiKu

Administrator
Teammitglied
Mitglied seit
16.11.2001
Beiträge
21.665
Renomée
1.249
Standort
München
  • SIMAP Race
  • QMC Race
  • Spinhenge ESL
  • Docking@Home
  • BOINC Pentathlon 2021
Da die Frage, ob man nun die Nutzung von SSE, 3DNow! oder gar keiner Erweiterung erzwingen soll, ziemlich oft auftaucht, hier mal ein paar Hinweise dazu:

Was ist schneller?
SSE(2) ist recht deutlich schneller als 3DNow! Es empfiehlt sich also, auch auf einem AMD-System SSE zu nutzen. Wir schlagen den "Feind" quasi mit seinen eigenen Waffen.;D
Ganz ohne 3DNow!/SSE(2) ist Folding@Home natürlich am langsamsten.

Wann können 3DNow!/SSE(2) genutzt werden?
Generell werden die Erweiterungen SSE und 3DNow! momentan nur von den Cores GROMACS und DGROMACS unterstützt. DGROMACS kann zudem auch noch SSE2 nutzen.

Wie aktiviere ich 3DNow!/SSE(2)?
Standardmäßig entscheidet der Client selbst, ob und welche Erweiterungen er verwendet. Dabei wird SSE2 bevorzugt, dann kommt SSE und zuletzt 3DNow!.
Nach einem Absturz nutzt Folding@Home vorübergehend gar keine Erweiterungen. Mit dem Parameter -forceasm kann man das unterbinden.
Ältere Versionen des (D)GROMACS-Cores stürzten oft ab, wenn SSE auf einem AMD Athlon genutzt wurde, weshalb auf diesen Systemen 3DNow! bevorzugt wurde. Aus dieser Zeit stammt der Parameter -forceSSE. Mit ihm konnten AMD-Nutzer die Verwendung von SSE erzwingen. Da die Ursache für die Abstürze inzwischen behoben ist und SSE gegenüber 3DNow! wieder bevorzugt wird, ist -forceSSE inzwischen eigentlich nutzlos.

Woran erkenne ich, dass 3DNow!/SSE(2) aktiviert sind?
Steht bei einer WU "Extra 3DNow! boost OK." bzw. "Extra SSE(2) boost OK." in der Log-Datei bzw. in der Ausgabe, hat es funktioniert.

Wie starte ich den Client mit Parametern?
Windows:
Man erstelle eine Verknüpfung zu der exe-Datei des Clients. Dann öffne man die Eigenschaften dieser Verknüpfung und lasse sich die Registerkarte "Verknüpfung" anzeigen.
Als Ziel sollte dort in Anführungszeichen der Pfad zu der exe-Datei stehen. Hinter das Ausführungszeichen schreibt man nun ein Leerzeichen und anschließend den Parameter. Bsp.:
"C:\Programme\Folding@Home\Folding@Home v5.02.exe" -forceasm
Noch ein Klick auf OK und schon nutzt Folding@Home die Erweiterungen auch nach einem Absturz, wenn man es über diese Verknüpfung startet.
Eine Beschreibung aller möglichen Parameter gibt's in den FAQ.

andere OS:
Prinzipiell sollte das genauso gehen wie bei Windows, nur dass die Dateinamen und Pfade etwas anders aussehen.


Bitte benutzt für weitere Fragen zu dieser Thematik zunächst erstmal die Suchfunktion (). Die sollte man sowieso bei jedem Problem erstmal nutzen.;) Sind die Suchergebnisse nicht zufriedenstellend, bitte ich euch, Fragen zu der SSE/3DNow!-Thematik hierein zu posten.

Danke!
TiKu
 
Zuletzt bearbeitet:

Allerdings sollte man daran denken:

Ist eine WU fertig gerechnet und der Client holt sich eine neue,
dann nutzt er beim anschließenden Neustart automatisch wieder 3Dnow wenn möglich.

Man sollte daher bei jeder neuen WU auch den Clienten manuell mit -forceSSE neu starten !


Ooops ! Das trifft nur für die 3.24 er Version zu. Die 4.0 er Version scheint sich die Parameter zu merken !
 
Zuletzt bearbeitet:
Oh, eigentlich meinte ich das so, dass man F@H immer per Verknüpfung startet. Hmmm, da muss ich mir mal noch eine eindeutigere Formulierung einfallen lassen.
Dass der 4er sich die Einstellungen merkt, wusste ich gar nicht. Man lernt halt nie aus.:D
 
Zuletzt bearbeitet:
SSE ist sehr viel schneller als 3DNow! bei F@H. Leider nutzt F@H SSE bei Athlon XP Prozessoren nicht automatisch und man muss es per Parameter manuell aktivieren.

Beim alten Client Version 3.24 heisst der Parameter für SSE aber noch -forceasm

Instruct the core to use SSE/3DNow assembly instructions if possible, even if it has previously made the determination that the machine may not be handling this well.

Hier die Infodatei zur alten Cosolenversion: http://www.stanford.edu/group/pandegroup/folding/console-userguide.html

Im neuen Beta Client heisst der Parameter für SSE aber -forceSSE und der der Paramter -forceasm ist für eine beliebige vorhandene Optimierung. Hier ein Screenshot zum selbst nachlesen.

fahbeta40.jpg



Die Beschreibung des Parameters -advmethods macht in der Beta endlich mal Sinn

Ver. 3.24 : Request to be assigned any new Cores or work units.
Beta 4.00 : Use new advanced scientific cores and/or work units if available


Zur Erklärung: Es gibt 2 verschiedene Cores. Einmal die Tinker-Cores und Units die kein SSE/3DNow! nützen und dann noch die Gromacs-Cores und die Units, die die CPU-Erweiterungen unterstützen und deshalb schneller zu berechnen sind und mehr Punkte bringen. Das Punktesystem von F@H finde ich trotzdem ziemlich mies, da Leute die eine Tinker-Unit bekommen für deutlich mehr Rechenzeit ungenügend viele Punkte bekommen.

Ich hab mich zu dieser Sache schon mal in einem anderen Thread geäußert. Ihr findet es auf dieser Seite ganz unten.

http://www.planet3dnow.de/vbulletin/showthread.php3?s=&threadid=128591&perpage=25&pagenumber=2

Wenn man Punkte sammeln will sollte man unbedingt darauf achten, dass man beim XP SSE erzwingt und dann noch per -advmethods die für SSE optimierten WUs bekommt.

Durch den Flag -advmethods bekommt man nur optimierte Gromacs-Workunits, die SSE nutzen können und keine Tinker mehr. Da die WUs schneller berechnet werden bekommt man mehr Punkte. Insgesamt finde ich das Bewertungssystem aber nicht gerade optimal.
 
So, ich habe das HowTo mal etwas überarbeitet, da sich bei dieser Thematik ja inzwischen doch einiges geändert hat.
 
Habe mal seit langem F@H wieder gestartet, allerdings macht er nur SSE Boost ohne die

(2) :] Naja, dann soll er sich halt tot rechnen ;D
 
Sicher, dass Du eine DGROMACS hast?
 
Sargnagel schrieb:
Die Entwickler von Gromacs haben in Zusammenarbeit mit AMD herausgefunden, warum der F@H-Client auf AMD-Systemen manchmal abstürzt, wenn SSE genutzt wird (s. div. Foren).
http://www.gromacs.org/pipermail/gmx-users/2004-March/036194.html

Das läßt auf ein baldiges Update des F@H-Clients hoffen. :)

ich aktualisier mal den Link: Ich denke du hattest diese Info gemeint:
http://www.gromacs.org/pipermail/gmx-users/2004-March/009570.html

Weiß jemand eigentlich, was da los war, sprich hat Erik sich mal geäußert, ob der Fehler in der AMD-Hardware lag oder ein reines Software-Problem war?
 
@larsbo:
Danke daß Du den Link aktualisiert hast. Keine Ahnung, warum der alte nicht mehr geht.

David van der Spoel hatte später verraten (dürfen), welches die Ursache für die Probleme mit AMD CPUs war:
http://www.gromacs.org/pipermail/gmx-users/2004-March/009868.html

ZZt legt das GROMACS Team noch letzte Hand an den neuen x86_64 Assembly Code, den man in der CVS-Version testen kann. Man solle, was Performancezuwächse anbelangt, keine Wunder erwarten, aber wenigstens hat man dann endlich eine reine 64bit Version.
 
Aha, vielen Dank für die Info. Auch wenns ein unerheblicher bug ist, wäre es nett von AMD gewesen, wenn sie ihn in den Erratums eingebaut hätten. Das ist AFAIK zumindest für die AthlonXPs nicht erfolgt. Was die erratum-Politik angeht, scheint mir Intel weiterhin offener zu sein.
 
Da ich mittlerweile einen Athlon X² crunshen lasse, der ja auch SSE3 unterstützt, dachte ich daß dann auch (entsprechend dem, was in diesem FAQ steht) SSE3 oder zumindest SSE2 unterstützt wird, es erscheint aber immer nur "SSE Boost ok" und nicht wie hier beschrieben "SSE(2)/(3) Boost ok.
Hat das was zu bedeuten, arbeitet er wirklich nur mit SSE1 oder erwähnt der Client (2x Textclient 5.02) höhere SSE Versionen nicht?

Nights
 
Rechnest Du denn an einer WU, bei der SSE2/3 normalerweise genutzt wird, sofern vorhanden?
 
Rechnest Du denn an einer WU, bei der SSE2/3 normalerweise genutzt wird, sofern vorhanden?

Woran erkenne ich das (außer daran daß dann vermutlich SSE2 boost ok steht ;))?
 
Am Core.
  • Tinker nutzt gar nichts
  • Gromacs: SSE
  • DGromacs: SSE und SSE2 (letzteres nur falls vorhanden)
  • GBGromacs: *noahnung*, vermutlich mindestens SSE
  • Gromacs33: *noahnung*, vermutlich mindestens SSE
  • Amber: gar nichts, soll aber irgendwann mal SSE2 nutzen
  • QMD: SSE2
 
Am Core.
  • Tinker nutzt gar nichts
  • Gromacs: SSE
  • DGromacs: SSE2
  • GBGromacs: *noahnung*, vermutlich mindestens SSE
  • Gromacs33: *noahnung*, vermutlich mindestens SSE
  • Amber: gar nichts, soll aber irgendwann mal SSE2 nutzen
  • QMD: SSE2

Ok, danke, im Moment laufen zwei GROMACS Cores, kann man das irgendwie beeinflußen was man bekommt (wäre ja sinnvoll bei Vorhandensein auch SSE2/3 zu nutzen) oder kommt mit der nächsten WU sowieso wieder ein anderer Kern?
 
Man kann es zum Glück nicht beeinflussen, denn dann würde sich jeder die Rosinen rauspicken und bestimmte WUs, die für das Projekt genauso wichtig sind wie andere, bleiben liegen.
Ich nehme aber mal an, dass der Client dem Server meldet, was Dein Rechner so kann und der Server das nicht ganz unberücksichtigt lässt. Er wird sich z. B. hüten, einem Rechner ohne SSE eine WU zu geben, für die SSE nötig ist.
 
Alles klar, danke *great*
 
Zurück
Oben Unten