如何计算为英特尔(R)核心(TM)i7-3770 CPU单精度数据和双精度数据的峰值性能

问题描述 投票:1回答:1

如何计算单精度数据和双精度数据的英特尔(R)核心(TM)i7-3770 CPU的峰值性能。 linux下的“猫的/ proc / cpuinfo中”低于,这是最后一个:

processor   : 7
vendor_id   : GenuineIntel
cpu family  : 6
model       : 58
model name  : Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz
stepping    : 9
microcode   : 0x10
cpu MHz     : 1600.000
cache size  : 8192 KB
physical id : 0
siblings    : 8
core id     : 3
cpu cores   : 4
apicid      : 7
initial apicid  : 7
fpu     : yes
fpu_exception   : yes
cpuid level : 13
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm ida arat epb xsaveopt pln pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase smep erms
bogomips    : 6784.16
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

已经有过类似的问题命名How to compute the theoretical peak performance of CPU,答案给的公式来计算峰值性能,并且它提供了双精度的峰值性能。因此,如何计算单精度的表现呢?可能有人给两个公式来计算分别为单精度数据与双精度数据。

浮子点数据由SSE单元完成的,的i7-3770的一个是SSE4.1/4.2, AVX,所以另一个问题是,不同版本的SSE提供每个周期不同的CPU指令单精度数据和双精度?我在哪里可以找到详细的文档。

architecture cpu
1个回答
7
投票

GFLOPS Equation

对于一个处理器(和一个插座)的系统,这里的公式:

GFLOPS =芯×核心频率(GHz)的数量×每一个时钟周期的操作数

对于公式,您可以使用物理核心,而不是逻辑(线程)。此外,处理器核心每秒可以完成操作的数量取决于有问题的处理器的架构变化,以及是否单或双精度数字后是。我将在下面详细解释这一点。


SSE, SSE2 and 3DNow! Instructions (ISEs)

计算为老年处理器架构的FLOPS性能较我们已经习惯了较新的芯片更多地参与。如果你不计算比K8或旧的酷睿2芯片的任何的FLOPS /周期计划,那么你就可以掩盖这一节。有一两件事要采取远离这一切,虽然是这样的认为的扩展指令集可以影响FLOPS /周期的芯片可以运行的数量。例如,奔腾4没有指令集扩展可在单精度执行,充其量1个FLOP /循环。与所用SSE,但是,它可以在单精度执行4个FLOPS /循环。此外,双精度为奔腾从1个FLOP /周期4个双打没有扩展,以2个FLOPS /循环使用SSE2。

如果SSE指令的支持,4个FLOPS可以每时钟周期执行。这适用于支持SSE指令英特尔和AMD的处理器。

SSE2指令允许2个触发器与每一个周期的双精度运算。 SSE2不影响单精度。这同样适用于供应商,虽然被警告。 AMD的处理器的型号有限范围内的早期采用阶段支持SSE2,而这也正是最后一组指令进来......

支持3DNow!指令仅用于AMD的部分。在触发器/循环的范围,该功能是相同的SSE指令。因此,AMD的芯片,支持支持3DNow!但缺乏支持SSE,仍然可以进行每时钟周期4个FLOPS为单精度。支持3DNow!不影响双精度。也有支持AMD的3DNow款!和SSE指令。你为什么问?这些指令的功能超越FLOP改进,以及一个提供了其他没有,反之亦然功能。这超出你问的范围,但我觉得有必要澄清,以避免混淆。

Intel和AMD都喜欢来计算FLOPS /周期,使所有的扩展指令集,所以我建议你做同样的。

对于较新的架构,这种需求不是问题。从奔腾III支持SSE所有英特尔家庭,从奔腾4支持SSE2。从K6-2支持支持3DNow !,并从的Athlon XP / MP,毒龙和Sempron支持SSE所有AMD的家庭。在AMD芯片支持SSE2没有到达,直到Athlon 64和它的兄弟姐妹,闪龙和Turion 64处理器。


FLOPs/Cycle per Architecture

(请注意以下列表包含架构名称,而不是处理器家族的名字。)

  • P5&P6(没有离子选择电极)+ Pentium Pro的&奔腾II = 1(单); 1(双)
  • P6(奔腾III只)= 4(单); 1(双)
  • 的NetBurst = 4(单); 2(双)
  • 奔腾M&增强奔腾M = 4(单); 2(双)
  • 芯,Penryn的,Nehalem的&的Westmere = 8(单); 4(双)
  • 桑迪桥&常春藤桥= 16(单); 8(双)
  • 的Haswell,Broadwell微架构,SKYLAKE微架构(LGA1151和移动),Kaby湖和咖啡湖= 32(单); 16(双)
  • 狗( “狗-X” 女儿I7&女儿I9 [LGA2066])= 128(单一)? 64(Douvlis)
  • SKYLAKE微架构( “SKYLAKE微架构-SP” 至强青铜与至强银)= 64(单); 32(双)
  • SKYLAKE微架构( “SKYLAKE微架构-SP” 至强金&至强白金)= 128(单); 64(双)
  • 邦内尔,盐井,Silvermont&Airmont = 6(单); 1.5(双)
  • MIC( “骑士角” 至强披)= 32(单); 16(双)
  • MIC( “骑士降落” 至强披)= 64(单); 32(双)
  • K5 K6&= 0.5(单); 0.5(双)
  • K6-2及K6-III = 4(单); 0.5(双)
  • K7 K8&= 4(单); 2(双)
  • K10 /星= 8(单); 4(双)
  • 赫斯基= 8(单); 4(双)
  • [注]推土机,打桩机,压路机&挖掘机= 8(单); 4(双)
  • 禅&禅+ = 16(单); 8(双)
  • 禅2 = 32(单); 16(双)
  • 山猫= 4(单); 1.5(双)
  • 美洲虎,彪马和Puma + = 8(单); 3(双)

注 - 共享的FPU意味着有一个FPU每两个内核的。尽管什么是网上流传,AMD声称基于压路机,A10-7850K能够856个GFLOPS SP;那些737是为Radeon R7集成图形,留下119为CPU。为了实现119个SP GFLOPS,需要每个周期8个FLOPS。这应该适用于推土机的所有变体为FPU设计在整个保持一致。

© www.soinside.com 2019 - 2024. All rights reserved.