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

    • Helpful

    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

    • 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
    • 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)

    Achtung: In macOS 10.15.5 Beta führt die Kext in Verbindung mit Navi Karten zur Kernel Panic bei Systemstart.


    RadeonBoost.kext.zip

    LG Chris


    Meine Hardware:

    Edited 15 times, last by CMMChris ().

  • Geile Sache. Wäre auch sicher was für meine Vega 64.

    Sascha_77 könnte man den nicht in den KU mit aufnehmen? ;)

    arigata9.png

    Supportanfragen gehören ins Forum und nicht in meine Pinnwand/PNs

    Edited once, last by arigata9 ().

  • 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... 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"?

    Discord-Server.png

    rizzi.png


    Kein Support per IGM. Entweder hier einen Thread erstellen oder im Discord vorbei schauen.

  • 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?

    MacPro Lite für WebDesign + Büro + Musik (MacOS 10.15.5 PB4 mit OC 0.5.8):
    Board: Asus Z390 Maximus XI Hero · CPU: Intel i9 9900K · CPU-Kühlung: Arctic Liquid Freezer 240
    GPU: Asus Radeon RX5500XT O8G ROG Strix Gaming · RAM: Corsair Vengeance LPX 64GB (4x16GB) DDR4 3000MHz C16 XMP 2,0 · Netzteil: 750 Watt BeQuiet Dark Power Pro 11
    SSD (Catalina): 500GB Samsung 970 Evo Plus NVMe · SSD (Daten): 2x500 GB Samsung Evo 860 · WiFi-/BT (PCIe): ABWB BCM94360CS2 Combo
    Gehäuse: be quiet! Silent Base 801 · Gehäuselüfter Front: 2x be quiet! Pure Wings 2 PWM 140mm · Gehäuselüfter Back: 1x be quiet! Pure Wings 2 PWM 140mm
    Monitor: 1x AOC Q2781PQ (27 Zoll) & 2x Iiyama ProLite XU2395WSU-B1(22,5 Zoll) · Tastatur: Logitech MX Keys · Mouse: Apple Magic Mouse 2
    Audio: Focusrite Scarlett 18i20 2nd Gen (USB)

  • 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?

    CFL-Hack: i5 8500 - Asus ROG Maximus VIII Hero @ CFL-Mod-BIOS - 16GB Corsair Vengeance LPX 2666MHz - Gigabyte RX580 8GB + UHD630 connectorless + BCM94360 PCIe Wifi - macOS 10.15.x - Windows 10 - Clover
    Original Apple: Macbook Pro Retina 13" Early 2015 (MF840D/A) - macOS 10.15.x

  • 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.

    Files

    LG Chris


    Meine Hardware:

  • Interessantes Projekt!


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

    Mit freundlichen Grüßen,

    alex


    unx.png


     hackint0sh [iMacPro1,1] - macOS 10.15.5 (19F83c)
    MB: Asus Prime B360M-A | CPU: i5 8600 | GPU: MSI Radeon RX 580 | RAM: 16GB G.Skill Aegis | WiFi + BT: BCM943602CS | OpenCore v0.5.8


     iDevice - iOS 13.5 - Jailbroken!
    iPhone 11 | iPhone 8 Plus | iPad Pro 12,9" | iPad Pro 11"
                                               
     Real Mac - macOS 10.15.4 (19E266)
    MacBook Pro 15” Late 2015 | MacBook Pro 13” Late 2014



  • Auch von mir ein fettes Lob und ein noch fetteres Dankeschön an unseren GraKaGuru CMMChris :thumbup:

    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...

  • 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!

    julian.png

  • Geekbench schwankt gerne mal stark in den Ergebnissen. Am besten lässt man mehrere Runs laufen.

    LG Chris


    Meine Hardware:

  • 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?

    Mit freundlichen Grüßen,

    alex


    unx.png


     hackint0sh [iMacPro1,1] - macOS 10.15.5 (19F83c)
    MB: Asus Prime B360M-A | CPU: i5 8600 | GPU: MSI Radeon RX 580 | RAM: 16GB G.Skill Aegis | WiFi + BT: BCM943602CS | OpenCore v0.5.8


     iDevice - iOS 13.5 - Jailbroken!
    iPhone 11 | iPhone 8 Plus | iPad Pro 12,9" | iPad Pro 11"
                                               
     Real Mac - macOS 10.15.4 (19E266)
    MacBook Pro 15” Late 2015 | MacBook Pro 13” Late 2014



  • Ja könnte man in WEG implementieren. Oder auch direkt in die Bootloader.

    LG Chris


    Meine Hardware: