没有合适的资源?快使用搜索试试~ 我知道了~
BenchCouncil交易基准,标准和评估1(2021)100011重新审视幽灵和崩溃补丁的效果,自上而下的微观结构方法和购买力平价理论耶特利A 放大图片作者:David J. Lilja a,b,d科学计算b电气和计算机工程系明尼苏达超级计算研究所美国明尼苏达大学A R T I C L E I N F O保留字:瓶颈分析性能测量A B S T R A C T软件补丁可用于修复安全漏洞,增强性能和可用性。 以前的工作集中在衡量基准运行时补丁的性能影响。 在这项研究中,我们使用自顶向下的微架构分析方法来了解如何通过应用Spectre和Meltdown安全补丁来影响管道瓶颈。瓶颈分析可以更好地了解不同的硬件资源是如何被利用的,突出显示可以实现可能改进的管道部分。我们补充自上而下的分析技术,使用经济学领域的标准化技术,购买力平价(PPP),以更好地了解修补和未修补运行之间的相对差异。在这项研究中,我们发现安全补丁影响反映在相应的自上而下指标上。我们发现,最近的编译器并没有像以前报道的那样受到负面影响。在构成SPEC OMP2012套件的14个基准测试中,有三个在应用补丁时有明显的速度下降。我们还发现,自上而下的指标有很大的相对差异时,安全补丁的应用,差异的标准技术的基础上绝对的,非规范化的,指标未能突出。1. 介绍操作系统是复杂的计算机程序,不断发展以适应其运行的底层硬件的变化和更新。与任何其他软件一样,经常发布更新以解决安全问题,提高可用性,增强性能并修复软件错误。这些修复可能会影响性能,因此必须了解 软件补丁对系统的影响。它是通过使用 众所周知的性能指标,可以通过量化安全补丁不仅对整体性能,而且对构成CPU的不同子系统的影响来进行适当的2008年1月,两个主要的漏洞被报告,Spectre和Meltdown [1,2]。这些漏洞使攻击者能够绕过安全机制访问存储在内存或缓存中的数据。这些漏洞利用了CPU的特性,可以使用推测执行来提高CPU性能。人们担心,安全修复可能会减少CPU的推测能力,从而对性能产生重大不利影响。一些关于Spectre和Meltdown安全补丁对性能影响的研究已经发表。在一项研究中,作者:科学计算。电子邮件地址:yhuerta@umn.edu(Y.A.Huerta),lilja@umn.edu(D.J.Lilja)。https://doi.org/10.1016/j.tbench.2021.100011许多Cray超级计算机被用来分析补丁对运行时性能的影响。测试了一些基准测试,发现安全补丁的总体影响很小[3]。另一项研究显示了不同补丁对两个计算密集型工作流的影响,pMatlab和Keras与TensorFlow,基于英特尔的集群[4]。它报告说,一旦应用CPU微码更新,pMatlab的负面影响高达21%,TensorFlow的负面影响高达为了量化对配置或代码的更改对性能的影响,使用了性能指标,例如从自顶向下瓶颈分析中得出的性能指标[5]。这种方法,在更改后比较度量,称为差异分析,并且它可以将系统或代码上的特定更改与性能度量的更改相关联[6]。在比较绝对比率时可能会出现问题。问题是,这种比较可能无法全面反映各比率之间的变化用购买力平价技术[7]标准化的相对变化可以提供有关指标漂移的额外信息。这种技术已经被用来解释GCC编译器套件版本之间的差异[8],使用自顶向下的瓶颈分类方法。PPP接收日期:2021年8月6日;接收日期:2021年10月11日;接受日期:2021年10月20日2021年11月4日网上发售2772-4859/©2021作者。Elsevier B. V.代表KeAi Communications Co. Ltd.提供的出版服务。这是CC BY-NC-ND许可证下的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect标准和评价期刊主页:https://www.keaipublishing.com/en/journals/benchcouncil-transactions-on-benchmarks-standards-and-evaluations/BenchCouncil交易基准,是的Huerta和D.J.LiljaBenchCouncil交易基准,标准和评估1(2021)1000112它使我们有可能在不同的自上而下的类别中识别出显著的相对变化。自顶向下分类与PPP标准化结合,已类似地应用于AArch64架构[9],在那里它被用于分析强大的可伸缩性及其产生的瓶颈。在这项研究中,进行了全面的自上而下和PPP分析,以量化系统在启用Meltdown和Spectre安全补丁时的绝对和相对瓶颈度量变化(瓶颈漂移)。我们的研究做出了以下贡献:• 我们发现补丁设置之间除了一个基准之外几乎没有什么区别。• 我们发现,即使安全补丁对性能的影响很小• 我们发现,相对速率可以显著变化,而绝对瓶颈可以保持相对相似。• 我们强调了指标的趋势和差异,否则标准评估实践可能会忽视这些趋势和差异性能分析和系统表征是一个耗时且复杂的过程。检查安全补丁的影响需要对不同程序进行多次测试。我们的方法可以通过量化补丁应用时的绝对和相对变化来比较瓶颈指标。这使得可以以更全面地了解安全补丁对系统的影响。2. 背景2.1. Spectre和Meltdown漏洞Meltdown漏洞允许攻击者获得读访问权限所有的内存,即使缺乏适当的特权这样做[2]。Spectre漏洞允许攻击者通过分支错误预测获得私人信息[1]。在这项研究中,我们重点关注补丁对管道瓶颈的影响。操作系统供应商提供了以下变体安全补丁,并将其应用于系统:[11,12]:• Spectre,变体1:这是一个始终启用的内核补丁修复。 它在分支过程中提供边界检查,以防止任意绕过。• Spectre,变体2:此修复包括微码和内核补丁。 可以禁用它以防止性能影响。它通过间接分支中毒防止数据泄漏• Meltdown,variant 3:这是一个内核修复。它可以被禁用,以防止性能影响.它可以防止攻击者通过推测性缓存加载读取内存。在下面的小节中,我们将讨论用于分析Spectre变体2和Meltdown变体3的安全补丁对系统性能影响的方法。2.2. Top-Down分类法自顶向下分析方法是一种瓶颈分类技术,用于识别应用程序的主要瓶颈。 此方法跟踪CPU流水线插槽-处理微操作(uop)所需的资源。Uop是微体系结构指令的低级硬件操作,其被生成以表示由CPU执行的应用。管道插槽被分配到四个主要类别:前端绑定,后端绑定,退休和不良投机[5]。一个简单的分类适用于管道插槽将瓶颈分配到正确的类别。如果分配了时隙,如果该时隙最终被停用,则它将被分类为停用。它将如果未停用,则将其分配到“不良推测”类别。如果无法分配插槽,它将被分配给后端绑定如果它是一个后端失速类。否则,它将被分配到前端绑定类别。当流水线的后端部分没有足够的资源来处理新插槽时,就会发生后端停顿。当前端不能向管道的后端部分提供插槽时,发生前端失速。非失速插槽被分类作为坏推测,当插槽由于不正确的推测而永远不会退出时,或者插槽由于先前的坏推测而导致的恢复操作而被流水线阻塞时。失效的插槽是成功完成其操作的插槽。为了应用自顶向下分析技术,用户将首先计算主要类别度量以识别哪个分类具有最高瓶颈率。一旦确定了一个类别,用户就可以通过只关注所选主类别的子类别来缩小分析所需的指标。用户可以继续生成指标,直到确定问题的根源。由于我们的目标是提供组成处理器的不同组件的全面视图,因此我们的实验运行包括多个类别。这使我们能够更全面地了解整个处理器的瓶颈,并更好地了解不同处理器组件如何受到安全补丁的影响。表1列出了本文中使用的主要自顶向下类别和子类别,以及计算指标所需的相应公式。CPU供应商提供了自顶向下指标的更深入的描述、定义和技术,以及如何使用自顶向下分析方法[13]。2.3. 购买力平价购买力平价理论是计算不同国家之间相同产品(如拿铁和iPod)成本的不同方法的基础,每个国家都有不同的货币[7,14,15]。 最著名的购买力平价指数是巨无霸指数(BMI),由《经济学人》杂志开发[16]。BMI的目标是通过测试一种货币与另一种货币相比可以购买多少相同产品来比较货币的实力。一种货币被高估--当使用该货币购买的产品与基础货币相比,当产品更便宜时,价格更昂贵以下是《经济学人》杂志中描述的人民币对美元购买力的说明性例子。例如,美元兑人民币的汇率是1美元= 6.4元人民币。巨无霸的报价是5美元和20元。当量(1)计算巨无霸的汇率,该汇率基于其当地价格。20闪烁5 = 4(1)当量(1)表明在巨无霸汉堡价格的基础上,汇率应定在4元兑1美元。由于实际汇率是6.4元兑1美元,Eq. (2)显示人民币对美元低估(4 − 6.4)100 scin6.4 = −37.5(2)PPP理论可用于确定由相同基准测试产生但在不同系统配置下产生的瓶颈之间的相对差异。用于比较成本的货币是运行程序完成所花费的周期数。被比较的产品是每个基准的自顶向下指标。目标是显示一个指标值可以与另一个指标值不同或相似,如自上而下公式所定义的,而与基线运行相比,其真实成本可能相对较高或较低。PPP标准化率接近0%意味着禁用的补丁和启用的补丁指标之间的对等性。对于类似数量的流水线时隙,需要大约相同数量的自上而下度量速率。对于正PPP速率,这意味着启用的修补程序���������������周期被高估了。与禁用安全补丁的配置相比,它需要更少的周期来实现相同的度量幅度。负购买力平价率意味着,���������������是的Huerta和D.J.LiljaBenchCouncil交易基准,标准和评估1(2021)1000113表1英特尔Skylake处理器的自顶向下指标公式[5,10]。度量公式CORE_CLKS CPU_CLK_UNHALTED.THREAD_ANY/2CLKS CPU_CLK_UNHALTED.THREAD插槽4 * CORE_CLKS前端绑定前端绑定IDQ_UOPS_NOT_DELIVERED.CORE/SLOTSDSB(IDQ.ALL_DSB_CYCLES_ANY_UOPS - IDQ.ALL_DSB_CYCLES_4_UOPS)/CORE_CLKS分支重新调用(INT_MISC.CLEAR_RESTEER_CYCLES+BACLEARS.ANY)/CLKS第一千一百零六章恶意揣测错误推测(UOPS_ISSUED.ANY - UOPS_RETIRED.RETIRE_SLOTS+ (4*Recovery_Cycles))/插槽Recovery_Cycles INT_MISC.RECOVERY_CYCLES_ANY/2分支预测错误(BR_MISP_RETIRED.ALL_BRANCHES/(BR_MISP_RETIRED.ALL_BRANCHES+ MACHINE_CLEARS.))* 错误推测机器清除错误推测-分支预测错误退休停用UOPS_RETIRED.RETIRE_SLOTS/SLOTS微码定序器((UOPS_RETIRED.RETIRE_SLOTS /UOPS_ISSUED.ANY)* IDQ.MS_UOPS)/老虎机基地退休-微码定序器后端绑定后端绑定1-(前端绑定+不良推测+退出)后端限制、内存限制存储绑定EXE_ACTIVITY.BOUND_ON_STORES/CLKSL2_Bound_Ratio(CYCLE_ACTIVITY.STALLS_L1D_MISS-CYCLE_ACTIVITY.STALLS_L2_MISS)/点击LOAD_L2_HIT MEM_LOAD_RETIRED.L2_HIT*(1+MEM_LOAD_RETIRED.FB_HIT/MEM_LOAD_RETIRED.L1_MISS)L1结合(CYCLE_ACTIVITY.STALLS_MEM_ANY-CYCLE_ACTIVITY.STALLS_L1D_MISS)/点击L2结合(LOAD_L2_HIT/(LOAD_L2_HIT + L1D_PEND_MISS.FB_FULL))* L2_Bound_RatioL3绑定(CYCLE_ACTIVITY.STALLS_L2_MISS-CYCLE_ACTIVITY.STALLS_L3_MISS)/点击DRAM绑定(CYCLE_ACTIVITY.STALLS_L3_MISS/CLKS)+ L2_Bound_Ratio -L2_Bound后端绑定、核心绑定分频器ARITH.DIVIDER_ACTIVE/CLKSUPC UOPS_RETIRED.RETIRE_SLOTS/CLKS已执行的几个Uops_阈值EXE_ACTIVITY.2_PORTS_UTIL * UPC/5Core_Bound_Cycles EXE_ACTIVITY. EXE_BOUND_0_PORTS + EXE_ACTIVITY.1_PORTS_UTIL+ Few_Uops_Executed_ThresholdARITH.DIVIDER_ACTIVE EXE_ACTIVITY.EXE_BOUND_0_PORTS的端口利用率那么端口利用率= Core_Bound_Cycles/CLKS否则端口利用率=(Core_Bound_Cycles-EXE_ACTIVITY.EXE_BOUND_0_PORTS)/CLKS对于启用修补程序的配置,其价值被低估。与禁用安全补丁的配置相比,它需要更多的周期才能实现相同的指标值。使 用 表 1 中 描 述 的 公 式 计 算 自 上 而 下 的 指 标 。 使 用CPU_CLK_UNHALTED。THREAD或CPU_CLK_UNHALTED.THREAD_ANY计算PPP汇率,公式(3),是基于PMU事件的自顶向下的度量公式在其计算中使用。某些指标使用CLKS , 而 其他 指 标 使 用 CORE_CLKS 性 能 指标 。 用 于 比 较的 基 线RISKU_RISK值是从禁用安全补丁的运行中获得的。闪烁_闪烁=闪烁U_闪烁U_闪烁_闪烁(3)������������������������������������������������������������������������当量(4)计算PPP指数。基线由变量“自上而下”表示,它是禁用安全补丁后的自上而下度量值。������������������������������������������当补丁被禁用时。PPP汇率是使用PMU事件CPU_CLK_UNHALTED计算的。THREAD_ANY,结果值为1.46,等式(五)、发现安全补丁设置之间 的 漂 移 为 − 52.42% , 等 式 ( 六 ) 、 启 用 修 补 程 序 后 ,CPU_CLK_UNHALTED.THREAD_ANY被高估。当禁用修补程序时,系统使用更多的CPU_CLK_UNHALTED.THREAD_ANY周期来停用类似数量的uop81671652350125闪烁55924600475776=1.46( 5)100((0.06789046 scin0.09773369)− 1.46)scin1.46 = −52.42(6)在本文中,我们使用指标之间的相对变化,补丁设置之间的自顶向下指标的差异除以补丁被禁用时的指标值,作为补丁设置之间的变化的附加指标。对于刚刚描述的示例,370.mgrid331的Retiring指标的相对变化为-30.54%。���������=100∗((������������������∕��� ���������������������������������������)−__)闪烁__������������������������������������������������(四)相对变化率和PPP标准化率让我们了解补丁设置之间自上而下指标的相对变化,而不是以下示例说明如何根据370.mgrid331基准点的退休指标的相对差异计算漂移使用表1中所示的自顶向下方法提供的公式计算退休指标,当启用修补程序时,结果为0.06789046,当启用修补程序时,结果为是的Huerta和D.J.LiljaBenchCouncil交易基准,标准和评估1(2021)10001140.09773369改变对系统的影响。此外,PPP标准化率为我们提供了考虑到用于计算指标的核心周期数时的相对变化信息,当在透视图的相对变化中放置较大的百分比值时,是的Huerta和D.J.LiljaBenchCouncil交易基准,标准和评估1(2021)1000115表2SPECOMP2012基准说明[17]。Benchmark name编程语言描述350. md Fortran物理:分子动力学351. bwaves Fortran Physics:计算流体动力学(CFD)352. nab C分子模拟357. bt331 Fortran物理:计算流体动力学(CFD)358. botsalgn C蛋白比对359. botsspar C Sparse LU360. ilbdc Fortran Lattice Boltzmann362. fma3d Fortran机械响应仿真363. 天气预报软件367.imagick C图像处理370. mgrid331 Fortran物理:计算流体动力学(CFD)371. applu331 Fortran物理:计算流体动力学(CFD)372. 最优模式匹配376.kdtree C++排序和搜索3. 实验装置我们使用自上而下的方法结合SPEC OMP2012基准测试[17,18]来测量Spectre和Meltdown补丁对英特尔2021.1编译器套件的影响。以下编译器选项被用作编译大多数基准测试的默认选项:-fopenmp -O3 -march= skylake-avx 512-g-pg。有些基准需要额外的或不同的选择 。 371.applu331 基 准 使 用 -fopenmp-O2-march= skylake-avx 512-g-pg。367.imag- ick要求将编译器选项-std=c99添加到默认选项中。此外,选项-FR被添加到350.md ,而 - mcmodel=medium 需要添加到363.swim和357.bt331基准测试中。SPEC OMP 2012基准测试如表2所示。遵循SPEC报告指南的OMP 2012结果可提交发表[19]。使用双插槽Intel(R)Xeon(R)Silver 4110 CPU@2.10 GHz,每个插槽8个内核,每个内核2个线程,运行安装的CentOS 7.6.1810 Linux版本。perfrecord在每次实验运行时从八个性能计数器收集数据。对于两种修补程序设置,每个性能计数器至少有五个数据点。为了计算自顶向下度量速率,使用性能计数器值的平均值可以通过Red Hat Linux供应商提供的接口禁用Spectre变体2和Meltdown变体3,该接口也可用于CentOS发行版。 供应商还提供了一个脚本来检查安全补丁的状态,以查看系统当前是否启用或禁用了补丁[12]。在本研究中,使用了版本3.1的验证脚本。若要禁用安全修补程序 , 则 将 0 存 储 在 以 下位 于 /sys/kernel/debug/x86/ 中 的 文 件 :ibrs_enabled、retp_enabled和pti_enabled。通过将同一文件中的0替换为1来启用修补程序。4. 结果分析图1显示了启用安全补丁时的加速增益或损失。对于两种补丁设置,每个基准测试至少运行55次,取平均值来计算加速比。该图显示,大多数基准测试都遭受了大约0.01 kHz的加速损失。例外的是360.ilbdc,它经历了0.02的小幅增益,而370.mgrid331,它有接近0.04的负面影响。���虽然这些对运行时间的影响并不显著,但我们通过使用自顶向下的分类方法进一步分析了安全补丁的影响,以了解瓶颈如何影响基准测试的子集。我们表明,虽然基准运行时是相似的,但它们的瓶颈概况是不同的。通过使用PPP技术,我们能够突出显示并量化这些相对差异,与基线相比,禁用了安全补丁的系统。表3显示了用于计算自顶向下指标的重要性能计数器。当结果遵循一个Fig. 1. 英特尔2021.1编译器套件在使用SPEC OMP2012基准测试(32个线程和启用SMT)启用补丁程序时的加速比较。更高更好正态分布,采用非配对双样本t检验。 当结果不遵循正态分布时,使用非参数双样本Wilcoxon秩检验。对于两种设置,启用和禁用补丁程序,每个计数器至少运行五次。性能计数器的P值在小于0.05的值处被标识为显 著 的 。 对 于 “ 停 用 ” 类 别 , 启 用 补 丁 程 序 时 , 微 码 定 序 器 为358.botsalgn 、 359.botsspar 和 370.mgrid331 提 供 了 更 多 uop 。 此 外 ,359.botss- par增加了资源分配表发出的uop数量,同时启用补丁时,退役插槽的数量也增加了。358. botsalgn有相反的效果。对 于 前 端 边 界 指 标 , 358.botsalgn 、 359.botsspar 、 360.ilbdc 和370.mgrid331在启用补丁程序时,每个线程未交付到资源分配表的uop数量有所增加。未交付的uop中的较高数量可能会转化为前端供应不足,从 而 导 致 CPU 的 后 端 部 分 的 流 水 线 。 类 似 地 , 358.botsalgn 、359.botsspar、360.ilbdc、370.mgrid331和371.applul331报告了在启用补丁的提取行中遇到分支指令时,前端资源被重新定向的次数增加。358.botsalgn和359.botsspar的uop数量减少,传送到指令解码队列单元的uop周期减少了4个。这些减少发生在启用修补程序是的Huerta和D.J.LiljaBenchCouncil交易基准,标准和评估1(2021)1000116表3重要的性能计数器。性能计数器基准类别BACLEARS.ANY 358.botsalgn,359.botsspar,360.ilbdc,370.mgrid331,371.applu331分支恢复器BR_MISP_RETIRED.ALL_BRANCHES 358.botsalgn,359.botsspar,360.ilbdc,370.mgrid331,371.applu331分支错误预测CPU_CLK_UNHALTED.THREAD 360.ilbdc CLKSCPU_CLK_UNHALTED.THREAD_ANY359.botsspar,360.ilbdc,359.botsspar CORE_CLKSCYCLE_ACTIVITY.STALLS_L1D_MISS359.botsspar L1、L2结合CYCLE_ACTIVITY.STALLS_L2_MISS 359.botsspar L2、L3结合CYCLE_ACTIVITY.STALLS_L3_MISS 359.botsspar,370.mgrid331 L3,DRAM绑定周期_活动.停止_MEM_ANY358.botsalgn L1绑定EXE_ACTIVITY.2_PORTS_UTIL 359.botsspar Few_Uops_Executed_ThresholdEXE_ACTIVITY. EXE_BOUND_0_端口358.botsalgn、359.botsspar、360.ilbdc端口利用率IDQ.ALL_DSB_CYCLES_4_UOPS 358.botsalgn、359.botsspar DSBIDQ.ALL_DSB_CYCLES_ANY_UOPS 358.botsalgn,359.botsspar DSBIDQ. MS_UOPS 358.botsalgn,359.botsspar,370.mgrid331微码定序器IDQ_UOPS_NOT_DELIVERED. CORE 358.botsalgn,359.botsspar,360.ilbdc,370.mgrid331前端INT_MISC. CLEAR_RESTEER_CYCLES 358.botsalgn,359.botsspar,360.ilbdc,370.mgrid331 Branch Resteers INT_MISC. RECOVERY_CYCLES_ANY 358.botsalgn,359.botsspar,360.ilbdc,370.mgrid331,371.applu331 Recovery_Cycles MACHINE_CLEARS. SPR358.botsalgn,359.botsspar,360.ilbdc,370.mgrid331、371.applu331分支预测错误MEM_LOAD_RETIRED. FB_HIT 358.botsalgn、359.botsspar L2 BoundMEM_LOAD_RETIRED.L1_MISS 358.botsalgn L2绑定UOPS_ISSUED.任何358.botsalgn,359.botsspar错误推测,微码定序器UOPS_RETIRED.RETIRE_SLOTS 358.botsalgn,359.botsspar错误推测,正在停用,微码定序器在“不良推测”类别中,启用补丁程序后,以下基准测试的统计显著性增 加 。 358. bot-salgn 、 359.botsspar 、 360.ilbdc 、 370.mgrid331 和371.applu331在需要清除流水线的事件数量、错误预测的失效指令数量以及由于从早期清除事件恢复而导致的停滞数量方面都有所增加。在核心绑定类别中,358.botsalgn、359.botsspar和360.ilbdc的周期在统计上显著增加,其中所有端口上都没有执行uop。 359.botsspar 有所增加在所有端口上执行2个uop的周期数。 在内存限制分类中,由于L1D的359.botsspar 、 L2 的 359.botsspar 和 L3 的 370.mgrid331 的 数 据 此 外 ,359.botsspar报告了由于内存子系统未完成的负载而导致的执行暂停的统计显著增加。4.1. 自上而下指标图 2(a)显示了安全补丁对主要自上而下类别的影响。除360.ilbdc外,所有前端边界值都已删除。启用修补程序时,这是由两个因素驱动的:所有基准测试的CPU_CLK_UNHALTED.THREAD_ANY数量增加,以及未交付的uop数量当 流水线的后端部分没有停止时,IDQ_UOPS_NOT_DELIVERED.CORE性能计数器相对保持相同。在360.ilbdc的情况下,情况正好相反,CPU时钟周期的数量保持相对不变,而未交付的uop数量增加了11%以上。这导致在启用安全补丁时,前端绑定指标增加了7.5%。图图2(b)显示了相应的购买力平价标准化比率。除了360.ilbdc的购买力平价率为3.67%外,所有基准的购买力平价率都为负,从358.botsalgn和359.botsspar 的-22%到370.mgrid的-49%不等。随着CPU_CLK_UNHALTED.THREAD_ANY周期数的增加,未交付的uop数量略有增加导致每个周期未交付的uops减少,从而使周期被低估。启用补丁的运行处理了相对相同数量的失速,但有更多的核心周期。当应 用补 丁程 序时 ,所 有基 准的 “退休 ”度量 值都 会降 低。370.mgrid331 下跌了-30.53%,而350.md和 371.applu331下跌了约-20% 。 360.ilbdc 下 跌 -2.73% 。 这 是 由 于 内 核 周 期CPU_CLK_UNHALTED.THREAD_ANY的增加,而启用修补程序时停用的插槽数量相对保持不变购买力平价率所有基准均下降除了360.ilbdc,所有人都至少有一个-24%的跌幅,370.mgrid的跌幅为-52%。数量的核心周期增加了安全补丁启用,退休的插槽保持相对不变。370.mgrid的核心周期增幅最大,为46%,而360.ilbdc增幅最小,为3.73%。这解释了购买力平价比率之间的差异启用修补程序后350.md的不良推测指标增加了101%,371.applu331增 加了50% ,360.ilbdc 增 加了 51% 。 这是 由 于UOPS_ISSUE_ANY 和Recover- ery_Cycles增加,而UOPS_RETIRED.RETIRED_SLOTS的数量保持相对不变。其他基准测试,359.botsspar,358.botsalgn和370。mgrid331的不良投机率下降不到-4%。由于时钟周期数(公式中的分母)也会增加,但增加的速率更大,因此启用修补程序后,不良推测率会降低。虽然常规利率下降了-4%,但PPP标准化利率的幅度更大,370.mgrid为32.23%,359.botsspar为16.63%,358.botsalgn为14.84%。堆芯周期大幅增加的影响,370.mgrid331增加46%,359.botsspar和358.botsalgn增加14%,导致PPP率下降。启用补丁后,有更多的核心周期来完成相同的工作量,这导致核心周期的价值。 其他基准在以下方面取得了进展:购买力平价标准化率。 350.md的涨幅为57.15%,371.applu331的涨幅为21.06%,360.ilbdc的涨幅为46.42%。对于此子集,Recovery_Cycles指标的增长率要大得多与购买力平价为负的基准相比,350.md的Recovery_Cycles增加了1334%,而371.applu331增加了1446%,360.ilbdc增加了983%。购买力平价比率为正数表明,核心周期估值过高,与基线运行相比,在核心周期较少的情况下完成在360.ilbdc基准测试中,修补程序设置之间的Backend Bound指标差异不到1%。对于360.ilbdc,Bad Speculation、Front End和Retiring指标相对保持不变,导致后端绑定率非常相似。所有其他基准测试的后端绑定率都有所增加,因为启用补丁时退休率较低。370.mgrid331录得4%升幅,而371.applu331则录得6%升幅其他基准也有大幅增长。359.botsspar增长了19%,350.md增长了55%,botsalgn增长了76%。购买力平价利率上升的基准,有大量增加的后端绑定利率。例如,350.md的核心周期增加了28%,但其后端绑定率在增加54%时产生了更大的影响,导致PPP率为20%。370.mgrid331的核心费率增加了46%, a后端绑定费率增加3.90%,导致PPP费率为是的Huerta和D.J.LiljaBenchCouncil交易基准,标准和评估1(2021)1000117图二、 自顶向下架构瓶颈分类的主要类别的结果。-28%。当启用补丁时,某些基准的周期数以高于要处理的uop的速率增加,导致负PPP速率,而其他基准的周期数随着uop数量的增加而成比例地减少,导致高估的周期和正PPP速率。以下小节描述了安全补丁对不同自顶向下子类别的影响。4.1.1. 前端边界前端失速跟踪当管道前端供应不足时管道后端本文研究了两个子类别:DSB和Branch Resteers。DSB度量跟踪受解码的uop缓存、DSB、提取流水线影响的CPU周期的部分。分支重定向器说明了由于分支重定向器而导致的CPU停顿,即在错误预测的分支之后,来自正确图3(a)显示启用安全修补程序后,分支机构重新登录者指标增加这是由于问题阶段必须等待从错误推测事件中恢复的周期数增加例如,350.md的分支机构重新登录率增加了329%,主要是图三. 前端绑定子类别。部 分 原 因 是 INT_MISC.CLEAR_RESTEER_CYCLES 增 加 了 234% ,CPU_CLK_UNHALTED. THREAD 略 微 下 降 了 -2.58% 。 360.ilbdc 的BranchResteers增加了117.93%,这是因为INT_MISC.CLEAR_RESTEER_CYCLES增加了61.81%,CPU_CLK_UNHALTED.THREAD减少了−19.65%。分支机构重新部署指标的归一化PPP率均为正值,图。3(b).当CPU核心周期增加时,分支重新占用率以更高的速率增加。购买力平价比率增幅最大的原因是分支机构重新供资大幅增加,而核心周期的比率增幅较低。350.md的情况就是如此,其购买力平价率为340.42%。其核心周期率增加了28.16%,而其分支重新调用率增加了329.04%。同样,360.ilbdc的购买力平价率为171.25%,因为核心周期增加了3.73%,启用修补程序后,分支机构重新登录人数增加了117.94%。与基准相比,核心周期的价值被高估,因为较少的核心周期所做的工作相对较少是的Huerta和D.J.LiljaBenchCouncil交易基准,标准和评估1(2021)1000118启用修补程序后,DSB度量会降低。虽然传递到指令解码队列的uop 数 量 保 持 不 变 或 略 有 减 少 , 但 仍 有 增 加CPU_CLK_UNHALTED.THREAD_ANY中的除数。对于所有基准测试,这导致了相同数量的交付uop的更多CPU周期。例如,370.mgrid331和 350.md 的CPU_CLK_UNHALTED.THREAD_ANY 分别 增加了46% 和28.16%,导致DSB分别减少了-35.54%和-23.05%,而交付的uop相对保持不变。所有基准的DSB购买力平价率均为负值。当启用补丁时,核心周期数增加,而DSB率下降具有最高速率的基准这就是370.mgrid的 情 况 。 它 的 PPP 速 率 为 −55.87% ,CPU_CLK_UNHALTED.THREAD_ANY值增加了46.04%360.ilbdc报告的购买力平价率最低。它的核心周期略有增加,为3.73%,而DSB率下降了-9.29%。4.1.2. 退休“退休”类别表示管道槽中有用工作的部分,即最终退休的uop。微码定序器度量是一个退出子类别,用于说明已退出并由微码定序器ROM获取的uop的流水线槽。基本度量跟踪不是源自微码定序器的已退出uop。图4(a)显示,当补丁被启用时,所有基准的基本速率都下降了。这是由于退休率较低。基本计量率的购买力平价率为负值,反映出随着基本率的下降,核心周期的数量不断增加,图10。4(b).当启用安全补丁时,370.mgrid331和371. ap-plu 331的微码定序器恢 复 率 较 低 , 分 别 为 -21.54% 和 -18.56% 这 是 由 于 核 心 周 期CPU_CLK_UNHALTED.THREAD _ANY(度量公式中的除数)增加,而其他性能计数器保持不变。其他基准测试具有类似或略高的微码定序器速率,因为微码定序器IDQ.MS_UOPS提供的uop数量以类似或高于CPU_CLK_UNHALTED.THREAD_ANY的速率增加。360.ilbdc是唯一一个PPP率为正的基准,为7.51%。这是由于当补丁被启用时,微码序列率增加了11.52%,而核心周期的数量略有增加,为3.73%。所有其他基准的PPP率都为负,370.mgrid331的PPP率高达-46.28%,这是因为启用安全补丁时,核心周期大幅增加,微码定序器的PPP率下降。4.1.3. 后端绑定Backend Bound度量度量由于计算或内存子系统中的瓶颈而没有将uop传递到管道后端部分的插槽的比例。 此指标进一步分为内存和核心绑定子类别。在本研究中,通过相应的自顶向下指标跟踪了由于负载访问而导致的以下内存子系统停顿:L1、L2、L3和DR
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功