gpt4 book ai didi

performance - 即使 RS 未完全充满,RESOURCE_STALLS.RS 事件是否也可能发生?

转载 作者:行者123 更新时间:2023-12-04 12:23:40 27 4
gpt4 key购买 nike

RESOURCE_STALLS.RS的说明Intel Broadwell 的硬件性能事件如下:

This event counts stall cycles caused by absence of eligible entries in the reservation station (RS). This may result from RS overflow, or from RS deallocation because of the RS array Write Port allocation scheme (each RS entry has two write ports instead of four. As a result, empty entries could not be used, although RS is not really full). This counts cycles that the pipeline backend blocked uop delivery from the front end.



这基本上说有两种情况会发生 RS 停顿事件:
  • 当所有符合条件 RS 的条目被占用并且分配器没有停止。
  • 当因为只有两个写端口而发生“RS 解除分配”时,并且分配器没有停止。

  • 在第一种情况下,“合格”是什么意思?这是否意味着并非所有条目都可以被各种 uop 占用?因为我的理解是,在现代微体系结构中,任何条目都可以被任何类型的 uop 使用。还有什么是 RS 阵列写入端口分配方案,即使并非所有条目都被占用,它如何导致 RS 停顿?这是否意味着 Haswell 中有四个写端口,而现在 Broadwell 中只有两个?即使手册没有明确说明,这两种情况是否适用于 Skylake 或 Haswell?

    最佳答案

    是的,这是可能的 RESOURCE_STALLS在 RS 完全满之前指示已满的 RS。

    随着 RS 变满,将新的 uops 分配到 RS 变得不太理想,直到在某个时候它可能完全停止,即使一些条目仍然存在。

    此外,并非所有 RS 条目都可用于所有指令。例如,在 Haswell 上,我观察到 60 个 RS 条目中只有 30-32 个可用于加载:例如,这些条目可能很特殊,因为它们支持 uop 重放。在 Skylake 上,情况有所不同:整个 RS 对任何类型的指令都不可用:相反,“97 项”RS 实际上由用于 ALU 操作的 64 项 RS 和用于加载操作的 33 项 RS 组成.因此,RS(es) 的全部 97 个条目很少会被填满,除非巧合地同时填满。
    RESOURCE_STALLS.RS事件 (umask 0x4 ) 仅在 RS 的“ALU”部分已满(或已满以至于操作无法分配)时触发。对于负载 RS(与 Haswell 中的 ALU RS 重叠但不与 Skylake 重叠),相应的事件具有 umask 0x40 .您可以通过 perf 使用它如 'cpu/event=0xa2,umask=0x40,name=resource_stalls_memrs_full/ .尽管 Skylake 没有记录这些事件,但它们似乎工作正常(尽管带有 umask 0x100x80 的事件与 Sandy Bridge 上记录的事件非常不同。

    future 的英特尔芯片可能会有更细粒度的预留站。

    关于performance - 即使 RS 未完全充满,RESOURCE_STALLS.RS 事件是否也可能发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52656695/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com