RadeonBoost.kext - Benchmark Scores wie am echten Mac / unter Windows

    • Hilfreich

    Hinweis vom 23. August 2020: Da ich mich von hier und anderen Hackintosh Communities bis auf weiteres aus der Öffentlichkeit zurückziehe, wird RadeonBoost erstmal nicht weiter entwickelt. Da Apple der Kext mit Big Sur diverse Riegel vorschieben wird, empfehle ich mit der nächsten macOS Version auch die Nutzung nicht mehr.


    Ich habe mal wieder gebastelt (danke an DSM2 für die Unterstützung!) und eine Kext gebaut mit welcher sich die Limitierungen für PC Karten unter macOS umgehen lassen, welche vor allem in Geekbench für zu niedrige Ergebnisse sorgen.


    Die Problematik dürfte ja hinreichend bekannt sein, dass z.B. eine Radeon VII unter macOS in Geekbench Metal im Bereich von 50-60k Zählern herumdümpelt, während unter Windows aber auch mit einer Pro Vega II (was nahezu dieselbe Grafikkarte ist) deutlich höhere Punktzahlen erreicht werden. Die Problematik zeigt sich nicht nur bei der Radeon VII sondern auch den meisten anderen Karten (RX580, RX590, Vega 56, Vega 64, RX 5700 (XT), etc.


    Hintergrund der Geschichte ist der vermeintliche Lüfter Fix für Vega 56 / 64 / Frontier Karten den Apple mit macOS 10.14.5 Mojave eingeführt hat. Wie sich mittlerweile herausgestellt hat, lag der Fehler welcher für nicht funktionierende Lüftersteuerung gesorgt hat in der SMU Firmware (System Management Unit), welche vom Grafiktreiber auf die Karte geladen wird. Statt den Fehler jedoch zu beheben, hat Apple einfach das Laden der SMU Firmware für PC Grafikkarten eingestellt. Dies führt in erster Linie zu einer reduzierten Speicherbandbreite (ca. halbiert) und damit zu den niedrigen Geekbench Scores, da der Benchmark extrem empfindlich auf die Speicherbandbreite von Grafikkarten reagiert.


    Apple hat seine Nutzer hier im Grunde betrogen und wäre hier am Zug endlich einen richtigen Fix für die Problematik zu implementieren. Das scheint aber auf absehbare Zeit nicht zu passieren, weshalb es mit RadeonBoost nun einen Workaround gibt. Die Kext sorgt dafür, dass die SMU Firmware wieder geladen wird und die Karten so performen wie sie sollen. Zudem gibt es noch ein paar weitere Parameter die mit der Kext injiziert werden und diverse kleine Problemchen beheben können.


    Was Polaris Karten angeht setzen diese auf eine SMC Firmware statt eine SMU Firmware. Auch hier kann aber je nach Modell und Hersteller der Karte ein Vorteil durch Laden der SMC Firmware entstehen. Wenn es beispielsweise nach dem Standby zu Taktproblemen oder verminderter Leistung kommt, kann auch hier RadeonBoost Abhilfe schaffen. Für Polaris Grafikkarten müsst ihr RadeonBoost zwingend mit Whatevergreen kombinieren!


    Eine weitere Baustelle die RadeonBoost übernimmt ist das Thema AGPM. Passende AGPM Injektoren sind in der Kext eingebaut, sodass ihr AGPM ohne weitere Anpassungen mit eurer Grafikkarte nutzen könnt. Die AGPM Injektoren zielen auf die SMBIOSe iMacPro1,1 und alle MacPro Varianten ab, in denen AGPM nach Device IDs statt ACPI Gerätenamen konfiguriert wird. Die restlichen iMac SMBIOSe werden nicht abgedeckt, da die Werkskonfiguration von AGPM bereits durch die Targetierung von ACPI Gerätenamen passend ist. In diesen Fällen sind also keine Anpassungen nötig.


    Nutzung

    Um die Kext zu nutzen müsst ihr nichts großartig an eurem System verändern.
    Einfach die Kext in eure EFI packen und fertig. Das ganze funktioniert natürlich sowohl mit OpenCore als auch mit Clover. Nicht vergessen bei OpenCore die Kext auch in die config.plist einzutragen!
    An einem echten Mac (z.B. im Mac Pro oder auch jedem anderen Mac mit eGPU) lässt sich RadeonBoost ebenfalls nutzen. Hier könnt ihr die Kext nach /L/E kopieren, Rechte reparieren und den Kext Cache neu aufbauen. Bedenkt aber, dass hierzu die SIP (System Integrity Protection) deaktiviert sein muss.


    Solltet ihr bereits per Clover oder OpenCore Device Properties zusätzliche Parameter wie z.B. eine PowerPlay Table auf eure Grafikkarte injecten, bleibt dies davon unberührt. Hier funktioniert also alles wie gehabt. Mac Pro / eGPU Nutzer können entsprechende Zusatzparameter wie eine PowerPlay Table auch direkt in die info.plist der RadeonBoost.kext einbauen und so die Grafikkarte übertakten, undervolten - was auch immer man tun möchte.


    Resultate?

    Beispiel Radeon VII in einem Cheese Grater Mac Pro


    Wie ihr seht normalisieren sich die Benchmark Ergebnisse in Geekbench. Der Hackintosh wird damit endlich auch hier vergleichbar mit echten Macs. Selbiges gilt für eGPUs am echten Mac.

    Merkt man den großen Unterscheid auch im tatsächlichen Einsatz? Jein! Nur einige der "Sub-Tests" von Geekbench schneiden besser ab, was zum Anstieg der Scores führt. Das bedeutet, dass es nur in spezifischen Workloads eine Verbesserung gibt. Im Alltag ist der spürbare Unterscheid also deutlich geringer. Ich persönlich konnte aber in manchen Spielen wie z.B. Dirt4 teils deutliche Verbesserungen spüren und auch die OpenCL/GL Performance scheint sich dadurch leicht zu verbessern. In Dirt4 hatte ich auf manchen Strecken mit Stottern zu kämpfen. Mit RadeonBoost ist das Phänomen verschwunden.


    Download & Changelog

    • 28. Mai 2020: V1.6 - Disabled SMU Firmware Loading for Navi10/14 due to broken SMU firmware starting from macOS 10.15.5, improved Polaris compatibility
    • 13. Mai 2020: V1.5 - Added back some parameters based on users feedback, fixes for Polaris cards
    • 24. April 2020: V1.4 - Added target SMBIOSes for AGPM injector to prevent overriding of stock AGPM configuration on SMBIOSes that don't need an AGPM injector (e.g. iMac19,1 etc)
    • 20. April 2020: V1.3 - Replaced "ATY,EFIVersion" with "ForceLoadFalconSmuFirmware" (thanks to Whatevergreen developers for discovery of this parameter), changed Polaris properties (RX480, 580, 590 users please re-test), removed Apple framebuffer properties (performance difference is minor)
    • 19. April 2020: V1.2 - Removed support for Vega 56, Vega 64 and Vega Frontier - read about the reason here and here
    • 19. April 2020: V1.1 - Removed some unnecessary device properties, changed DisableDIDT back to 0, added AGPM configurations for SMBIOSes where it makes sense including stock profiles for real Macs
    • 18. April 2020: Zurückgezogen
    • 17. April 2020: V1.0 - initial public release

    RadeonBoost ist derzeit kompatibel mit folgenden GPUs:

    • RX480, RX580, RX590 (!!!bitte mit Whatevergreen nutzen!!!)
    • Radeon VII, RX 5500, RX 5500 XT, RX 5600, RX 5600 XT, RX 5700, RX 5700XT (Whatevergreen nicht zwingend nötig)


    RadeonBoost.kext.zip

    LG Chris


    Meine Hardware:

    18 Mal editiert, zuletzt von CMMChris ()

  • CMMChris

    Vielen Dank für den Kext...

    Das ist dann nochmal eine Schiene einfacher als die DeviceProperties zu editieren... :)

    Gruß
    Al6042

    Keine Unterstützung per PN oder Pinnwand... Eure Anfragen gehören ins Forum, nicht in mein Postfach!

  • Vielen Dank für die Arbeit.. Werde ich direkt mal testen ;)


    Wenn ich das richtig verstanden habe, sind die Einstellungen in den device-properties voranging und die kext ergänzt nur "fehlendes"?

  • CMMChris und DSM2


    Vielen Dank! Das sieht ja echt vielversprechend aus!

  • Sehr cool. :klatschen::klatschen::klatschen:Lässt sich das auch für eine RX5500XT basierte Karte umsetzen?

  • Wenn ich das richtig verstanden habe, sind die Einstellungen in den device-properties voranging und die kext ergänzt nur "fehlendes"?

    Die Kext setzt Device Properties ein, und du kannst das nach wie vor auch mit dem Bootloader. Von vorrangig kann man da nicht sprechen. Was du zusätzlich mitgibst kommt halt auch noch mit dazu. Hier herrscht kein Wettrennen sondern Koexistenz.

    Lässt sich das auch für eine RX5500XT basierte Karte umsetzen?

    Kommt

    LG Chris


    Meine Hardware:

  • Klingt super. Danke für die Top Arbeit, die du für die Community bezüglich der AMD Karten ablieferst.

    Kurze Frage zur Kext, die sollte auch laufen, wenn man WEG am laufen hat, oder kollidiert das ganze eher?

    Original Apple: MacBook Pro 14 2021 - macOS Sonoma

    Hackintosh: Lenovo M710q - macOS Sonoma

  • cmoers Teste mal die Version im Anhang. Am besten vorher die Geekbench Tests laufen lassen damit du vergleichen kannst. Wenn das funzt gibt es einen neuen Release.


    ductator Die Kext übergibt nur zusätzliche Treiber Parameter die Apple mit seinen Framebuffern auch übergibt. Da sollte sich mit WEG nichts beißen.

    Dateien

    LG Chris


    Meine Hardware:

  • Interessantes Projekt!


    Hat das ganze denn sonst irgendwelche Vorteile in der normalen Nutzung?

    Liebe Grüße, alex


     Mac mini Late 2020 – M1 – 16GB RAM – 256GB SSD

     MacBook Pro 15” Late 2015 – i7 4980HQ – 16GB RAM – 256GB SSD

     MacBook Pro 13” Late 2014 – i5 4278U – 8GB RAM – 120GB SSD

    iPhone 13 – iPhone 8 Plus – iPad Pro 12,9" – AirPods 1. Gen – AirPods Pro – Apple Watch S5 44mm




  • Hat das ganze denn sonst irgendwelche Vorteile in der normalen Nutzung?

    Bessere Performance in sehr spezifischen Bereichen. Man merkt es nicht so stark wie die Geekbench Scores wachsen, aber eine Verbesserung ist definitiv vorhanden. Ich könnte auch schwören dass meine Radeon VII seitdem leiser ist beim Zocken.

    LG Chris


    Meine Hardware:

  • Super! :feuerwerk: Das Ding funzt! Vielen Dank!


    Werte einer Vega 56:

    Ohne: OpenCl, Metal


    Mit: OpenCL, Metal

  • Hab es auch gleich mal Ausprobiert , allerdings hatte ich bei openCL nicht so einen krassen Sprung , aber vielleicht hängt das auch mit meiner älteren CPU zusammen ^^


    Ohne Kext


    Mit Kext



    KEIN SUPPORT PER PN!

    julian2_pic.png

  • Ich kann und werde es später testen, wenn ich Feierabend habe. Die Ergebnisse oben sehen auf jeden Fall schonmal sehr vielversprechend aus.

    Gruß, karacho



    Bitte keine Supportanfragen via PN. Eure fragen gehören ins Forum!

    Ich hab noch drei Patronen, eine für dich und zwei für mich...

  • Bei mir waren die Sprünge eher gering:

    Vega 56

    OpenCL von 50163 auf 52182

    Metall von 54644 auf 58110


    Trotzdem Wahnsinn was ihr da so raushaut..... Kompliment

    -faxxe

  • CMMChris Sind das denn nicht alles simple Werte die man auch in WEG implementieren könnte?

    Liebe Grüße, alex


     Mac mini Late 2020 – M1 – 16GB RAM – 256GB SSD

     MacBook Pro 15” Late 2015 – i7 4980HQ – 16GB RAM – 256GB SSD

     MacBook Pro 13” Late 2014 – i5 4278U – 8GB RAM – 120GB SSD

    iPhone 13 – iPhone 8 Plus – iPad Pro 12,9" – AirPods 1. Gen – AirPods Pro – Apple Watch S5 44mm