美文网首页
第一章 理解高性能程序(4) 预测执行和分支预测

第一章 理解高性能程序(4) 预测执行和分支预测

作者: 耕田者 | 来源:发表于2022-07-06 22:18 被阅读0次

预测执行和分支预测

        只要流水线连续不断地注入指令,则一切顺利。但是当遇到一个条件分支时会发生什么呢?流水线必须在测试结果揭晓前等待,因此,下一条指令只有在当前指令结束时才能开始。欢迎来到80年代,486时代!这被称为流水线阻塞(pipeline stall),会使流水线的优势荡然无存。由于几乎每个程序都存在大量的if-then-else语句,必须找到解决流水线阻塞问题的办法。

       制造商找到的解决方法是:预测执行(speculative execution):与其等待,我们不如通过预测选择执行其中一条分支地指令。假如我们足够幸运,则正好做对了,但是如果没那么幸运,我们就得丢弃刚才推测执行的结果,这样就会遭遇同样的流水线阻塞情形。假设我们随机地选择分支,50%的情况会是正确的,也能极大地提升流水线地吞吐率!

       唯一的问题是if语句的分支在可能性上并非等同!在通常情况下,他们甚至是高度不平衡分布的:其中一条是错误处理分支,另一条是正常分支,但是处理器并不知道测试的含义,那么,我们能做些什么呢?解决方案是分支预测:处理器学习代码中的分支能够很好地预测在给定条件下,哪条分支会被执行。

       很快问题竟变得如此复杂,不是吗?如果你曾经思考过这些问题,你并不孤单。在不久之前,编程届因幽灵和熔断漏洞的披露而震动,这些漏洞可让攻击者看到未被授权的内存区域的内容。破解的第一步是引诱分支预测器在预测执行时选择错误的分支。当处理器发现不被允许的访问,指令会被暂停执行,但被保护的数据却还在缓存中,可以用一些复杂的技术猜测出来,在此我们不作讨论。这些缺陷对过去十年的处理器优化技术提出了挑战,如果要解决这些缺陷,必然带来相当大的性能损失。

       就CPU性能优化而论,我们都对下一代CPU架构如何演化充满好奇,难道不是吗?

相关文章

  • ImageAI:图像预测

    ImageAI 提供4种不同的算法及模型来执行图像预测,通过以下简单几个步骤即可对任何图片执行图像预测。提供用于图...

  • 程序员应该关注的latency

    操作延迟L1 缓存查询0.5 ns执行一个指令1 ns分支预测错误3 nsL2 缓存查询4 ns互斥锁/解锁17 ...

  • ImageAI:自定义预测模型训练

    ImageAI:自定义预测模型训练 ImageAI 提供4种不同的算法及模型来执行自定义预测模型训练,通过以下简单...

  • 02-01:从LR模型开始了解基础机器学习算法

    基础算法要深刻理解: 1、最最基础的lr 解决了什么问题,回归预测和分类预测,简单的特征去预测,符合常理。 比如点...

  • 037:预测

    和我们同行聊了下预测,大家对预测众说纷纭,各个公司在不同不同的行业,或许不同的阶段,对预测的理解和实践都会用很大的...

  • 俄罗斯套娃思维

    1.我预测你会这样 2.我预测了你会预测我这样 3.我预测了你会预测我预测米这样 4.无线套娃 套娃思维,又称千层...

  • 活在未来——《通往财富自由之路》

    怎么活在未来? 1、要对未来有个预测 2、预测需要时间才能得到结果 3、笃信你的预测是正确的 4、提前按照预测结果...

  • 解决的问题

    难点: 1、模型必须理解如何传播运动以及处理遮挡。 2、短期预测:从模型改进(从预测像素值改为预测动作) 3、模糊...

  • 交易计划 Planning and Trading

    专业投机的核心是跟随。 技术分析的核心是预测。 赚钱的核心是管理执行。 管理执行自己的预测 位置-方向-趋势,关键...

  • day16

    一 旅游预测的特征:具有科学基础、具有不确定性、提出建议和警告 二 旅游预测程序 ️根据需要,提出预测问题 ...

网友评论

      本文标题:第一章 理解高性能程序(4) 预测执行和分支预测

      本文链接:https://www.haomeiwen.com/subject/hhfmbrtx.html