News AMD Adrenalin 26.6.4: Radeon-Treiber fixt FSR 4.1 auf RDNA 3

PCGH_Sven

PCGH-Autor
AMD hat mit der Adrenalin Edition 26.6.4 WHQL einen Radeon-Grafiktreiber veröffentlicht, der die sporadischen Abstürze unter Verwendung von FSR 4.1 auf den Radeon RX 7000 mit RDNA 3 und einen Installationsfehler unter Windows 10 behebt.

Was sagt die PCGH-X-Community zu AMD Adrenalin 26.6.4: Radeon-Treiber fixt FSR 4.1 auf RDNA 3

Bitte beachten: Thema dieses Kommentar-Threads ist der Inhalt der Meldung. Kritik und allgemeine Fragen zu Online-Artikeln von PC Games Hardware werden hier gemäß der Forenregeln ohne Nachfrage entfernt, sie sind im Feedback-Thread besser aufgehoben.
 
Und weiterhin ist unklar, wieso es für RDNA2 kein FSR4.1 geben wird, denn der neue Treiber nutzt keine RDNA3-exklusive Features wie WMMA, sonst würden DLLs vom 26.6.2/26.6.3 via Optiscaler nicht auf RDNA2 funktionieren (und genau das tun sie!).
AMD sollte mehr Entwickler/Personal dafür aufwenden, hier mal echte Fortschritte machen zu können, aber stattdessen drängt sich (leider) der Eindruck auf, die Praktikanten kümmern sich um das Thema. Ist auf jeden Fall kein wirklich wichtiges Thema für AMD.
 
Und weiterhin ist unklar, wieso es für RDNA2 kein FSR4.1 geben wird, denn der neue Treiber nutzt keine RDNA3-exklusive Features wie WMMA, sonst würden DLLs vom 26.6.2/26.6.3 via Optiscaler nicht auf RDNA2 funktionieren (und genau das tun sie!).
Nutzen sie nicht die integrierten Matrix-Einheiten von RDNA3 mit INT8 (statt FP4 bei RDNA4), wenn ich mich nicht täusche?
Würde das dann bei RDNA2 entsprechend über die Shader laufen und wäre das noch langsamer?
Ich dachte das Update für RDNA2 kommt Ende des Jahres/ Anfang nächsten Jahres.
 
Zuletzt bearbeitet:
Wieso AMD die mobilen Handhelds so sehr hasst, und bewusst auslässt obwohl die echt nicht billig waren und dringend auf Upscaling angewiesen sind bleibt mir ein Rätsel.

880€ fürs Ally Z1 Extrem gezahlt und das ist der Dank.

Nächster Handheld wird dann halt von Intel.
Die XTX hab ich gegen eine 5070 Ti gewechselt, hat mir einfach zu lange gedauert bis die voran machen.

Und das obwohl ich AMD echt eine Chance geben wollte.
 
@Registrierzwang
Was laberst du?
Danke für Deinen frechen Kommentar. Ja, ich kenne den Artikel, aber der erklärt nicht, wieso RDNA2 Karten mit Optiscaler die FSR4.1.1 DLLs nutzen können, obwohl die ja bekanntermaßen kein WMMA besitzen.
 
Danke für Deinen frechen Kommentar. Ja, ich kenne den Artikel, aber der erklärt nicht, wieso RDNA2 Karten mit Optiscaler die FSR4.1.1 DLLs nutzen können, obwohl die ja bekanntermaßen kein WMMA besitzen.

Ich kann diese Frage beantworten, die DLL für FSR 4.1 für RDNA 3 GPUs nutzen die WMMA-Matrix-Cores (WMMA) nicht sondern rechnet dies über die ALUs! (v_dot4) Deswegen können die RDNA 2 dies auch. Oder anders gesagt AMD hat den "faulen" Weg gewählt. Würde die INT8 über die Matrix-Cores laufen wäre die Performance verlust bei ca. 1-4%
So "klaut" die INT8 über die ALUs die Rechenkapzität des Renders, was zu den ca 9-12% Leistung (FPS) verlust führt.

Und folglich könnte RDNA 2 die - jetzige - INT8 FSR 4.1 DLL nicht nutzen.

Heißt man könnte gut 8% mehr leistung (RDNA 3) haben, aber nein die Faulheit hat leider bei AMD gesiegt. :heul:

@Registrierzwang
RDNA2 unterstützt scheinbar "nur" nicht alle Datentypen, abgesehen von Unterschieden bei der Performance.
Nope AMD nutzt die WMMA Core nicht, sondern die ALUs.

AMD :wall::motz::daumen2:

Ich hoffe das dies die Presse dann mal aufgreift und AMD mal ein paar Fragen dazu stellt, warum das INT8 Model die
WMMA-Matrix-Cores nicht nutzt, obwohl dies bei den RDNA 3 drauf sind. @PCGH_Sven
Villeicht gibt es noch eine FSR INT8 4.2 version das die Berechnung auf die Matrix-Cores (WMMA) aktiviert.
Für die RDNA 3 Nutzer.
;-)

Grüße
 
Zuletzt bearbeitet:
Nope AMD nutzt die WMMA Core nicht, sondern die ALUs.

AMD :wall::motz::daumen2:
Ich bin enttäuscht von AMD.
Die Matrix-Einheiten waren damals eines der Zugpferde der Architektur RDNA3.

Ich hatte gehofft, dass eine Art Shader-Modus für RDNA2 schon integriert, aber noch nicht offiziell ist.
Ein genereller Shader-Modus ist aber wirklich der bequeme Weg, vielleicht gibt es auch Probleme und die Matrix-Einheiten erster Generation haben nie richtig funktioniert.

Dann dürfte als einziger Pluspunkt die Umsetzung auf RDNA2 kein Problem sein.

EDIT
Der große Aufschrei wird ausbleiben, außer unter uns Enthusiasten wie hier. Am Ende ist es veraltete Hardware, die per Support neue Features bekommt. Man wird das sogar noch feiern.
 
Zuletzt bearbeitet:
Ich bin enttäuscht von AMD.
Die Matrix-Einheiten waren damals eines der Zugpferde der Architektur RDNA3.

Ich hatte gehofft, dass eine Art Shader-Modus für RDNA2 schon integriert, aber noch nicht offiziell ist.
Ein genereller Shader-Modus ist aber wirklich der bequeme Weg.

Nicht nur enttäuchend von AMD, sondern leider auch extreme Sch...e. Man kommt sich leicht Ver*r*cht vor.
Denn damit werden die RDNA3 verbauten Ki-Kerne (Matrix-Core mit den WMMA befehlsatz) nicht genutzt,
obwohl man dafür - sogar - bezahlt hat. :motz: AMD hätte es sehr gut machen können!
Und haben wie immer versagt, weil die dann - mal wieder - den leichteren Weg gewählt haben.
Selbst wenn nun Leute das SDK von AMD Kompilieren und die WMMA- Befehlsätze dann anpasst. (Optiscaler)
Ist es Unwarscheinlich das AMD dies dann einbaut. (Warscheinlich) Obwohl AMD dies schon jetzt könnte. (!!!)
Da die Basis schon da ist, müsste eine neue "ebene" für WENN DANN Bedingungen einbauen und den Code anpassen.

Z.B:
WENN GPU = RDNA 2 -> Nutze Pfad A (V_dot4 auf den normalen Shadern).
WENN GPU = RDNA 3 -> Nutze Pfad B (Echte V_WMMA-Matrix-Befehle).

Dann würde es auch nur eine DLL geben, aber die RDNA 3 GPUs nutzen dann die "richtigen" Befehlsatz.
Und der FPS gewinn wäre ca. 4%-8%. Theoretisch könnten dann die RDNA 4 diese nutzen, ob das was bringt kA.
Wäre mal ein spaß-test für evt. ein Video interessant.

Ich hoffe das die Jungs von OptiScaler das mit einbauen und AMD einwenig damit unterdruck nehmen.
Und die Presse natürlich, evt. reicht dann AMD dies nach in z.B FSR 4.2 oder 4.3. nach.
"Guter" Kunden Service ist dies nicht!

Grüße
 
Zuletzt bearbeitet:
@khaAk (boa äh, kannst Du bitte ein bisschen auf Interpunktion, Konjunktiv und Substantiv-Großschreibung achten? Ich tue mich echt schwer, Deine Texte zu lesen.)

That said ... Ganz so trivial scheint die Sache mit dem WMMA nicht zu sein.
Zunächst mal ein Hinweis auf einen recht speziellen "hacky workaround" aus dem CachyOS-Forum zu FSR 4.1 auf RDNA 3 - wenn man mal herumexperimentieren möchte (proof of concept (Hans-Kristian Arntzen ist auch involviert):

Insgesamt klingt Deine Kritik und Lösungsansatz auf den ersten Blick recht fundiert, ABER ...
... wenn man tiefer unter die Haube schaut, kommen einige Fragezeichen auf.
RDNA 3 hat trotz Verbesserungen und erweiterter Hardware zu RDNA 2 immer noch einige Limitierungen, was WMMA betrifft, gegenüber RDNA 4.
RDNA 3 hat keine dedizierten WMMA-Anweisungen wie RDNA 4. Stattdessen konzentriert sich RDNA 3 auf andere Optimierungswege.
RDNA 3 löst KI-Operationen eher über einen „Umweg“ (Software-Emulation und Shader-Optimierung), während RDNA 4 dafür maßgeschneiderte, „echte“ Hardware-Befehle besitzt.
RDNA 3 besitzt zwar WMMA-Instruktionen, diese sind jedoch im Vergleich zu RDNA 4 stark verschachtelt und komplex aufgebaut.

z.B. WMMA-Befehle (Wave Matrix Multiply-Accumulate) sind zwar verfügbar, haben jedoch im Vergleich zu RDNA 4 eine reduzierte wave-level-Unterstützung.
Die Fähigkeiten der Matrix-Engine sind auf RDNA 3 weniger ausgereift. Die traditionelle skalare und vektorbezogene Operationen sind für FSR 4.1 jedoch viel langsamer und ineffizienter. Wie hat es AMD letztendlich gelöst?
Für FSR 4.1 auf RDNA 3 nutzt AMD sehr wohl die Matrix-Engine, nutzt jedoch einen anderen Optimierungsweg: Das KI-Modell wurde mathematisch von FP8 auf INT8 (8-Bit Ganzzahlen) umprogrammiert. RDNA 3 beherrscht INT8 in seinen Matrix-Kernen exzellent. Dadurch erreicht RDNA 3 die gleiche Bildqualität wie RDNA 4, ohne die klassischen Shader mit rechenintensiven Vektor-KI-Befehlen zu belasten.

Evtl. hat u.U. AMD sehr bewusst mit einigen Überlegungen (und nicht aus Faulheit) deswegen für FSR 4.1 auf RDNA 3 einen anderen Ansatz verfolgt, mit dem man besser bedient ist und der sich dann so manifestiert?
  • Verwendung standardisierter wave-level-Optimierungen in Kombination mit Matrixoperationen
  • Nutzung von LDS (Local Data Share) für effizientere "temporal accumulation" innerhalb von Arbeitsgruppen
  • Optimieren von memory patterns und instruction scheduling durch Nutzung traditioneller VALU-Operationen (Vektor-ALUs)
  • Fokus auf wave64 executions, die RDNA 3 recht effizient handhabt
Mal so vermutlich? Aber was weiß ich - ich recherchiere nur.
Der einfache Vorwurf der "Faulheit" ist mir zu platt. Ich sehe die AMD-Ingenieure als alles andere, als Faul.
(das gilt im Übrigen auch für Intel -wenn auch ich die Corporate-Entscheidungen und gerade Intel durch seine Historie insgesamt sehr kritisch sehe- und dadurch Intel nicht so mag, die Ingenieure dort sind aber alles andere als "Faul", bequem oder dumm)

AMD RDNA 3 Optimization Guide​

Für zusäztliche ROCm/compute-spezifische Optimierungen:​

FSR 4.1 Sample Implementations​
Main FidelityFX SDK GitHub:​
FSR 4.1 Sample Documentation:​

Insgesamt erklärt es jedoch die Frage von @Registrierzwang zu RDNA 2 nicht.
 
Zuletzt bearbeitet:
@Registrierzwang Dass FSR 4.1 für RDNA 2 nicht kommt, steht so noch nicht final fest.
AMD hat jetzt erst mal die Bemühungen runterpriorisiert und den möglichen Termin nach hinten verschoben.
Verständlich: der Aufwand ist größer, der Effekt am Ende kleiner und die Verbreitungsgrad/die Nachfrage geringer.
Business-Entscheidung... (evtl. wird auch eine FSR-Version übersprungen, oder das Projekt wird am Ende ganz fallen gelassen, wenn es zu lange dauert)

Dass es rein technisch geht, ist nicht der Punkt. Der Kniff beim Optiscaler funktioniert über Emulation.
Modder müssen sich über Stabilität, geringere Peformance und Qualitätseinbussen weniger Gedanken machen - AMD über einen "Schmutzeffekte" schon.
  • Grafikfehler: werden die FSR 4.1.1-DLLs per Modding auf Windows-Systemen mit aktuellen Grafiktreibern genutzt, kommt es auf RDNA 2-Karten häufig zu starkem Ghosting, Bildflimmern (Shimmering) oder Bildartefakten. Auf Linux (z.B. via Proton) läuft das dank flexibler Treiber-Übersetzer oft überraschend fehlerfrei.
  • Modder können als Workaround uralt-Treiber von 2023 erzwingen - AMD muss da erst offizielle Treiberoptimierungsarbeit leisten - gerade unter Windows mit WHQL!

  • Der Performance-Flaschenhals bei RDNA 2 wiegt sehr schwer. Da keine Matrix-Kerne vorhanden sind, blockieren die FSR 4.1-Berechnungen die normalen Shader, die eigentlich das Spiel berechnen müssten. AMD muss das KI-Modell extrem stark optimieren und verkleinern ("Lightweight ML Model"), damit der Upscaler auf einer RX 6000-Karte am Ende mehr FPS bringt, als er durch die Shader-Belastung kostet.
Die DLLs nutzen INT8 – was RDNA 2 rechnerisch beherrscht.
Das für RDNA 3 optimierte FSR 4.1-Modell nutzt das INT8-Datenformat und das kann RDNA 2 auch, ABER ...
RDNA 2-Karten besitzen zwar keine WMMA-Matrix-Kerne für KI, aber ihre ganz normalen, traditionellen Vektor-ALUs (Shader) können INT8-Befehle nativ berechnen.
Da die mathematischen Operationen identisch sind, "versteht" die RDNA 2-GPU die Befehle aus der FSR 4.1.1-DLL. Sie führt sie einfach auf den herkömmlichen Shadern aus, statt auf dedizierten KI-Kernen - und das ist ... l a a a n g s a a a m ...
Das war bei den ersten workarounds und hacks zu RDNA 3 auch so, bis dann nach und nach Optimierungen und neue Modelle errechnet wurden, erst damit wurde es besser und besser. DIe Entwicklung braucht es bei RDNA 2 auch und noch viel stärker, wobei der Nutzen am Ende noch geringer ausfällt
 
@khaAk (boa äh, kannst Du bitte ein bisschen auf Interpunktion, Konjunktiv und Substantiv-Großschreibung achten? Ich tue mich echt schwer, Deine Texte zu lesen.)

Ich werde in Zukunft mich verbessern! :)
That said ... Ganz so trivial scheint die Sache mit dem WMMA nicht zu sein.
Zunächst mal ein Hinweis auf einen recht speziellen "hacky workaround" aus dem CachyOS-Forum zu FSR 4.1 auf RDNA 3 - wenn man mal herumexperimentieren möchte (proof of concept (Hans-Kristian Arntzen ist auch involviert):

Selbst verständlich, wie funktioniert denn sonst ROCm auf den RDNA 3 GPUs?

ROCm nutzt für die Compiler (LLVM) folgende befehlsätze:
Im frameworks ROCm (z. B. in nativem HIP C++ oder OpenCL) werden diese Befehle nicht direkt als Assembler-Text, sondern nutzt dafür vordefinierte C++-Funktionen (die sogenannten Intrinsics) oder die offizielle rocWMMA-Bibliothek verwenden bzw. angesprochen. (ausgeführt)

Wenn der Compiler (LLVM) den Code für RDNA 3 übersetzt, erzeugt er für die Matrix-Kerne spezifische Befehle, die alle mit "v_wmma" beginnen. Die genaue Endung hängt vom Datenformat ab:


Für FP16 (Standard): v_wmma_f32_16x16x16_f16
Für BF16: v_wmma_f32_16x16x16_bf16

Für FSR 4.1 müsste folgendes verwendet werden:
Für INT8 (Das FSR 4.1 Format): V_WMMA_i32_16x16x16_iu8


Der Befehl sagt den Matrix-Kernen: „Nimm eine 16x16-Matrix aus vorzeichenlosen 8-Bit-Ganzzahlen (iu8), multipliziere sie und addiere das Ergebnis in ein 32-Bit-Integer-Register (i32).“
Genau dieser Befehl fehlt im FSR 4.1 Code für RDNA 3. (Siehe Gibhub von AMD)

Stattdessen findet man im (AMD-Open-GPU-Github) dort nur die herkömmlichen v_dot4_i32_i8-Vektorbefehle, die die Matrix-Hardware komplett links liegen lassen. (Sie werden nicht genutzt)

Wenn AMD FSR 4.1 sauber für RDNA 3 programmiert hätte, müsste in den kompilierten Shadern genau dieser v_wmma_i32_16x16x16_iu8-Befehl auftauchen. Aber dieser Befehl kommt mal nicht vor!

AMDs FSR 4.1 kompiliert seine mathematischen Berechnungen je nach erkannter Hardware-ID in unterschiedliche Shader-Pfade.

Schaut man in die Shader-Dateien für die INT8-Inferenz, sieht man, dass dort standardmäßige Dot-Product-Intrinsics der Shader-Language genutzt werden (wie dot4add_i8pack in HLSL). Beim Kompilieren für RDNA 3 übersetzt dieser die Daten dann auf die ALUs-Befehlsatz der Shader.

Dieser Befehl wird von AMDs offiziellem ISA (Instruction Set Architecture) Manual explizit auf den Vektor-ALUs (SIMD) der normalen Compute Units ausgeführt. Ein echter Matrix-Core-Befehl müsste im Code über spezielle Wave-Matrix-Intrinsics laufen und mit "V_WMMA" beginnen und kompiliert werden, was hier für RDNA 3 schlicht nicht implementiert ist.

D.h in der Code Basis von FSR 4.1 von AMD auf dem Gibhub werden die Ki-Kerne nicht verwendet,
wäre das der Fall hätten die RDNA 3 GPUs ca 4-8 % mehr leistung. Es werden nur die Shader der ALUs zur Berechnung verwendet. Das ist leider kein Scherz!

Ich hoffe meine ausführung war verständlich.

Fun Fakt:

Würde AMD die KI-Kerne über die V_WMMA-Befehle füttern, würde folgendes passieren:
Die klassischen Rasterizer-Shader (ALUs) der RDNA 3 müssten die Matrix-Mathematik für das FSR 4.1 nicht mehr zusätzlich mitschleppen. (Mehr Leistung)

Diese Rechenleistung stünde sofort wieder für die normale Spiele-Grafik (Geometrie, Beleuchtung, Effekte) zur Verfügung. Der Verzicht auf die KI-Kerne (Matrix-Cores) im FSR 4.1 GitHub-Code kostet - allen - RDNA3 GPUs direkt Gaming-Performance. Das ist leider kein Scherz.

Da die Matrix-Kerne physisch parallel im Chip sitzen, würde die KI-Berechnung fast zeitneutral im Hintergrund ablaufen. Der typische Performance-Einbruch, den Tester / Spieler beim Wechsel von FSR 3.1 auf FSR 4.1 auf RDNA-3-Karten messen, wäre praktisch eliminiert bzw ca. 1-4% Hoch. AMD hat leider den leichten Weg genommen.

Und - ja - man müsste noch mal Arbeit hinein "Buttern" damit es funktioniert, AMD hat es - quasi - den Leuten wie von OptiScaler überlassen. Mal schauen ob AMD es noch nach implemmentiert...
Meine Hoffungungen sind allerdings sehr gedrückt.

Du kannst es hier nach schauen;


Grüße
 
Zuletzt bearbeitet:
Ne, das interpretierst du falsch, würde ich sagen. Was denkst du denn was daran so viel leichter ist? Ich würde eher sagen, sie haben diesen Weg gewählt, gerade um zu RDNA2 den Weg zu bereiten und keinen zu großen Unterschied zu lassen. Also irgendwo zwar auch einfacher, weil beides gleich, aber aus dem Ziel heraus eben DRNA2 noch mitschleppen zu müssen, welche eben keine spezialisierten Einheiten haben.
Das ist Fluch und Segen in einem.
Meine Vermutung wäre, dass AMD eben RDNA3 nutzt um den Code dahin zu optimieren, dass er auf RDNA2 lauffähig wird und Fehler auszubügeln und wenn dann FSR4 für RDNA2 freigegeben wird, dann erst werden sie den Sprung auf die Matrixkerne vollziehen und RDNA3 etwas spezialisieren.

Kurzfassung: MMn gehen sie den aktuellen weg gerade für die RDNA2 User und nicht wie von dir vermutet weil es angeblich leichter wäre.
 
Ne, das interpretierst du falsch, würde ich sagen. Was denkst du denn was daran so viel leichter ist? Ich würde eher sagen, sie haben diesen Weg gewählt, gerade um zu RDNA2 den Weg zu bereiten und keinen zu großen Unterschied zu lassen. Also irgendwo zwar auch einfacher, weil beides gleich, aber aus dem Ziel heraus eben DRNA2 noch mitschleppen zu müssen, welche eben keine spezialisierten Einheiten haben.
Das ist Fluch und Segen in einem.
Meine Vermutung wäre, dass AMD eben RDNA3 nutzt um den Code dahin zu optimieren, dass er auf RDNA2 lauffähig wird und Fehler auszubügeln und wenn dann FSR4 für RDNA2 freigegeben wird, dann erst werden sie den Sprung auf die Matrixkerne vollziehen und RDNA3 etwas spezialisieren.

Kurzfassung: MMn gehen sie den aktuellen weg gerade für die RDNA2 User und nicht wie von dir vermutet weil es angeblich leichter wäre.

Dies wäre eine Möglichkeit da ich dies falsch Wahrnehme. :ka:

AMD kann dies auch über die Treiber regeln und im GitHub sind nur die Vector (ALUs) Befehle enthalten.
Für Windows, kann AMD die Befehle über den Treiber in WMMA-Befehle umwandeln. (Emulieren)
Das könnte die Idee von AMD sein. Das müsste man dann mal testen.
Das könnte den Leistungsverlust erklären. Das die über die Treiber gehen.

Und ja das würde für die RDNA 2 Leute sprechen.
AMD würde auch eine menge Arbeitskraft sparen wenn, es auf nur einen "Pfad" gibt.
Sonst müssten die Programierer 3 Pfade plegen.
Nämlich; RDNA 4 mit FP8, RDNA 3 mit WMMA, und RDNA 2 über die ALUs-Shader.

Man wird es dann spätetens im Januar 2027 sehen.

Grüße
 
Zurück