0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何克服Amdahl定律的影响呢?

Arm社区 来源:Arm社区 2024-01-12 14:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Arm Helium 技术诞生的由来

克服 Amdahl 定律的影响

在前几篇文章中,我们介绍了采用 Arm Helium 技术(也称为 MVE)的 Armv8.1-M 架构如何处理矢量指令。但问题是,每当代码被矢量化时,Amdahl 定律的影响很快便会显现,让人措手不及。如果您不了解 Amdahl 定律,可以简单理解为,Amdahl 定律表明算法中无法并行化的部分很快就会成为性能瓶颈。例如,如果有 50% 的工作负载可以并行化,那么即使这部分工作负载可以无限并行,最多也只能将速度提高二倍。不知您作何感受,如果我能将某件事情无限并行化,但速度却只能提升二倍,这种微不足道的提升一定会让我感到非常恼火!在设计 Helium 时,我们必须考虑矢量指令及其相关联的一切内容,这样才能最大限度地提高性能。

串行代码在循环处理中很常见,串行代码造成的开销可能相当大,特别是对于小循环。下面的内存复制代码就是一个很好的例子:

a85c54ac-b112-11ee-8b88-92fbcf53809c.png

循环迭代计数的递减和返回循环顶端的条件分支占循环指令的 50%。许多小型 Cortex-M 处理器没有分支预测器(小型 Cortex-M 处理器的面积效率极高,这意味着许多分支预测器比整个 Cortex-M 处理器还要大几倍)。因此,由于分支损失,运行时开销实际上高于 50%。通过在多次迭代中摊销开销,循环展开可以帮助减少开销,但会增加代码大小,并使代码的矢量化过程更加复杂。

鉴于许多 DSP 内核都有小循环,因此在 Helium 研究项目中解决这些问题至关重要。许多专用 DSP 处理器支持零开销循环。一种实现方法是使用 REPEAT 指令,告诉处理器将下面的指令重复 N 次:

a8745e44-b112-11ee-8b88-92fbcf53809c.png

处理器必须记录多项数据:

循环开始的地址

需要分支回到循环开始前所剩余的指令数

剩余的循环迭代次数

在处理中断时,跟踪记录所有这些数据可能会造成问题,因此一些 DSP 只需要延迟中断,直到循环完成。如果要执行大量的迭代,这可能需要相当长的时间,而且完全不符合 Cortex-M 处理器应该实现的快速和确定性中断延迟的需求。这种方法也不适用于处理精确故障,如权限违规导致的内存管理故障异常 (MemManage)。另一种方法是增加额外的寄存器来处理循环状态。但这些新寄存器必须在异常进入和返回时保存和恢复,而这又会增加中断延迟。为了解决这个问题,Armv8.1-M 采用了一对循环指令:

a8a57cb8-b112-11ee-8b88-92fbcf53809c.png

该循环首先执行 While Loop Start (WLS) 指令,该指令将循环迭代计数复制到 LR,循环迭代计数为零时,分支到循环结束。还有一条 Do Loop Start (DLS) 指令,可用于设置一个循环,在该循环中至少始终执行一次迭代。Loop End (LE) 指令检查 LR 以确认是否还需要一次迭代,如果需要,则分支返回起点。有趣的是,处理器可以缓存 LE 指令提供的信息(即循环开始和结束的位置),因此在下一次迭代时,处理器甚至可以在获取 LE 指令之前分支回到循环的起点。因此,处理器执行的指令序列如下所示:

a8b82142-b112-11ee-8b88-92fbcf53809c.png

在循环末尾添加循环指令有一个很好的副作用,如果缓存的循环信息刷新,该指令将重新执行。然后,重新执行 LE 指令将重新填充缓存。如下图所示,由于无需保存循环开始和结束地址,因此现有的快速中断处理功能得以保留。

a8d2dcd0-b112-11ee-8b88-92fbcf53809c.png

除了第一次迭代和从中断恢复时的一些设置外,所有时间实际上都花在了内存复制而不是循环处理上。此外,由于处理器事先知道指令的顺序,因此总能用正确的指令填充流水线。这样就消除了流水线清空和由此导致的分支损失。因此,我们可以将这一循环矢量化,不必再担心 Amdahl 定律的影响,我们(暂时)克服了这些困难。

在对代码进行矢量化时,一个循环通常以不同类型的指令开始和结束,例如矢量加载 (VLDR) 和矢量乘加 (VMLA)。执行这样的循环时,会产生一长串不间断的交替 VLDR/VMLA 操作(如下图所示)。这种不间断的链条使处理器能够从指令重叠中获得最大益处,因为它甚至可以从一个循环迭代结束重叠到下一个迭代开始,从而进一步提高性能。关于指令重叠的更多信息,可参阅:《Arm Helium 技术诞生的由来:为何不直接采用 Neon?》

a8edba5a-b112-11ee-8b88-92fbcf53809c.png

当需要处理的数据量不是矢量长度的倍数时,矢量化代码就会出现问题。典型的解决方案是先处理全矢量,然后用一个串行/非矢量化尾部清理循环来处理剩余的元素。不知不觉中,Amdahl 定律又出现了,真是令人不胜其烦!Helium 中的矢量可容纳 16 个 8 位数值,因此在我们对 31 字节的 memcpy 函数进行矢量化时,仅有不到一半的拷贝将由尾部循环连续执行,而不是由矢量指令并行执行。

为了解决这个问题,我们增加了循环指令的尾部预测变体(如 WLSTP、LETP)。对于这些尾部预测循环,LR 保存的是要处理的矢量元素的个数,而不是要执行的循环迭代的次数。循环开始指令 (WLSTP) 有一个大小字段(下面 memcpy 函数示例中的“.8”),用于指定要处理的元素的宽度。

a9040440-b112-11ee-8b88-92fbcf53809c.png

如果您曾见过其他优化的 memcpy 例程,可能会对这个例子的简单程度感到惊讶,但对于 Helium 来说,这已经是最好的完全矢量化解决方案所需要的一切了。具体工作原理如下:处理器使用大小字段和剩余元素的数量来计算剩余迭代次数。

如果最后一次迭代要处理的元素个数少于矢量长度,则矢量末尾相应数量的元素将被禁用。因此,在上文复制 31 个字节的例子中,Helium 会在第一次迭代时并行复制 16 个字节,然后在下一次迭代时并行复制 15 个字节。这不仅可以避免 Amdahl 定律的影响,实现该有的性能,还可以完全消除串行尾码,减少代码量,简化开发过程。

由于面临高性能目标和严格的面积/中断延迟限制,我们在设计 Helium 时就像在设计一个多维拼图,且其中一半的形状是已经固定的。架构中看似毫不相干的部分可以相互作用,产生意想不到的效果或助力解决一些有趣的难题。

整个 Helium 研究团队和我都无比期待看到 Helium 技术能够为全新的应用带来有力的支持。目前 Cortex-M 已有三款产品支持 Helium 技术——Cortex-M52、Cortex-M55 和 Cortex-M85,我迫不及待看到 Helium 技术持续赋能我们生态伙伴的 AI 创新应用。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    20154

    浏览量

    247367
  • dsp
    dsp
    +关注

    关注

    559

    文章

    8219

    浏览量

    364055
  • 寄存器
    +关注

    关注

    31

    文章

    5590

    浏览量

    129097
  • ARM技术
    +关注

    关注

    0

    文章

    22

    浏览量

    7647
  • Cortex-M
    +关注

    关注

    2

    文章

    234

    浏览量

    30970

原文标题:Helium 技术讲堂 | 克服 Amdahl 定律的影响

文章出处:【微信号:Arm社区,微信公众号:Arm社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    克服全车以太网汽车架构中的 QoS 挑战

    这份报告由雷诺Ampere汽车公司和RTaW公司在2025年10月15日法国图卢兹举办的IEEEEthernet&IP@AutomotiveTechnologyDay上联合发表,主题为“OvercomingQoSChallengesinaFullAutomotiveEthernetArchitecture(克服全车
    发表于 10-29 15:47 1次下载

    FOSAN 富捷科技揭秘:电阻公式的 “硬核逻辑”—— 从欧姆定律到 TCR 如何守护设备稳定?

    在电子电路的复杂网络中,电阻是调控电流的 “核心枢纽”,而描述其特性的公式则是解码这一元件的 “关键密码”。从基础的欧姆定律到温度系数计算,这些公式不仅是理论推导的结晶,更是工程实践中解决问题的核心
    的头像 发表于 09-02 18:03 1046次阅读
    FOSAN 富捷科技揭秘:电阻公式的 “硬核逻辑”—— 从欧姆<b class='flag-5'>定律</b>到 TCR 如何守护设备稳定?

    晶心科技:摩尔定律放缓,RISC-V在高性能计算的重要性突显

    运算还是快速高频处理计算数据,或是超级电脑,只要设计或计算系统符合三项之一即可称之为HPC。 摩尔定律走过数十年,从1970年代开始,世界领导厂商建立晶圆厂、提供制程工艺,在28nm之前取得非常大的成功。然而28nm之后摩尔定律在接近物理极限之前遇到大量的困
    的头像 发表于 07-18 11:13 4029次阅读
    晶心科技:摩尔<b class='flag-5'>定律</b>放缓,RISC-V在高性能计算的重要性突显

    如何克服电路板元件引脚焊接的缺陷

    克服电路板元件引脚焊接的缺陷,松盛光电提供一种既易于操作,又不会使产品产生品质问题,且成本较低的自动化激光焊接方法。
    的头像 发表于 05-14 15:23 913次阅读
    如何<b class='flag-5'>克服</b>电路板元件引脚焊接的缺陷

    电力电子中的“摩尔定律”(1)

    本文是第二届电力电子科普征文大赛的获奖作品,来自上海科技大学刘赜源的投稿。著名的摩尔定律中指出,集成电路每过一定时间就会性能翻倍,成本减半。那么电力电子当中是否也存在着摩尔定律?1965年,英特尔
    的头像 发表于 05-10 08:32 685次阅读
    电力电子中的“摩尔<b class='flag-5'>定律</b>”(1)

    热导传感器是什么?了解多少

    书写着无声的创新诗篇。   一、热导密码:从傅里叶定律说起 1822年,法国科学家傅里叶提出导热基本定律:单位时间内传递的热量与温度梯度及材料截面积成正比。这个看似简单的公式,却为热导传感器的诞生埋下了理论基石。热导
    的头像 发表于 03-24 18:22 745次阅读

    西门子EDA工具如何助力行业克服技术挑战

    西门子EDA工具以其先进的技术和解决方案,在全球半导体设计领域扮演着举足轻重的角色。本文将从汽车IC、3D IC和EDA AI三个方向,深入探讨西门子EDA工具如何助力行业克服技术挑战,推动创新发展。
    的头像 发表于 03-20 11:36 1920次阅读

    瑞沃微先进封装:突破摩尔定律枷锁,助力半导体新飞跃

    在半导体行业的发展历程中,技术创新始终是推动行业前进的核心动力。深圳瑞沃微半导体凭借其先进封装技术,用强大的实力和创新理念,立志将半导体行业迈向新的高度。 回溯半导体行业的发展轨迹,摩尔定律无疑是一个重要的里程碑
    的头像 发表于 03-17 11:33 717次阅读
    瑞沃微先进封装:突破摩尔<b class='flag-5'>定律</b>枷锁,助力半导体新飞跃

    混合键合中的铜连接:或成摩尔定律救星

    混合键合3D芯片技术将拯救摩尔定律。 为了继续缩小电路尺寸,芯片制造商正在争夺每一纳米的空间。但在未来5年里,一项涉及几百乃至几千纳米的更大尺度的技术可能同样重要。 这项技术被称为“混合键合”,可以
    的头像 发表于 02-09 09:21 1132次阅读
    混合键合中的铜连接:或成摩尔<b class='flag-5'>定律</b>救星

    电气原理与电路分析 电气原理中的欧姆定律

    一、引言 电气原理是电气工程和电子工程领域的基础理论,它涉及电流、电压、电阻等基本概念以及它们之间的关系。在这些概念中,欧姆定律无疑是最为核心和基础的一个。欧姆定律揭示了电流、电压和电阻之间的定量
    的头像 发表于 02-01 10:29 2429次阅读

    石墨烯互连技术:延续摩尔定律的新希望

    半导体行业长期秉持的摩尔定律(该定律规定芯片上的晶体管密度大约每两年应翻一番)越来越难以维持。缩小晶体管及其间互连的能力正遭遇一些基本的物理限制。特别是,当铜互连按比例缩小时,其电阻率急剧上升,这会
    的头像 发表于 01-09 11:34 878次阅读

    摩尔定律是什么 影响了我们哪些方面

    摩尔定律是由英特尔公司创始人戈登·摩尔提出的,它揭示了集成电路上可容纳的晶体管数量大约每18-24个月增加一倍的趋势。该定律不仅推动了计算机硬件的快速发展,也对多个领域产生了深远影响。
    的头像 发表于 01-07 18:31 2938次阅读

    电荷守恒定律与电流的关系 电荷守恒定律与能量守恒定律的区别

    电荷守恒定律与电流的关系 电荷守恒定律与电流之间存在着密切的关系。电荷守恒定律指出,在任何物理过程中,电荷的总量保持不变。这意味着电荷既不能被创造,也不能被销毁,只能从一个物体转移到另一个物体,或者
    的头像 发表于 12-16 14:45 1746次阅读

    电荷守恒定律在化学反应中的作用

    在自然界中,电荷守恒定律是一个基本的物理原理,它规定了电荷既不会被创造,也不会被消灭,只能从一个物体转移到另一个物体,或者从物体的一部分转移到另一部分。这一定律在化学反应中尤为重要,因为它保证了
    的头像 发表于 12-16 14:43 3151次阅读

    电荷守恒定律的定义 电荷守恒定律与电场的关系

    电荷守恒定律的定义 电荷守恒定律是一个基本的物理定律,它指出在一个封闭系统(或孤立系统)中,电荷的总量保持不变。这意味着电荷既不能被创造,也不能被销毁,它只能从一种形式转移到另一种形式,或者从一个
    的头像 发表于 12-16 14:41 3009次阅读