49 cpu intel cpu-architecture avx flops
我对使用Sandy-Bridge和Haswell可以完成每个核心每个循环的触发器感到困惑.据我所知,对于SSE,每个核心每个周期应该为4个触发器,对于AVX/AVX2,每个核心每个周期应该有8个触发器.
这似乎在这里得到验证, 如何实现每个周期4个FLOP的理论最大值? ,这里, Sandy-Bridge CPU规范.
然而,下面的链接似乎表明,Sandy-bridge每个核心每个周期可以执行16个触发器,每个核心每个循环使用Haswell 32个触发器 http://www.extremetech.com/computing/136219-intels-haswell-is-an-前所未有-threat-to-nvidia-amd.
谁可以给我解释一下这个?
编辑:我现在明白为什么我感到困惑.我认为术语FLOP仅指单浮点(SP).我现在看到如何在每个循环中实现理论最大值4 FLOP的测试?实际上是双浮点(DP),因此它们为SSE实现4个DP FLOP /周期,为AVX实现8个DP FLOP /周期.在SP上重做这些测试会很有趣.
Mar*_*han 105
以下是一些最近处理器微体系结构的FLOP计数以及如何实现它们的说明:
英特尔酷睿2和Nehalem:
英特尔Sandy Bridge/Ivy Bridge:
Intel Haswell/Broadwell/Skylake/Kaby Lake:
AMD K10:
AMD推土机/打桩机/压路机/挖掘机,每个模块(两个核心):
AMD Ryzen
Intel Atom(Bonnell/45nm,Saltwell/32nm,Silvermont/22nm):
AMD山猫:
AMD Jaguar:
ARM Cortex-A9:
ARM Cortex-A15:
Qualcomm Krait:
IBM PowerPC A2(Blue Gene/Q),每个核心:
IBM PowerPC A2(蓝色基因/ Q),每个线程:
英特尔至强披风(骑士角),每核心:
英特尔至强披风(骑士角),每线程:
Intel Xeon Phi(Knights Landing),每核心:
IBM Blue Gene/Q和Intel Xeon Phi(Knights Corner)的每线程和每核心数据的原因是,当每个核心运行多个线程时,这些核心具有更高的指令发布率.
A F*_*Fog 19
Haswell的吞吐量低于乘法和FMA.有两个乘法/ FMA单位,但只有一个fp添加单位.如果您的代码主要包含添加内容,则必须使用乘数为1.0的FMA指令替换添加内容以获得最大吞吐量.
Haswell上的FMA指令的延迟为5,每个时钟的吞吐量为2.这意味着您必须保持10个并行操作才能获得最大吞吐量.例如,如果要添加很长的fp数列表,则必须将其拆分为十个部分并使用十个累加器寄存器.
这确实是可能的,但谁会为一个特定的处理器进行如此奇怪的优化?
| 归档时间: |
|
| 查看次数: |
56746 次 |
| 最近记录: |