sp00n
Enthusiast
Thread Starter
- Mitglied seit
- 04.09.2012
- Beiträge
- 435
Über die letzten Tage bzw. Wochen habe ich mich näher mit dem Curve Optimizer bei Ryzen beschäftigt, hatte aber keine Möglichkeit gefunden, die Einstellungen vernünftig auf Stabilität zu testen. CineBench Singlethread lief eigentlich so gut wie immer durch, Prime95 mit Belastung auf allen Kernen war auch relativ einfach stabil zu bekommen. Auf Crashes im Idle zu warten oder in Spielen kam mir auch nicht so sinnvoll vor, und auf Reddit hatte jemand dann sogar von dem Windows Reparatur-Tool als gutem Stabilitätstest angefangen... das war mir dann doch zu blöd.
Also ist die Idee zu diesem Tool entstanden. Es ist ein PowerShell-Script, das eine Instanz von Prime95 startet und diese mit nur einem Worker Thread auf nur einem Kern laufen lässt. Und dieser Kern wird dann nach einer einstellbaren Zeit gewechselt, sodass man das Tool dann z.B. schön über Nacht laufen lassen kann und am nächsten Tag dann sieht, welche Kerne bisland einen Fehler verursacht haben.
Mittlerweile sieht es ganz gut für eine Veröffentlichung aus, wobei ich bisher der einzige bin, der das getestet hat, weitere Erfahrungsberichte wären also recht hilfreich.
Zu finden ist es hier:
https://github.com/sp00n/corecycler/releases
Zum Ausführen reicht ein Doppelklick auf "Run CoreCycler.bat".
Lest die beigefügte readme.txt und schaut euch die config.ini an, dort kann man ein paar Sachen ändern.
Screenshots des Scripts in Aktion:
Hier noch eine beispielhafte Auswertung, wie es bei mir ablief während der Entwicklung. Wie man sieht, braucht das ganze weiterhin seine Zeit (nein, die Auswertung wird nicht automatisch angelegt, das müsst ihr selbst machen ):
Ein Auszug aus der readme.txt:
Mit diesem kleinen Script kann man die Einstellungen des Curve Optimizer für jeden einzelnen Kern seiner CPU auf Stabilität überprüfen. Das Script startet Prime95 mit einem Worker-Thread und setzt die "Affinity" von Prime95 abwechselnd auf die einzelnen Kerne, d.h. es wird immer nur ein einziger Kern gleichzeitig belastet, wodurch sehr gut die Stabilität der Curve Optimizer Einstellung ausgetestet werden kann.
Die bisherigen Stabilitätstests mit PBO und dem Curve Optimizer waren entweder nicht zuverlässig (Cinebench, Windows Repair) oder mit sehr viel Arbeit verbunden (manuell die Affinity über den Task Manager setzen, warten, neu setzen, etc) oder gleich beides. Mit diesem Script braucht man eigentlich nur noch Zeit - davon allerdings doch recht viel. Da immer nur ein Kern gleichzeitig getestet werden kann, bräuchte man für einen 12 Stunden "Prime-stable" Stabilitätstest, wie man ihn bei normalen Overclocks gerne macht, bereits 12x12 = 144 Stunden bei einem 5900X. Bei einem 5600X mit seinen 6 physischen Kernen dann entsprechend "nur" 6x12 = 72 Stunden.
Solch ein All-Core Test mit Prime95 ist leider nicht effektiv mit dem Curve Optimizer, da die Kerne dann nicht so hoch takten können, und man so eventuelle Instabilitäten nicht erkennen kann. Bei meiner CPU konnte ich z.B. den Curve Optimizer auf -30 auf allen Kernen und +75 MHz Boost stellen und damit problemlos 24 Stunden Prime95 durchlaufen lassen,während ich bei diesem Einzeltest dann bei +0 MHz Boost einen der Kerne nur noch mit -9 stabil laufen lassen konnte (ein anderer dagegen lief auch beim Einzeltest noch mit -30 weiter).
Beim ersten Start des Scripts wird automatisch eine config.ini angelegt (die config.default.ini wird kopiert). In dieser kann man einige Parameter ändern, z.B. welcher Modus beim Testen ausgeführt wird (SSE, AVX, AVX2, CUSTOM, wobei SSE den höchsten Takt produziert, da es die CPU am wenigsten belastet), wie lange ein einzelner Kern getestet werden soll, bevor es zum nächsten geht, ob bestimmte Kerne ignoriert werden sollen, etc. Für jedes Setting ist in der Datei auch eine Beschreibung vorhanden.
Als Startpunkt am Anfang könnte man im Curve Optimizer jeden Kern auf z.B. auf -15 oder -20 setzen und dann schauen, welcher Kern durchläuft und welcher davon einen Fehler wirft. Die Kerne mit Fehler könnte man dann z.B. um 2 oder 3 Punkte nach oben setzen (also z.B. von -15 auf -13), die fehlerfreien dagegen 2 oder 3 weiter ins Negative (-15 auf -17). Ab einem gewissen Punkt kommt man aber nicht daran vorbei, nur noch um einen Punkt nach oben/unten zu korrigieren und das Tool sehr lange laufen zu lassen, um auch die letzten Instabilitäten herauszufiltern.
Es ist übrigens beabsichtigt, dass bei aktiviertem Hyperthreading / SMT nur der erste Thread eines jeden Kerns belastet wird, da dabei ein höherer Takt erreicht wird, wie wenn beide (virtuellen) Threads eines Kerns belastet würden. Man kann in der config.ini allerdings auch die Anzahl der Threads auf 2 setzen, wenn man das möchte, dann werden beide belastet.
Also ist die Idee zu diesem Tool entstanden. Es ist ein PowerShell-Script, das eine Instanz von Prime95 startet und diese mit nur einem Worker Thread auf nur einem Kern laufen lässt. Und dieser Kern wird dann nach einer einstellbaren Zeit gewechselt, sodass man das Tool dann z.B. schön über Nacht laufen lassen kann und am nächsten Tag dann sieht, welche Kerne bisland einen Fehler verursacht haben.
Mittlerweile sieht es ganz gut für eine Veröffentlichung aus, wobei ich bisher der einzige bin, der das getestet hat, weitere Erfahrungsberichte wären also recht hilfreich.
Zu finden ist es hier:
https://github.com/sp00n/corecycler/releases
Zum Ausführen reicht ein Doppelklick auf "Run CoreCycler.bat".
Lest die beigefügte readme.txt und schaut euch die config.ini an, dort kann man ein paar Sachen ändern.
Screenshots des Scripts in Aktion:
Hier noch eine beispielhafte Auswertung, wie es bei mir ablief während der Entwicklung. Wie man sieht, braucht das ganze weiterhin seine Zeit (nein, die Auswertung wird nicht automatisch angelegt, das müsst ihr selbst machen ):
Ein Auszug aus der readme.txt:
Mit diesem kleinen Script kann man die Einstellungen des Curve Optimizer für jeden einzelnen Kern seiner CPU auf Stabilität überprüfen. Das Script startet Prime95 mit einem Worker-Thread und setzt die "Affinity" von Prime95 abwechselnd auf die einzelnen Kerne, d.h. es wird immer nur ein einziger Kern gleichzeitig belastet, wodurch sehr gut die Stabilität der Curve Optimizer Einstellung ausgetestet werden kann.
Die bisherigen Stabilitätstests mit PBO und dem Curve Optimizer waren entweder nicht zuverlässig (Cinebench, Windows Repair) oder mit sehr viel Arbeit verbunden (manuell die Affinity über den Task Manager setzen, warten, neu setzen, etc) oder gleich beides. Mit diesem Script braucht man eigentlich nur noch Zeit - davon allerdings doch recht viel. Da immer nur ein Kern gleichzeitig getestet werden kann, bräuchte man für einen 12 Stunden "Prime-stable" Stabilitätstest, wie man ihn bei normalen Overclocks gerne macht, bereits 12x12 = 144 Stunden bei einem 5900X. Bei einem 5600X mit seinen 6 physischen Kernen dann entsprechend "nur" 6x12 = 72 Stunden.
Solch ein All-Core Test mit Prime95 ist leider nicht effektiv mit dem Curve Optimizer, da die Kerne dann nicht so hoch takten können, und man so eventuelle Instabilitäten nicht erkennen kann. Bei meiner CPU konnte ich z.B. den Curve Optimizer auf -30 auf allen Kernen und +75 MHz Boost stellen und damit problemlos 24 Stunden Prime95 durchlaufen lassen,während ich bei diesem Einzeltest dann bei +0 MHz Boost einen der Kerne nur noch mit -9 stabil laufen lassen konnte (ein anderer dagegen lief auch beim Einzeltest noch mit -30 weiter).
Beim ersten Start des Scripts wird automatisch eine config.ini angelegt (die config.default.ini wird kopiert). In dieser kann man einige Parameter ändern, z.B. welcher Modus beim Testen ausgeführt wird (SSE, AVX, AVX2, CUSTOM, wobei SSE den höchsten Takt produziert, da es die CPU am wenigsten belastet), wie lange ein einzelner Kern getestet werden soll, bevor es zum nächsten geht, ob bestimmte Kerne ignoriert werden sollen, etc. Für jedes Setting ist in der Datei auch eine Beschreibung vorhanden.
Als Startpunkt am Anfang könnte man im Curve Optimizer jeden Kern auf z.B. auf -15 oder -20 setzen und dann schauen, welcher Kern durchläuft und welcher davon einen Fehler wirft. Die Kerne mit Fehler könnte man dann z.B. um 2 oder 3 Punkte nach oben setzen (also z.B. von -15 auf -13), die fehlerfreien dagegen 2 oder 3 weiter ins Negative (-15 auf -17). Ab einem gewissen Punkt kommt man aber nicht daran vorbei, nur noch um einen Punkt nach oben/unten zu korrigieren und das Tool sehr lange laufen zu lassen, um auch die letzten Instabilitäten herauszufiltern.
Es ist übrigens beabsichtigt, dass bei aktiviertem Hyperthreading / SMT nur der erste Thread eines jeden Kerns belastet wird, da dabei ein höherer Takt erreicht wird, wie wenn beide (virtuellen) Threads eines Kerns belastet würden. Man kann in der config.ini allerdings auch die Anzahl der Threads auf 2 setzen, wenn man das möchte, dann werden beide belastet.