PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AMD/ATI - Rapid Packed Math


=Floi=
2017-08-03, 22:03:25
Was ist das eigentlich genau?
Was bringt es?
Benchmarks?
Sinn bei games? Andere Anwendungsfälle?
Kann auch NV davon profitieren?

dargo
2017-08-03, 22:58:13
Was ist das eigentlich genau?

LvRdKkc4bfk



Was bringt es?
Benchmarks?
Sinn bei games?

https://www.overclock3d.net/gfx/articles/2017/07/31102128179l.jpg


Kann auch NV davon profitieren?
Ohne doppelten Durchsatz bei FP16 nur "geringfügig", gleiches gilt für Radeons älter Vega.
https://www.forum-3dcenter.org/vbulletin/showpost.php?p=11446767&postcount=100

gravitationsfeld
2017-08-03, 23:34:35
Bei NVIDIA bringt es nichts, weil sie keinen FP16-Support haben ausser auf Tegra. Nur eine Emulation die 1/24 der Geschwindigkeit hat oder sowas in der Richtung. Auf Tegra haben sie auch doppelten Durchsatz.

dargo
2017-08-03, 23:36:42
Ok... wieder was gelernt.

Locuza
2017-08-04, 00:16:11
Nvidia hat scheinbar pro Cluster eine double-rate FP16 ALU, vermutlich nur für funktionelle Kompatibilität was CUDA oder allgemein Programme angeht.
Bei 128 FP32 ALUs pro Cluster liegt der Durchsatz FP16 mit einer double-rate FP16 ALU theoreitsch nur bei 1/64 gegenüber der FP32 Geschwindigkeit.

Unter DX ist das aber egal, weil Nvidia keinen FP16 Support zurückmeldet und MinPrecision als Befehl nur angibt, dass z.B. FP16 genug ist, der Compiler kann die Operation aber automatisch als FP32 Operation promoten und ausführen.

Für mich interessant ist es, wie FP16 Optimierungen für GCN 3-4 und Gen 5 sich unterscheiden.
Bei Gen 3-4 können nicht zwei FP16 Operationen gleichzeitig berechnet werden, aber zwei FP16-Werte in den Registern gespeichert und so könnte die Performance auch gesteigert werden.
Aber für Double-Rate FP16 muss man vielleicht seinen Input anders vorgeben, womit GCN Gen 3 und 4 nicht direkt oder gut profitieren können?

deekey777
2017-08-04, 09:02:10
...

Unter DX ist das aber egal, weil Nvidia keinen FP16 Support zurückmeldet und MinPrecision als Befehl nur angibt, dass z.B. FP16 genug ist, der Compiler kann die Operation aber automatisch als FP32 Operation promoten und ausführen.

...

Kostet das ("Hochkonvertierung") eigentlich irgendwas (CPU-Zeit)?

...........
https://forum.beyond3d.com/threads/id-buffer-and-dr-fp16.60209/page-2#post-1987076



Performance of a particular shader is often limited by a single bottleneck (or combination of two). Most common bottlenecks are ALU, texture filtering, memory latency, memory bandwidth, fillrate and geometry front end. Double rate FP16 only helps if the shader main bottleneck is ALU. FP16 registers also helps a bit with memory latency, since 16 bit registers use 50% less register file storage than 32 bit registers -> GPU has better occupancy -> more threads can be kept ready to run -> better latency hiding capability.

People look too much to GPU peak FLOP rate number. FP16 doubles this theoretical number, but it's important to realize that FP16 doesn't double the count of TMUs, ROPs or memory bandwidth. When GPU manufacturers scale up the GPU, they scale all of these up together. GPUs with more FLOPs also have more TMUs, more ROPs, more bandwidth and fatter geometry front ends. Marketing departments like to use FLOP count as simple number to describe the GPU performance level, but this creates the illusion that FLOP count is the only thing that matters. If the other parts didn't scale up equally, the performance advantage would be very limited.

Thus doubling the peak FLOP rate by FP16 doesn't suddenly make a GPU equivalent to another GPU with double FLOP rate, unless all other parts of the GPU are also scaled up.

FP16 is a very useful feature for the developers, but mixing it up with FLOP based marketing is simply confusing the consumers.

Locuza
2017-08-04, 14:03:37
Praktisch nichts, da nur ein FP32 Input weitergeben wird.

=Floi=
2017-08-04, 22:38:44
Bei NVIDIA bringt es nichts, weil sie keinen FP16-Support haben ausser auf Tegra. Nur eine Emulation die 1/24 der Geschwindigkeit hat oder sowas in der Richtung. Auf Tegra haben sie auch doppelten Durchsatz.

Das ist mir jetzt ganz neu. Dann kann man wohl davon ausgehen, dass das feature aufgrund der verbreitung nicht groß genutzt wird, wenn NV es bei den neuen karten nicht auch freischaltet.

ich frage mich bei dem thema schon die ganze zeit, ob wirklich die shaderleistung limitiert, da ich es mir nicht vorstellen kann.

dargo
2017-08-04, 22:58:47
Was willst du da freischalten? :freak:

Leonidas
2017-08-07, 07:41:59
3DC zum Thema RPM:
https://www.3dcenter.org/news/amds-rapid-packed-math-vega-feature-ermoeglicht-fp16-berechnungen-mit-doppelter-performance

Fattyman
2017-08-07, 08:46:07
Nvidia hat scheinbar pro Cluster eine double-rate FP16 ALU, vermutlich nur für funktionelle Kompatibilität was CUDA oder allgemein Programme angeht.
Bei 128 FP32 ALUs pro Cluster liegt der Durchsatz FP16 mit einer double-rate FP16 ALU theoreitsch nur bei 1/64 gegenüber der FP32 Geschwindigkeit.

Unter DX ist das aber egal, weil Nvidia keinen FP16 Support zurückmeldet und MinPrecision als Befehl nur angibt, dass z.B. FP16 genug ist, der Compiler kann die Operation aber automatisch als FP32 Operation promoten und ausführen.

Für mich interessant ist es, wie FP16 Optimierungen für GCN 3-4 und Gen 5 sich unterscheiden.
Bei Gen 3-4 können nicht zwei FP16 Operationen gleichzeitig berechnet werden, aber zwei FP16-Werte in den Registern gespeichert und so könnte die Performance auch gesteigert werden.
Aber für Double-Rate FP16 muss man vielleicht seinen Input anders vorgeben, womit GCN Gen 3 und 4 nicht direkt oder gut profitieren können?

Die Anmerkung über den Durchsatz bei Nvidia gilt nur für die GP104-Modelle. Die GP100 (Profi-Karten) dagegen führen doppelt so viele FP16 wie FP32 Ops durch...

deekey777
2017-08-07, 10:32:32
Es gibt noch den GP102 (Titan X/XPirgendwas, TI).

Die Kernaussage ist, dass dieser extreme Leistungsabfall nur für GPGPU gilt (und warum sollten Entwickler hier sich selbst ein Bein stellen?).

dildo4u
2017-08-14, 13:21:15
F1 2017 nutzt es auf der PS4 Pro.

Finally, track shaders also receive an upgrade, one again thanks to the clever design of the PS4 Pro hardware. As the developers explained, “packed fp16 ALU operations, which are unique to the PS4 Pro in the console space, offer us a very powerful tool for optimising shaders, allowing us to enhance CU occupancy and reduce overall instruction count.”

https://blog.eu.playstation.com/2017/08/14/enhanced-for-ps4-pro-f1-2017-agents-of-mayhem-and-sine-mora-ex/#sf106006215

dargo
2017-08-14, 18:55:09
Und auf den PC hatte man wieder keine Lust? :rolleyes:

Edit:
Sorry... mein Fehler. Das Game ist noch gar nicht raus. :anonym:

deekey777
2017-08-16, 13:19:15
Was ist das eigentlich genau?

http://developer.amd.com/wordpress/media/2013/12/Vega_Shader_ISA_28July2017.pdf
6.7. Packed Math
Vega adds support for packed math, which performs operations on two 16-bit values within a Dword as if they were separate threads. For example, a packed add of V0=V1+V2 is really two separate adds: adding the low 16 bits of each Dword and storing the result in the low 16 bit s of V0, and adding the high halves.
Packed math uses the instructions below and the microcode format "VOP3P". This format adds op_sel and neg fields for both the low and high operands, and removes ABS and OMOD.
Alles klar? Bei mir auch nicht.

V_MAD_MIX_* are not packed math, but perform a single MAD operation on a mixture of 16- and 32-bit inputs. They are listed here because they use the VOP3P encoding.
Was bedeutet das genau?

yummy_candy
2017-08-19, 15:43:53
Alles klar? Bei mir auch nicht.


Was bedeutet das genau?

Game Engines benutzen seit je her 32Bit Datentypen. Aber es gibt viele Anwendungsgebiete (z.B. Koordinaten auf ner Map) bei denen 16Bit vollkommen reichen würde.

http://images.anandtech.com/doci/11717/vegamodes2_575px.png

VEGA und auch Polaris unterstützten 16Bit nativ. VEGA kann dazu noch 2 16Bit Operationen anstatt einer 32Bit pro Takt ausführen.
Ich glaub sogar, daß 4 8Bit pro Takt (für KI) möglich sind.

Rapid Packet Math bedeutet eine Erweiterung des bisherigen GCN-Befehlsatzes um genau diese 16Bit Datentypen hardwareunterstützt zu manipulieren. Pascal bietet das übrigens nicht und Volta will das über Tensor Cores lösen.

ID und auch andere haben angekündigt, diese Unterstützung in den nächsten Versionen ihrer Engines benutzen zu wollen. Das bedeutet natürlich eine Beschleunigung der bisherigen Funktionen.

V_PK_MAD_I16
V_PK_MUL_LO_U16
V_PK_ADD_I16
V_PK_SUB_I16
V_PK_LSHLREV_B16
V_PK_LSHRREV_B16
V_PK_ASHRREV_I16
V_PK_MAX_I16
V_PK_MIN_I16
V_PK_MAD_U16
V_PK_ADD_U16
V_PK_SUB_U16
V_PK_MAX_U16
V_PK_MIN_U16
V_PK_FMA_F16
V_PK_ADD_F16
V_PK_MUL_F16
V_PK_MIN_F16
V_PK_MAX_F16
V_MAD_MIX_F32

1. http://www.gamestar.de/artikel/amd-radeon-rx-vega-rapid-packed-math-fuer-mehr-fps,3317837.html
2. https://www.youtube.com/watch?v=jMP8E-etq_E
3. http://developer.amd.com/wordpress/media/2013/12/Vega_Shader_ISA_28July2017.pdf
4. https://www.hardwareluxx.de/index.php/news/hardware/grafikkarten/44002-amd-veroeffentlicht-instruction-set-architecture-zur-vega-architektur.html

deekey777
2017-11-13, 13:16:36
Wolfenstein II nutzt RPM für Vega.

Was ist mit der PS4Pro? Wird FP16 auch abseits Vega benutzt?

Schaffe89
2017-11-13, 13:53:13
Wolfenstein II nutzt RPM für Vega.

Und niemand weiß was es wirklich bringt, das ist die Krux an der Sache.
Hab das Gefühl dass es so unnötig wie Besenreiser ist.

deekey777
2017-11-13, 14:53:49
Und niemand weiß was es wirklich bringt, das ist die Krux an der Sache.
Hab das Gefühl dass es so unnötig wie Besenreiser ist.
Mittagspause vorbei?

Sind doch alles Vollpfosten bei id software.