AMD RED BIOS EDITOR und MorePowerTool - BIOS-Einträge anpassen, optimieren und noch stabiler übertakten | Navi unlimited

Model 3 is undocumented,
I mean navi 23 has pptable is similar to your xtxhk. Both has per-part voltages and corresponding transfer func. set, unlike my 6800xt, where they are all zeroed. All three tables has Clock Source set to DFLL, btw.

All off this lets me assume navi23 and newer (khtxtx or whatever that market. bulls**t names are) uses kind of per-part piece-wise non-linear model. Have no idea, what the exact term is.
 
Can I ask you for some "feature request" in the MoreClockTool, namely these two reg entries to control FRTC:

Anhang anzeigen 20150

Thanks!
I will look into it. So far i know that the ADL only supports a 32bit REG_Binary to be written. I could of course use the WinAPI, but maybe this also brings back the need for admin rights. Currently i am working on the stuff you find under "settings" in AMD software, Freesync, Virtual Resolution, Chill, etc. I also don't know about Smart Access, but found something called SmartDC, don't know if it is the same or something completely different.
 
Zumal ich fast nur noch Linux Nutze, hier etwas experimentiere und nicht immer Lust habe mich mit der Software (corectrl) zu beschäftigen
https://github.com/azeam/powerupp GUI for UPP
Sollte gut mit corectrl funktionieren
Ist nur für die PPTable , also quasy MPT

Kennt jemand seinen aktuellen Nic ?
BFz4mcs.png
@datspike existiert nicht nvm, igorslab findet nur nichts
Ich bräuchte deine Hilfe solltest du Navi1x Curve helper noch in Entwicklung haben
Herausgefunden wie man damit für 2x arbeitet, Fork wäre möglich aber erstmal den Hauptdev kontaktieren
I might need your help if you still maintain your Navi-Curve-Helper Project
Got it down for Navi2x. Friend could fork it and continue, but pinging you first ~ in-case you still want to maintain it.
 
Zuletzt bearbeitet :
@Veii vielen Dank für den Tipp. Gerade ausprobiert. Leichter zu installieren als corectrl und mehr Möglichkeiten. Super!

Jetzt frage ich mich allerdings ob man die Spannung von VRam und SoC nicht auch etwas senken kann.

Edit: PPU scheint doch komplexer und für manche änderungen sind auch die gleichen anpassungen wie bei CoreCTRL nötig, somit nicht leichter zu installieren aber immer noch mehr Möglichkeiten. Muss sehen bei welcher Lösung ich hängen bleibe.
 
Zuletzt bearbeitet :
PPU scheint doch komplexer und für manche änderungen sind auch die gleichen anpassungen wie bei CoreCTRL nötig, somit nicht leichter zu installieren aber immer noch mehr Möglichkeiten. Muss sehen bei welcher Lösung ich hängen bleibe.
Fals du UPP meinst
Es ist ein Powerplay Table editor
und das andere ist Wattman

Man verwendet Grundsätzlich beides, aber es scheint dass in den letzten Updates ~ pptablefeaturemask override komplett entfällt
PowerUPP sollte Zugriff auf memDPM sowie VDDCI & MemVDD haben.

Ich habe hier noch einen Korrekturpost zu schreiben zum letzten Post, aber @hellm
(nearly) all HEX locations of PPTable.
Please add (Per Part Quadratic Curvature) ~ it should be called (Per Voltage, Quadratic Powerstate) or so.
"Part" is a bit misleading

A = AXIS
B = Vertex Point
C = Constant

And potentially add SocketPowerLimit1 , as PPT1 (FUSE LIMIT) ~ for XOC people
Attached is Readable, and Location-Raw ~ personal config, WIP
Locations add up for all cards.
6800XT misses PerPart tables, soo "doesn't work" out of stock, but little group got it to work on bios changes and/or pptable changes

@PJVol would you know what DC/AC Tau limits stand for ?
It's not tolerance over time, but i think it's similar ? Hold time maybe ??
 

Anhänge

  • 6950XT_V_Dump-Raw.txt
    65,3 KB · Aufrufe : 4
  • 6850XT-V_Dump.pp_table.txt
    2,4 KB · Aufrufe : 4
  • 6950XT_V_Dump-Readable.txt
    24,9 KB · Aufrufe : 3
Zuletzt bearbeitet :
Ja, seh ich mir an, sobald ich Zeit finde.

habe auch dieses enum gefunden:
Code :
typedef enum {
  PIECEWISE_LINEAR_FUSED_MODEL = 0,
  PIECEWISE_LINEAR_PP_MODEL,
  QUADRATIC_PP_MODEL,
  PERPART_PIECEWISE_LINEAR_PP_MODEL, 
} DfllDroopModelSelect_e;
 
Ja, seh ich mir an, sobald ich Zeit finde.
Mal schauen
Du solltest in den TXT files alle HEX locations haben welche du brauchst, sowie das selbe übersetzt im AMD naming scheme für den Zwischenvergleich
XOC Leute hätten gerne PerPart curvatures (per-voltage per powerstate quadratic).
Die PW-Linear ist zu unikat und per ASIC % generiert (Vdroop @ Freq points on pre build curve by LgkID).

Die per Powerstate (Part) hat weniger Probleme und fokusiert sich auf X-Voltage Point.
Somit mehr Spielraum zwischen den Karten. Ebenfalls transplantierbar von 6750 auf 6700 zb.
AjZPfTX.png
 
Zuletzt bearbeitet :
Powerstates gibts doch seit der VII nicht mehr? Die Abkürzung PP steht scheinbar für PowerPlay Table:
//0 -> fused piece-wise model, 1 -> piece-wise linear(PPTable), 2 -> quadratic model(PPTable)
Dann gibts noch das hier;
Code :
#define NUM_PIECE_WISE_LINEAR_DROOP_MODEL_VF_POINTS 5
DroopInt_t     PerPartDroopModelGfxDfll[NUM_PIECE_WISE_LINEAR_DROOP_MODEL_VF_POINTS]; //GHz ->Vstore in IEEE float format
das sind scheinbar Voltage/Frequency Points, keine echten States, aber ist vermutlich egal.
Ebenso, das wurde später eingefügt (statt eines Paddings):
Code :
uint16_t       PerPartDroopVsetGfxDfll[NUM_PIECE_WISE_LINEAR_DROOP_MODEL_VF_POINTS];  //In mV(Q2)
Das willst du vermutlich alles drin haben?

Das SocketPowerLimit, werde ich mir auch etwas einfallen lassen, die Tau-Werte sind auch nicht mehr genullt. Ich werde mir auch das mal ansehn, bin aber mit meiner Zeit echt knapp, werde sehen ob ich das morgen hinbekomme, wenn nicht musst du noch eine Woche warten. MCT liegt bis dahin weiterhin auf Eis..

Update:
@Veii @all
So, erster Teil ist mit v1.3.16 online, siehe "More" Tab. Hab erst die Powerlimits inkl Tau-Settings gemacht, PerPart-Zeugs kommt dann in ner Woche, bin sonst nur am arbeiten..
 
Zuletzt bearbeitet :
Hab mal spassenshalber das PL um 5W runtergesetzt und Tau=999ms.
PT0 wird aber nicht für die Zeit tau überschritten, wie man Das z.Bsp. bei ner CPU erwarten würde.

Wäre nun die Frage, ob PT0 jetzt auf die Zeit Tau begrenzt ist und man für >tau dann weniger PL hat, und
wieviel W weniger Das dann sind!?
 
..oder ob Tau überhaupt veränderbar ist in der Hardware der nicht-6950er. Der Controller sollte identisch sein, aber ob die Physik dahinter das abkann weiß ich nicht. Im Idealfall natürlich nur ein Register im Controller, aber wie gesagt, keine Ahnung. Dein Test scheint eher darauf hinzudeuten, dass diese Werte für die meisten User bedeutungslos bleiben.

Deswegen habe ich das auch in den "More"-Tab gepackt, um keine weitere Verwirrung zu stiften. Nur bei einem geringen Teil der Karten sind diese Werte überhaupt gesetzt, bei den meisten werden die genullt sein.

Und was ein PPT1 von 1200W soll (6950XT), weiß ich auch nicht. Aber es ist nun veränderbar.
 
bzgl.
piecewise@linear bleibe ich erstmal bei der ursprünglichen Annahme, das die LD-Volts zzgl. minGFX-Volt einen simplen Voltsummary ergeben,
der z.Bsp. mit Fps-Limit dann für droopende Takte genutzt wird.(... sprich nach m.E. kein Voltdroop als negativer Offset)

... durch den aktuellen Voltcap liegt das Plateau jetzt bei mir ungefähr bei 876,x mV, was natürlich net für 2600MHz reichen tät, aber für
WM 2263MHz passt. Je nach Erfordernis wechselt der Takt/V dann ganz gut zw. den LD-States.
 

Anhänge

  • LDvsMPTvsWM-Clocks_Volts.jpg
    LDvsMPTvsWM-Clocks_Volts.jpg
    111,8 KB · Aufrufe : 25
  • PlateauVolts in Gravity@Voltcap893mV.jpg
    PlateauVolts in [email protected]
    325,8 KB · Aufrufe : 19
Zuletzt bearbeitet :
Komplett anders @hellm
0,1,2,3 (Per Part quadratic)

PW-Linear setzt fixe Frequency-Points als Variablen, und mittels dessen senkt es die Curve auf X Spannung.
Zwar geht es recht dezent damit zu Arbeiten, bzw alle der 5 Freq-Points zusammen beinflussen die Gesammthöhe der Kurve.
Es ist eine Linear Curve und pro Karte ein Unikat ~ bezüglich LkgID

Die "Per-Part Quadratic" ist sehr ähnlich zur Oberen, nur dass es Voltage Islands zwischen diesen gibt
1662882714743.png
Ah jetzt wo die Katze schon aus dem Sack ist, darf ich auch darüber für andere Projekte reden. Ebenfalls weil ich darin mitarbeite
Es sieht folgendermaßen aus:

Von 0 bis zu deiner GFX V-MIN ist die ULV bzw Powerstate-State Zero oder Part-Zero state
Die Anfangs Curvature dessen VertexPoint (B) liegt etwa bei der Mitte der Start-, Zwischenfrequenz;
oder/aber kann genau so gut das Ende dieser heißen. Das selbe für P4
D.h. ~ Entweder man nehme eine Linear Quadratic Curve ohne droop past Vertex Point. // welches gut für P4 oder P0 funktioniert
brave_yOizPsn5Vp.gif
oder man setze auf schwächerer Curvature, und flicked diese zusammen.
Grundsätzlich mache man das so oder so, aber würde wenn dann eine positive Axis fürs Ende (P4) und eine Negative für den Start (P0) nehmen.

Sagen wir mal 1600MHz bis etwa 850mV // von 750-850mV , alternative nahe 1100 ab 750mV
Sowie nahe 2350MHz für die 1050mV+ State (P3)
Die P1, sollte P0 wie fast meistens bei den Karten übersprungen worden sein
(bekomme es soweit nicht unter 772mV stable mit 2 Monitoren)
eoMAFS2.png

wird als erste P-State benützt. Und alles darunter sei UltaLowVoltage & LongIdleVmin (deep ULV)
P1-P3 gehe dann Hand in Hand wie bei dem Beispiel abzulesen und könnte sich mit GUI oder besseren Tool auch automatisieren lassen
(suche weiterhin Developer dafür, aber ab dem nächsten Monat ist die Frage ebenso gelöst)

Was ich gerne hätte,
wäre die Möglichkeit nicht nur auf Hydra abhängig zu sein, um die Werte welche ich dir gab, nun als GUI ändern zu können.
Ansonnsten sehe ich keine Möglichkeit außer das selber über HEX zu machen oder auf anderes zurückzugreifen.
Ich ladete dir alles hoch was du brauchen könntest :) Naja, bis auf "was" die Voltage Straps bei PP-PW-Linear definert.
Credit gehe an Yuri Bubliy & Samir Ibradžić ~ letzteres welcher für die PPTable und den UPP decoder Zuständig ist.

Meine Arbeit war/ist ehmalig beide zu verbinden, und aktuell die Curves der Karten herzurichten.
Eine Reduction von 150W bzw das gegensteuern von Driver Boost limits ~ ist das Ergebniss.
Mehr dazu aber später~

Im grundegenommen, brauchen wir Overclocker Zugriff auf die Standartmäßig verwendete Curvature der Karten. Die PP-PW-Linear
Und da Intel Nutzer kein Hydra nützen können, bzw ich Progress möchte ~ gab ich dir alles was du dafür brauchen könntest.
Hex location und official-naming scheme
habe auch dieses enum gefunden:
brave_0Hh2GcKifM.png

Ein vereinfachter Post über Curvatures, sowie Korrekturpost vom ehmaligen falsch aufgefassten Blödsinn
Komme später :)

Weiterhin keine Information zu LkgID, aber das gute an PP-PW-Quadratic ist, dass es wenig Wert auf die generierte Curve legt
Da der Focus Voltage Transition-Points sind.
Und eine Quadratic Curvature, ist eine feinere Magnitude-Increasing Curve :giggle: sowie nicht SVI2.0 bottleneck folgend
Quasy ist es gleichgültig wie tief/hoch anfangs die Curve ist, nun fast.
Das einfachste bleibe weiterhin eine PLL Änderung ins Positive StaticVoltageOffset. Dieser setze nach der Curve ein.
 
Code :
uint16_t PerPartDroopVsetGfxDfll[NUM_PIECE_WISE_LINEAR_DROOP_MODEL_VF_POINTS]; //In mV(Q2)
Das willst du vermutlich alles drin haben?
Potentiel :)
Ich weiß nicht ob das unter 750mV Anschägt
Ich bin zwar mit eigenen KXTX inspirierten Kurven auf einer XTXH
Sowie sind die Guardband limits vom KXTX (bios)

Aber erst nachdem ich unter 800mV erlaubte - inklusive im VMIN
Und die ehmalig broken (mit Absicht ?) 750mV P0 richtete, hocke ich gerade auf 772mV im low idle
Ich müsste noch herausfinden wieso genau es nicht auf 750mV runtergehe. Kurz sah ichs, aber irgendwo auch nicht 🤭

Je mehr desto besser.
PPT1 ist das XOC Fuse limit (resettable PTC FUSE ~ Limit)
Gehe auch auf 6800XT's nachdem man das KXTX Bios bzw PPTable draufflasht (nicht in Windows)
 
Zuletzt bearbeitet :
und wie schauts mit nur 1 Moni aus
dann
müsste es doch bis auf ULV runter gehen

Die Bandbreite vom Monitoranschluss(Resi+Hz-abhängig) kann u.U. auch ne Rolle spielen.
Daher kamen zum Bsp. bei Vega die minVolt, die erst ab 1800p weiter runter gingen.(mit 2160p waren die V immer zu hoch)
 

Anhänge

  • current link setting.JPG
    current link setting.JPG
    59,3 KB · Aufrufe : 23
und wie schauts mit nur 1 Moni aus
dann
müsste es doch bis auf ULV runter gehen
Ich müsste es testen
SOC LIV muss ich noch ausprobieren.
Decimal oder Negative Werte in hex und dann LittleEndian umzuwandeln ist mies.
Weswegen ich weiterhin auf MPT warte. Und weil ich von den Leuten dessen PPTable nicht reinladen möchte :D

MCLK gehe nur runter wenn X Monitor Anzahl, die selbe Refresh-Rate haben, auch bei 2. Aber nicht wenn sie zu unterschiedlich sind.
Naja, quasy "das erlauben" dass die Karte sub P0 geht (weil eben die Curve standartmäßig fehlerhaft war) , destabilisiert die gesammte Karte

Man muss Vmin auf 700mV setzen, bzw nahe-sub 750 Strap. Dann geht PP-PW-Quadratic ULV & erst dann auch die P0
Ansonnsten beginnst du bei 800mV was normales ULV ist. Und es geht ab 850mV die nächste Strap hoch
Bypassed quasy P0 damit.

Naja erwartet, dass eine KXTX Curve an manchen stellen zu tief droppt, aber es ist lästig mit Hydra :D
Ich brauch nen gescheiten Editor. Bzw ein update für den Navi Curve helper :) Wir arbeiten ähnlich aber doch minimal anders mit 5 Curves als einer
 
unter 750mV wird net jede Graka schaffen(x)
(meine mags nur bis ca. 743...737mV)

(x) Wozu auch?!
untenrum noch 1W im Idle einsparen und dafür in Games bei Lastwechsel instabiler

minGFX<700mV macht ja nur Sinn für ganz extreme UVer, z.Bsp. im Luxx mit 100W tgp und GoldenSOC
eff.SOC scheint auch >700mV zu bleiben, sonst hätte man ja mit ganz bösartigen Blackscreens zu kämpfen, die nen
Hardreset erfordern (... sooo tief könnte ich meine Graka net gamestable UVen)
 

Anhänge

Zuletzt bearbeitet :
Oben Unten