首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解FMA性能

了解FMA性能
EN

Stack Overflow用户
提问于 2019-03-03 16:26:00
回答 2查看 917关注 0票数 2

我想了解如何计算FMA的性能。如果我们看一下这里的描述:

ps&expand=2520,2520&techs=FMA

对于Skylake体系结构,指令有Latency=4Throughput(CPI)=0.5,因此指令的总体性能是每个指令的4*0.5 = 2时钟。

因此,据我所知,如果最大(涡轮)时钟频率为3 3GHz,那么对于一个核心在一秒,我可以执行1500 000条指令。

是对的吗?如果是这样的话,我观察到更高性能的原因是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-03 17:28:15

Latency=4和吞吐量(CPI)=0.5,因此指令的总体性能为每条指令4*0.5 =2个时钟。

刚计算出的单位给cycles²/instr,这是奇怪的,我没有解释它。

这里列出的吞吐量实际上是一个倒数吞吐量,在CPI中是这样的,所以每条指令有0.5个周期,或者每个周期有2个指令。这些数字是相互关联的,延迟与之无关。

有一个相关的计算同时涉及延迟和(交互)吞吐量,即延迟和吞吐量的乘积:4*2=8(以“指令数量”为单位)。这是多少个独立的操作实例可以同时“飞行”(已开始但尚未完成),可与网络理论中的带宽延迟积相媲美。这个数字通知了一些代码设计决策,因为它是代码需要向CPU公开的指令级并行性的下限,以便它能够充分利用计算资源。

票数 2
EN

Stack Overflow用户

发布于 2019-03-03 16:49:50

吞吐量为0.5意味着处理器每个周期可以执行两个独立的FMA。所以在3 3GHz时,最大的FMA值是每秒60亿。您已经说过,您只能实现略大于1.5B的吞吐量。这种情况可能是由于下列一个或多个原因造成的:

  • 由于前端瓶颈( DSB路径或螨路径),前端每个周期提供的FMA不到2个。
  • FMA之间或其他指令之间存在数据依赖关系(这可能是循环机制的一部分)。这可以另一种方式表述如下:在RS中,每一个周期准备的FMAs少于2个。当存在依赖时,延迟就会起作用。
  • 有些FMA正在使用内存操作数,如果需要时在L1D缓存中找不到这些操作数,则无法维持每周期2个FMA的吞吐量。
  • 实验中的核心频率小于3 3GHz。此因素只影响每秒的吞吐量,而不影响每一个周期。
  • 其他原因取决于您的循环到底是如何工作的,以及您如何度量吞吐量。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54971000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档