例如,现代i7-8700k的最大频率为4.7GHz,可以实现约60 GFLOPS(单精度source)。据我所知,一条指令至少要花费一个周期才能完成,那怎么可能呢?
答案 0 :(得分:5)
要达到如此大的效果,必须将多个因素加在一起:
将所有这些因素相乘,我们得到:8 * 6 * 2 * 2 * 4.3 = 825 GFLOPS(与报道的统计here相匹配)。这种计算当然并不意味着它实际上可以实现。例如,处理器可能会在这样的工作负载下大幅降低时钟频率,以使其保持在其功率预算之内,这至少是自Haswell以来Intel一直在做的事情(尽管具体信息已更改且已应用于服务器部件)。同样,大多数实际代码在向许多FMA提供数据方面存在很大的麻烦。不过,大型矩阵乘法可以接近,例如,根据these stats,8700k在其SGEMM基准测试中达到496.7 Gflops。可能8700k在6核上的最大AVX2 Turbo速度为2.6GHz,但据我所知默认情况下它没有AVX偏移(仅在超频时才需要),或者GEMM并没有达到达到峰值FLOPS的水平。 / p>