Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Macht AVX pro Kern 8 MULs oder ADDs, oder 8 MADs?


aths
2016-12-17, 18:32:15
Wenn ich das richtig verstehe, ermöglicht AVX mit 256-Bit großen Registern 8 32-Bit-Werte zu speichern und in einem Takt alle acht zu verrechnen. Gehört dazu auch Multiply-Add, oder benötigt das zwei Takte?

AMD-Gast
2016-12-17, 20:07:20
Fused Multiply kann in einem Schritt eine Multiplikation und eine Addition oder Subtraktion ausführen, wobei vier Register genutzt werden können. Es müssten unter AVX256types 8xfloat oder 4xdouble möglich sein. Jedenfalls laut Intels Intructionsset.

Trap
2016-12-17, 23:29:03
In http://www.agner.org/optimize/instruction_tables.pdf steht für Skylake und "VFMADD... (all FMA instr.)" eine Latenz von 4 Takten und ein Durchsatz von 2 pro Takt.

aths
2016-12-18, 12:32:30
Ich kriegs noch immer nicht hin ...

... was ist der theoretisch maximal mögliche MAD-Durchsatz pro Core bei Single-Genauigkeit (FP32)?

Gast
2016-12-18, 15:25:41
... was ist der theoretisch maximal mögliche MAD-Durchsatz pro Core bei Single-Genauigkeit (FP32)?
das kommt auf den prozessor an, skylake unterstützt avx-512 (EVEX). wieso pro core? avx (256?) ich behaupte mal 8 sp mad.

https://en.wikipedia.org/wiki/AVX-512

aths
2016-12-18, 17:15:50
Die Artikel kenne ich, leider werde ich nicht schlau daraus, was die theoretische MAD-Performance angeht.

Gast
2016-12-18, 21:04:21
Also AVX-256 = 8x32bit oder 4x64bit. Steht aber schon 2 mal da. Also um deine Frage zu beantworten, ja macht es.

https://picload.org/image/raliggla/avx256.jpg

Siehe auch: https://software.intel.com/en-us/articles/introduction-to-intel-advanced-vector-extensions

AVX-512 die doppelte Anzahl. Also theoretisch 16x32bit und 8x64bit.

aths
2016-12-19, 09:41:26
Ok – das klärt noch nicht ganz, ob das Ding pro Takt ein MAD fertigbekommt. Oder ob, schon weil ein zusätzlicher Operand zu lesen ist, zwei Takte benötigt werden.

Foobar2001
2016-12-20, 01:22:50
Ja, FMA ist single cycle throughput. Ab Haswell gibt es aber zwei FMA-Einheiten, der Durchsatz ist also 16x FP32-FMA pro Cycle.

Bei den Xeons die tatsaechlich AVX-512 koennen sind es respektive 32x FP32-FMA.