AMD Frequency Curve Optimizer Rev. 2.1
Disclaimer:
De info hieronder beschreven is mijn persoonlijk analyse en observatie betreft het Zen 3 Curve Optimizer proces. In geen enkel geval beweer ik een AMD engineer te zijn of de almachtige alwetende Zen 3 guru. Deze info is om mensen op weg te helpen die de bomen door het bos niet kunnen zien. Behandel deze info alsjeblieft zodanig. Ook houdt ik mij niet verantwoordelijk voor eventuele schade door jezelf toegebracht aan je hardware. Al is het process hieronder beschreven zo veilig als AMD en de moederbord fabrikanten het toestaan.
Korte inleiding
Betreffende het Zen 3 (ook Zen 2) boost proces. Het algoritme voor boosten checkt temperatuur en voltage en past daarop de frequentie aan simpel gezegd. Als temperatuur laag genoeg is laat de chip voldoende voltage toe om de hoogst mogelijke frequentie te boosten bij die waarden. Dit moet allen wel binnen het power budget liggen. Deze waarden zijn opgeslagen in een tabel die uiteraard een grafiek kan vormen. Deze grafiek en waarden kunnen wij nu aanpassen per CPU zodat deze waarden beter aansluiten bij de kwaliteit van het silicium. Voor degenen die bekend zijn met Afterburner en de Voltage Curve Editor begrijpen al beter wat dit allemaal inhoudt.
Wat is PBO2?:
Ik ga hier niet het wiel opnieuw uitvinden en laat AMD het uitleggen:
Ik neem hier even de 5800X ter referentie. Welke een officiële boost van 4.7Ghz heeft op de doos maar praktische gezien gelimiteerd is tot 4.85Ghz in de bios. Met voldoende koeling zal de chip relatief eenvoudig tot 4850Mhz boosten en met mijn custom loop gebeurt dit dan ook stabiel. Met PBO2 kunnen we deze limiet aanpassen en met de Curve Optimizer kunnen praktisch gezien hogere frequenties halen met lagere voltages mits goed ge-tuned.
Wat we dus willen is de tabellen en grafiek aanpassen zodat de processor akkoord krijgt om hoger in de grafiek te gaan betreft frequentie en hopelijk daarbij een lager voltage te gebruiken. De bios geeft geen optie om de temperatuur waarden aan te passen dus als wij de processor hoger laten boosten met meer voltage kan dit leiden tot hogere groter stroomverbruik en hogere temperaturen en dus weer een lagere frequentie als resultaat. Het is belangrijk om dit verband te begrijpen voor we verder gaan.
Maar bij Zen 1/+/2 deden we dat zo en dat werkte prima?
Bij Zen 2 moest je dus kiezen tussen
allcore (of per CCX)
OC of
stock boosting (of auto boosting met negatieve offset). Deze methoden waren helaas verre van perfect. Stock boosting gebruikt vaak te veel voltage en is niet erg efficiënt en allcore OC is vaak efficiënter maar limiteert de processor om boven de gezette frequentie uit te boosten en dus piekprestaties worden opgeoffert. Een 3e optie is om stock boosting een negatief voltage offset mee te geven voor alle cores. Dit heeft als voordeel dat multicore loads minder stroom verbruiken en dit vaak gepaard gaat met kleine frequentie verhoging tijdens die loads, maar ook bij deze methode zal het boost algoritme ingrijpen bij lichtere piek loads (gaming etc) omdat er te weinig voltage beschikbaar is voor die piek frequenties en het algoritme zal ALTIJD stabiliteit boven prestaties verkiezen en dus ook dan de boost frequentie weer afknippen. Al deze methoden kwamen dus met negatieve effecten.
PBO2 + Curve Optimizer
Nu hoef je dus niet meer te kiezen. Via deze methode kan je beiden allcore frequentie als boost frequentie verhogen doordat je het voltage verlaagt per core individueel en de processor dus toestaat hoger te boosten in beide load situaties. Efficiëntie EN piekprestaties.
Hoe werkt de Curve Optimizer voor Zen 3?
Zoals ik in de inleiding kort vermelde, is de curve optimizer te vergelijken met de Voltage Curve Optimizer uit Afterburner je verplaatst de grafiek over de assen zodat er minder voltage gevraagd wordt bij hogere frequenties en andersom. Je kan bijvoorbeeld de maximale boost frequentie gelijk houden en de curve bijstellen dat er bij diezelfde frequenties minder voltage verbruikt wordt ten dus minder stroom. En zoals we uit de AMD video hebben kunnen leren dat minder stroom verbruik leidt tot langere en hogere boosts (binnen die maximale boost frequentie). Maar we kunnen ook de maximale boost frequentie een surplus geven nu (aangeraden + 0-200 Mhz afhankelijk van chip kwaliteit). Dan zal dus de hele grafiek verschuiven en zal je dus voltage moeten weghalen ter compensatie om weer binnen je algehele powerbudget te blijven. Als dit een beetje te verwarrend klinkt, dan snap ik dat. Het beste zou zijn om dit te visualiseren met een paar grafiekjes maar omdat ik zelf ook niet 100% zeker ben hoe het boost algoritme werkt is de kans groot dat ik hier nonsens grafiekjes post. Als laatste maar niet onbelangrijk is temperatuur. Lagere temperatuur leidt to betere elektrische gedragingen. Bij lagere temperatuur (minder weerstand in de geleiders) is er minder voltage nodig om een bepaalde frequentie stabiel te houden en dus minder stroomverbruik, meer powerbudget etc etc etc.
De curve optimizer staat ons toe om voltage weg te halen voor frequentie per core in units. Deze units gaan tot -30 in de bios settings. Voorheen heeft AMD in een blog post uitgelegd dat 1 unit voor 6 mV bij multicore loads en 3 mV bij single core loads zou staan, maar ik ben er vrij zeker van dat deze info inmiddels achterhaald is en 1 unit nu voor andere waarden staat. Wat belangrijk is om te begrijpen is dat het meer voltage weghaalt bij zware multicore loads (en dus minder van het powerbudget gebruikt en minder hitte produceert) en minder voltage bij die kortstondige pieken zodat deze hoge frequentie pieken stabiel blijven.
Kort samengevat:
- Powerbudget - mengelmoes van ampères en wattage
- Voltage - voltage gebruikt voor de frequentie in de grafiek
- Frequentie - toegestane frequentie binnen power budget en behorend bij het toegestane voltage
- Temperatuur – lager is beter voor stabiliteit en efficiëntie end us hogere frequenties en dus hogere prestaties.
Deze 4 hoofdpunten bepalen de prestaties het boost algoritme van onze processoren. En het boost algoritme is veelal globaal afgesteld zodat alle gradaties van chipkwaliteit die bij de consument belanden stabiel draaien bij fabrieksinstellingen. Nu is niet elke chip gelijk in kwaliteit en zijn die marges vaak ruim genomen om stabiliteit bij de consument te waarborgen. Hier kunnen we dus winst boeken door per core met de curve optimizer te bepalen hoeveel voltage per core minimaal nodig is voor bepaalde frequenties. Meer voltage weghalen bij lager geklokte multicore loads. Minder bij hoger geklokte piek loads.
Veel voorkomende misverstanden
Voordat we met de Curve Optimizer aan de slag gaan wil ik eerst wat veel voorkomende misverstanden uit de weg helpen.
- De Curve Optimizer verlaagt stroomverbruik en dus temperaturen - Nee. De Curve Optimizer verhoogt de frequentie bij een bepaald voltage of andersom. Temperaturen zijn afhankelijk van het stroomverbruik welke geregeld worden met de PBO Limieten. Het fine-tunen van de Curve Optimizer zal de cores dichter bij hun optimale frequentie vs voltage brengen en binnen het powerbudget zullen deze cores dus hoger in frequentie boosten dan voorheen mits het powerbudget en de temperaturen dit toestaan binnen het algoritme. De temperaturen zullen nagenoeg gelijk blijven.Let wel op, dat bij het activeren van PBO: Advanced, de PBO Limieten automatisch worden veruimd en dit dus WEL voor meer stroomverbruik en dus hitte zorgt. Dit is niet het werk van de Curve Optimizer, maar komt voort uit het veruimen van de PBO limieten. Dit kan eenvoudig ongedaan gemaakt worden door PBO Limits: Disabled in te stellen. Dan zal de curve optimizer puur en alleen het stock boosting algoritme verbeteren binnen hetzelfde power budget.
- PBO Limieten unlocken zorgt altijd voor betere performance - Nee. Veelal bij onvoldoende of matige koeling. Denk aan kleine SFX builds of kleinere luchtkoelers zal de temperatuur te hoog oplopen als het powerbudget niet gecontroleerd wordt met de PBO limieten en dit zal op zijn beurt het algortime weer aansturen tot juist het verlagen van de kloksnelheden en dus performance. Het kan soms juist voordelig zijn voor de prestaties om het powerbudget meer te limiteren doormiddel van de PBO limieten te verlagen. Dit resulteert in lager stroomverbruik en lagere temperaturen en dus meer headroom voor hogere frequenties, mits genoeg voltage om stabiel te blijven.
Hoe te Curve Optimizeren?
1. Software
We hebben het volgende nodig:2. Baseline Analyse
Voor we starten moeten we zorgen dat alles goed staat ingesteld in de bios en we zullen een baseline moeten creëren van uit waar we gaan meten en tweaken. Ook moeten we zeker zijn dat de baseline stabiel is voor we aan de slag gaan.
Bios:- CPU Vcore voltage: AUTO!!! (We willen het algoritme zijn werk laten doen).
- LLC Auto of 1 stapje (MSI LLC8 bijv. Is anders voor andere merken.) Hele lichte LLC kan helpen met iets hogere multicore boosts. Te hoog zorgt voor performance degradatie door overschrijden powerbudget.
- PBO: Auto
- Geheugen: XMP of handmatige tune en TESTEN op stabiliteit voordat we aan de slag gaan!
Dit is een algemene guide voor de curve optimizer maar de waardes van de units zullen per processor SKU en sample verschillen! Dit zal je dus zelf moeten uitvinden. 5950X is al strakker geoptimaliseerd dan de 5900X bijvoorbeeld en zal dus minder hoge negatieve offset accepteren dan de 5900X.
3. Baseline test
CB R20/R23 + HWINFO – Draai beiden CB multicore en single core tests en voor de multicore tests registreer je de EFFECTIEVE frequenties tijdens de test en temperatuur etc. Voor de Single core test doe je hetzelfde voor de hoogst boostende cores, maar je registreerd ook welk cores gebruikt worden voor deze test. Dit zijn je preffered cores. En deze cores zullen we iets anders tunen dan de rest. Registreer ook de scores uiteraard. Je kan ook nog een CPU-Z draaien ter verificatie. Besef wel dat CPU-Z SC alleen op core #0 draait en als dit niet je sterkste core is dan zal je niet zo hoog komen als wanneer dit wel het geval is. CB R20/R23 is je graadmeter hier. Ook zal je met CPU-Z een uitdraai van je APIC IDs moeten maken. Deze heb je later nodig voor troubleshooting. Dit doe je zo:
4. Curve Optimizer stappen:
Tips voor we beginnen. Gebruik OC-menu van je bios. Gebruik niet beide AMD Overclocking en Moederbord OC menu tegelijk. Dit zal vreemde effecten creëren en laat instellingen plakken of ongedaan maken. Eerste stap is PBO: Advanced
Process:
- Frequency Override +0
- Negative offset per core
- Testen op stabiliteit en performance
- Bijstellen
- Opnieuw testen
- Frequency Override omhoog
- PBO Limieten
1. Frequency override: Deze instelling bepaald de Maximale boost frequentie en deze waarde zal de hele grafiek verschuiven en vereist compleet nieuwe stabilisatie test rondes voor de negatieve offset per core. Laat deze eerst op +0 staan. Hier zullen we later mee spelen voor beter single core performance.
2. Negative offset per core: We willen per core een negatieve voltage offset instellen zodat elke core zo dicht mogelijk bij het minimale voltage voor de bepaalde frequentie kan komen zonder instabiel te worden. De stabiliteit zullen we dus bij elke aanpassing moeten verifiëren. De snelste cores (degenen die je geregistreerd hebt tijdens de baseline test) zullen een lagere offset moeten meekrijgen dan de rest. Deze cores zullen constant door Windows worden aangesproken voor piek loads bij hoge frequenties en instabiel worden als deze niet genoeg voltage krijgen. De overige cores kunnen meer offset meekrijgen, omdat deze vrijwel alleen bij lagere frequenties worden belast bij zwaardere all core loads. En hogere offset betekent minder voltage, betekent minder powerbudget gebruik, betekent hogere/langere boost etc etc.
Voor mijn processor is dit 100% stabiel gebleken voor +0 Mhz Frequency Override:
Voor jouw processor zal dit anders zijn en je zal dus moeten testen en verifieren per aanpassing.
Als beginwaarden voor een 5900X zou ik -30 op alle cores gooien behalve de snelste cores. Deze eerder rond -14. Dit is lager voor 5950X en 5800X over het algemeen. Ik heb nog niet weer getest met mijn 5800X sinds Agesa 1.2.0.0 en heb zelf geen 5950X en kan hier dus niks zinnigs over zeggen.
Wat je kan doen als baseline voor elke processor is override +0 en -20 voor alle cores en dan beginnen met testen.
3. Testen op stabiliteit en performance: We zullen nu moeten kijken of wat we ingesteld hebben stabiel is. Ik gebruik hiervoor Y-Cruncher. Opties 1 – 8 – 16 – 0. Als dit helemaal niet boot. Dan 2 snelste cores de negatieve offset omlaag. Crasht het tijdens Y-Cruncher dan zal je de computer opnieuw moeten laten booten en als je weer in Windows beland bent in de zoekbalk zoeken naar Event Viewer -> Windows Logs -> System -> WHEA (rode icoontje) -> Checken voor APIC ID. Nu kan je dat APIC ID vergelijken met de CPU-Z lijst die je eerder hebt gemaakt en weet je dus precies welke core instabiel (voltage uitgehongerd) was.
Je kan hier ook
OCCT gebruiken en per core testen. Om zeker te zijn dat je settings stabiel zijn per core. Dit doe je zo:
4. Bijstellen: We moeten nu de negatieve offset voor die core verlagen (haal er 2 vanaf in bios) en opnieuw testen. Mocht je nou stabiel zijn dan kan je uiteraard de waarden ook verhogen (in het bijzonder voor de overige cores) tot je tegen instabiliteit aanloopt.
5. Opnieuw testen: Dit proces blijf je herhalen tot je 100% stabiel bent met Y-Cruncher voor minimaal 15-20 minuten. Dan kan je gaan performance testen. CB R20/R23 en met HWINFO de resultaten vergelijken met temperaturen en frequenties om te kijken of je het gewenste resultaat hebt behaald.
6. Frequency Override omhoog: Nu kan je met de Frequency override gaan spelen. Ik zou beginnen met +50 en dan opnieuw testen met Y-Cruncher en verifieren met CB R20/R23 SC test of je daadwerkelijk meer single core performance krijgt. Je zal op een bepaald punt komen dat je niet meer performance krijgt ondanks het verhogen van de frequency override. Dit is omdat je niet meer voltage van de grafiek af kan halen zonder instabiel te worden. Voor mij heeft het compleet geen zin om boven +125 Mhz uit te gaan. En op een bepaald punt zal het algoritme gewoon niet meer boost toestaan omdat het buiten de uiterste limieten gaat. Je krijg dan vreemde fluctuerende resultaten hit or miss. Aangeraden is om stap terug te doen en de gierigheid thuis te laten haha.
7. PBO Limieten: Als laatste kan je met PBO limieten spelen om minder of meer power budget toe te staan. Dit is zeer geschikt voor mindere koeling in kleine cases bijvoorbeeld. Dit zal je wel weer opnieuw moeten verifieren op stabiliteit uiteraard. Je kan de PPT/TDC/EDC limiteren icm. de Curve Optimizer om het power budget wat te verlagen. De optie 'PBO Limits' past EDC A aan. Voor 5900X is dit PBO limits: AUTO = 200A, Motherboard (MSI = 220A), Disabled = 140A. Voor 5800X werkt het allemaal net even anders. Als dat Disabled 140A EDC heeft en Auto 130A en Motherboard gaat zelfs to 157A maar verbruikt minder stroom bij AVX2 loads. Hier kan je zelf mee experimenteren.
Ik raad persoonlijk af om handmatige limieten te zetten omdat deze soms bugged zijn en de processor vaak in 140A of oneindig lockt (voor mijn MSI bord). Maar voel vrij om te experimenteren zolang je verifieert op stabiliteit als omschreven en houdt een oog op HWINFO hoe het stroomverbruik zich gedraagd bij het aanpassen van deze limieten. Er zijn verscheidene leden hier die goede successen hebben ge boekt met het handmatig instellen van deze limieten.
Uiteindelijk zou ik aanraden om met een diverse selectie van apps, games etc de prestaties en stabiliteit te verifieren. Denk aan OCCT, 3DMark TimeSpy etc.
Voorbeelden [Work in Progress]:
Hier zal ik meerdere resultaten posten bij verschillende settings. Omdat dit verschrikkelijk veel werk is om allemaal te loggen en ik bijna alles opnieuw moet doen voor Agesa 1.2.0.0 zal dit stapsgewijs gebeuren.
Hier alvast mijn top scores zover met PBO2+CO:
Stock:
PBO2+CO+125Mhz
Ik zal ook settings posten voor juist minder verbruik en minder hitte en proberen te laten zien wat verscheidene settings doen voor temps en perf. Wordt vervolgd.
Nawoord
Er is geen one-fits-all tutorial, maar ik hoop dat ik hierboven genoeg heb omschrijven om het proces beter te begrijpen en hoe te troubleshooten (APIC ID) bij instabiliteit.
Per systeem zal het verschillend zijn met chipkwaliteit, koeling, moederbord etc, maar hier hebben jullie wat rightlijnen. Je kan bepaalde aspecten ook aanpassen naar smaak, zoals andere software, andere tuning doelen (hitte/stroomverbruik, prestaties etc).
Ik zal deze guide later nog wat fine-tunen. Ben er vrij zeker van dat ik momenteel wat dingen over het hoofd heb gezien of niet heb vermeld of dubbel heb vermeld. Er zijn zoveel details die ik wil delen, maar moet afwegen of dit de grote richtlijnen niet verwarren voor beginners. Voel je vrij om me te verbeteren of tips om info toe te voegen. Zal ik ten zeerste kunnnen waarderen. Ik hoop dit een startpunt te kunnen maken voor beginners en iets meer geadvanceerde users.
[
Voor 22% gewijzigd door
Cidious op 28-02-2021 18:09
]