PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Diskussion zu: nVidia erklärt "Mixed Precision"


Leonidas
2015-12-12, 03:47:20
Link zur News:
https://www.3dcenter.org/news/nvidia-erklaert-mixed-precision

MrSpadge
2015-12-13, 20:43:04
Ein SP : DP Verhältnis von 1:2 hatte nVidia schon mal, bei Fermi.

Ansonsten war ich seit Kepler skeptisch, warum man "auf einmal" separate Ausführungseinheiten für DP und SP brauchen sollte. Bei den vorherigen AMD Chips hatte ich es so verstanden, dass man die 64 Bit Einheiten derart ausbauen kann, so dass sie alternativ 2 x 32 Bit verarbeiten können. Der Hardware-Aufwand dafür ist zwar größer als für 2 native 32 Bit Einheiten, aber deutlich kleiner als 1 x 64 Bit und 2 x 32 Bit. Das würde auch nicht der "DP-Knauserei" in den neueren Chips widersprechen: hier hätten AMD und nVidia diesen etwas erhöhten Aufwand pro Recheneinheiten nur bei einem Teil der Shader eingebaut und dadurch Transistoren & Fläche gespart.

Nehme ich an, es wäre nicht so wie eben gesagt, sondern so wie nVidia es offiziell sagt (d.h. dedizierte FP64 Einheiten), dann ergibt mixed precision kaum Sinn: hier müssten an einem Port dann 1 x 64 bit, 2 x 32 Bit und 4 x 16 Bit Rechenwerke hängen. Das würde den Bedarf an Transistoren pro SMX (bzw. dessen äquivalent in Pascal) deutlich nach oben treiben. Stattdessen hätte man den Chip auch mit mehr herkömmlichen SMX ausstatten können. Baut man aber ein Rechenwerk, das flexibel rekonfiguriert werden kann, sieht die Sache schon viel besser aus.
Mit dedizierten Einheiten gewinnt man - so weit ich weiß - nur etwas Energieeffizienz. Abschätzen kann ich diese und den zusätzlichen Flächenbedarf allerdings nicht.

Denn es ist vorstellbar, daß es hierfür auch im Gaming-Bereich Einsatzmöglichkeiten gibt. Bei vielen Zwischenrechnungs-Schritten auch in der Grafikberechnung könnte eine abgesenkte Rechengenauigkeit ohne Bildqualitätsverluste nutzvoll sein und damit auch dort Rechenleistung sparen. Natürlich würde es Jahre dauern, dieses Feature bei den Spieleentwicklern durchzusetzen, welche dann für nVidia-Beschleuniger (ab der Pascal-Generation) eine Extrawurst braten müsste – unmöglich ist dieser Weg allerdings nicht.

Wenn man sich überlegt, dass 32 Bit in den Shadern der GPUs noch relativ neu sind (die ersten Generationen liefen mit 16 und 24 Bit), dann ist offensichtlich Bedarf für weniger Genauigkeit vorhanden. Die Implementierung stelle ich mir gar nicht so schwierig vor: man könnte statt dem Datentyp FP32 einen "FP16+" definieren. Kann die Karte 16 Bit, werden diese genommen. Sonst das nächstkleinere unterstützte Format (sicher immer 32 Bit). Der Shader-Compiler im Treiber nimmt die Variante passend zum vorhandenen Chip. Der Programmierer müsste dann nur noch herausfinden, an welchen Stellen im Spiel oder der Engine FP16 OK ist.

MrS

Iapetos
2015-12-14, 06:32:57
Dies ist ein überdeutlicher Hinweis darauf, daß nVidia zwischen Single- und DoublePrecision bei der Pascal-Architektur ein Verhältnis von 2:1 vorgesehen hat – ansonsten würde sich das klar zu sehende Verhältnis von 4:1 zwischen Half- und DoublePrecision nicht realisieren lassen.
Warum? Was spricht denn gegen eine logarithmische Skalierung? Auf Größenverhältnisse auf Marketing-Folien würde ich ohne exakte Skalenangabe überhaupt nichts geben. Ich tippe auf 1:8.