创建或修改目录:/www/wwwroot/104.219.215.234/data 失败!
亚洲幼女 CPU 性能瓶颈何解? - 骚货
骚货

亚洲幼女 CPU 性能瓶颈何解?

撸撸射影院

你的位置:骚货 > 撸撸射影院 > 亚洲幼女 CPU 性能瓶颈何解?


亚洲幼女 CPU 性能瓶颈何解?

发布日期:2024-08-19 04:54    点击次数:186

亚洲幼女 CPU 性能瓶颈何解?

亚洲幼女

本文由半导体产业纵横(ID:ICVIEWS)编译自semiengineering

硬件优化和经三想此后行的软件架构能起作用,但未几。

多核处理器表面上不错并行初始多个代码线程,但目下某些类别的操作恣虐了通过并行计较来提高合座性能的尝试。

是时候使用加速器来初始高度并行的代码了吗?标准处理器有许多 CPU,因此缓存一致性和同步可能触及数千个初级系统代码周期,以保抓悉数内核的协调。把柄 CPU 宽度和数据依赖性,CPU 哄骗教导级并行性的智商也有限。

这些 CPU 性能瓶颈是真确且广阔存在的,而且很难处罚。尽管软件设备东说念主员在创建可并行算法方面发达着庞大作用,但特意稳妥实行并行代码的硬件仍有发展空间。

三大瓶颈

CPU 架构师糟蹋了无数个周期来寻找雠校处理器的要领,以提高性能或镌汰功耗。这是不停雠校 CPU 的主要动机。“CPU 是为初始非结构化应用设施代码而假想的,”Quadric 首席营销官 Steve Roddy 证明说念。“为了加速实行速率,不给设施员增加酌量代码或贪图机器的职守,当代 CPU 累积了一长串越来越奇特的功能,旨在尽可能快地初始立地未知代码。”

多年来不停发展的技艺包括:

超标量架构,其特色是解码器不错同期向一系列并行的功能单位发出多条教导。

推测实行,即 CPU 在分支决策之前推测实行它以为最有可能的分支收尾。要是揣度正确,则上前迈出一步。要是揣度失误,则必须刷新通说念并初始另一个分支。

无序实行,只消序列中的多条教导不彼此依赖,它们就会无序初始。

及时内存探访追踪,其中可能同期向内存发出多个内存央求。把柄拥塞和流量情况,一些较晚发出的央求可能会较早复返。

尽管作念出了这些悉力,但仍存在一些瓶颈。当先是从内存中获取数据所需的时候,这频繁需要数百个周期。多个 CPU 和线程不错发出多个央求,重迭它们的探访时候以最大限制地减少澄莹的延伸。缓存有助于最大限制地减少畴昔探访的延伸,但要是一个线程改造了其他线程正在使用的值,则保抓一致性需要糟蹋时候。

第二个瓶颈是由线程之间的数据依赖引起的同步问题。要是多个线程想要探访换取的数据,那么在数据被改造时,可能需要锁定这些数据以供独占使用,并在之后开释该锁。或者,要是多个线程正在参与合座计较,那么可能会存在一个点,悉数线程都必须完成它们的职责之后,其他线程能力连接。经管同步的支出可能终点大。

第三个瓶颈触及教导级并行性,即多条教导同期实行。超标量 CPU 明确复古该行径,但它们也有截至。

Flow Computing 首席技艺官兼首席架构师 Martti Forsell 暗示:“CPU 无法正确处理延伸笼罩。它们无法正确处理同步,无法正确处理初级并行性。”

一致性延伸

此外,缓存不错缓冲数据,以应答较长的 DRAM 探访时候。但缓存系统频繁是分层的,混杂了专有缓存和分享缓存。Cadence 硅片处罚决策处事部高档居品营销部总监 Arif Khan 暗示:“影响性能的基本聘请是通过增增多级缓存来优化援用局部性。”一级 (L1) 缓存最汇注 CPU,优先酌量快速探访。它们频繁是专有缓存,这意味着只好一个 CPU 不错探访它们。

一些 CPU 还提供专有二级 (L2) 缓存。这么作念的克己是或者将更多数据保存在缓存中,同期将部分数据移至更大且速率稍慢(但更低廉)的 L2 缓存。有了这些专有缓存,要是多个 CPU 需要探访换取的数据,则每个单独的缓存中都会保留一份副本。“在 CPU 中,由于专有缓存的存在,一致性问题是不成幸免的,”Forsell 指出。

一些 CPU 具有分享的 L2 缓存,大多数 3 级(或终末一级)缓存亦然分享的。分享缓存的克己是多个 CPU 不错探访单个数据,而无需单独的副本。但 L2 分享频繁发生在两个或四个 CPU 之间。因此,具有该结构的八核处理器将具有两个 L2 缓存,何况分享不会在它们之间交叉。这意味着,要是在具有不同 L2 缓存的两个 CPU 上实行的两个线程需要换取的数据,则每个 L2 缓存都必须有本身的副本能力保抓一致。只好终末一级缓存 (LLC) 长久在悉数 CPU 之间分享,何况不需要一致性。

图 1:缓存端倪结构示例。L1 缓存频繁专用于一个 CPU。L2 缓存也可能如斯,或者它们可能由悉数或部分 CPU 分享。终末一级缓存频繁由悉数东说念主分享。着手:Bryon Moyer/Semiconductor Engineering

但分享也变得复杂。关于具有多个 CPU 的处理器,这些 CPU 频繁散布在通盘芯片上,因此很难舍弃一个和解的 LLC,以便悉数 CPU 都能以换取的延伸探访它。而且更大的缓存是要付出代价的。“缓存越大,延伸越高,”Rambus 的隆起发明家 Steven Woo 指出。在履行中,诚然 LLC 在逻辑上被视为一个单位,但它在物理上被分红多个块,每个块都汇注一个 CPU。

一致性合同一经确立多年。Arm 的 CPU 技艺副总裁兼研究员 Fred Piry 暗示:“MESI 是最常见的缓存一致性合同,它将缓存行描述为被修改 (M)、独占 (E)、分享 (S) 或无效 (I)。

Woo 暗示:“目下,MESI 是一种终点褂讪的合同。事实上,它并莫得发生太大的变化,这说明咱们当年一经作念了许多职责 (来对其进行微调)。”

CPU 向其他 CPU 发送音信,指引情景变化。“要是您正在写入已分享的行亚洲幼女,则需要告诉其他 CPU,‘我正在修改该缓存行,请忘掉它。我现在有了一个新版块。’在手机或札记本电脑中,莫得那么多 CPU,是以速率相等快,”Piry 说。“要是大型就业器中迥殊百个 CPU,延伸可能会很澄莹。”

追踪这些音信并非易事。“这可能很有挑战性,因为你可能会际遇音信在系统中彼此追逐的情况,”Woo 说。“在最坏的情况下,要是你有一个大芯片,芯片一角的中枢必须使另一角的中枢无效。这需要遍历通盘芯片的时候,还需要音信在端倪结构中传递的时候。”

这频繁发生在承载音信的专用一致性网格上,关于较小的处理器,延伸可能截至在 10 个支配的周期。“Arm 的一致性网格网络 (CMN) 复古 AMBA CHI,即是这么一种结构,”Khan 指出。“IP 提供商也在这个领域有处罚决策。”

然而关于具有多个中枢的处理器来说,该网格在音信通逾期可能会际遇拥塞和延伸,最坏的情况可能会糟蹋大致 1000 个周期的时候。

图 2:缓存更新延伸。关于多核系统来说,更新缓存可能需要终点多的周期。着手:Bryon Moyer/Semiconductor Engineering

这种一致性行径发生在硬件和系统软件层面的幕后,因此应用软件设备东说念主员真实莫得圭表权。关联词,他们最有智商把柄设施的结构以及线程之间分享变量的样式影响性能。关于硬件假想师来说,最好的聘请是调度缓存大小、缓存阴私和一致性网格。雠校它们不错提高性能,但会增加芯片尺寸和资本,并增加功耗。

Synopsys ARC-V RPX 处理器居品司理 Mohit Wani 暗示:“高效一致的分享缓存架构是必不成少的,关于最大限制地减少参与分享计较的悉数线程的分享数据探访延伸来说。”

同步延伸

两种主要的同步机制是锁(也称为互斥,即“彼此抹杀”)和障蔽。锁会获取多个 CPU 可探访和使用的数据,并将探访截至在单个 CPU 上。这有助于确保每个 CPU 都使用换取的值处理换取的数据,何况不会有 CPU 使用旧版块或中间版块,而其他 CPU 使用新版块。

障蔽截至代码在特定点除外的实行,允许悉数对收尾有孝顺的线程追逐并完成,然后任一线程能力连接实行收尾。归约算法即是一个例子,它可能触及多个线程计较单个收尾。

至少有两种要领不错完了这两种用具,而且这两种要领都有资本。“巧合,当际遇艰巨时,东说念主们所作念的终点于干预就寝情景,然后像中断这么的操作会再次叫醒他们,”Woo 证明说念。“中断的资本很高,而且发送悉数开释音信和再行启动内核都需要糟蹋无数时候。”这么作念的克己是不错从简电量,因为内核在恭候时处于就寝情景。

另一种要领是使用记号或信号量,内核实行一个忙碌轮回来轮询记号,以检察记号何时发生变化。“当内存位置的值发生变化时,它们就知说念不错连接前进了,”Woo 说。这种技艺响应速率更快,因为它不触及中断,但内核在恭候时旋转会消耗更多能量。

此外,优游中枢上的线程可能会在此时期被其他线程替换,而这些高下文交换也很昂然。“当暂停某项任务以腾出处理器中枢去恭候其他任务赶上程度时,高下文切换支出会产生很大的耗损,”Wani 指出。

终末,就像一致性一样,一朝开释障蔽或锁,音信就会发送到其他中枢,关于多核单位来说,这些周期可能多达数千个。“要是您的系统中有 100 个 CPU,大喊将传播到系统中的悉数 CPU,”Piry 证明说念。“何况悉数 CPU 都将收到同步央求并阐发已收到并完成。此外,它们需要把柄大喊进行操作,这可能需要数千个周期。”

图 3:同步延伸。顶部败露 CPU n 竖立了障蔽;然后它计较其部分的时候比其他 CPU 更长。因此,其他 CPU 必须在完成后恭候,直到 CPU n 开释障蔽。访佛地,当 CPU 竖立锁时,在开释锁之前,其他 CPU 都无法探访该数据。着手:Bryon Moyer/Semiconductor Engineering

“CPU 硬件不错通过提供优化线程同步、数据分享的教导集和内存架构来提供匡助,”Wani 说说念。一些用于镶嵌式的微型处理器带有硬件信号量或邮箱来加速同步。这种要领诚然稳妥微型 CPU,但彭胀性欠安。

更复杂的单位会实行特定教导,举例内存原子教导。它们以原子样式实行读取/修改/写入序列,这意味着在完成之前,莫得其他实体不错看到或影响收尾。此类教导有助于幸免需要显式同步的数据危害。

设施架构亦然一个着急的用具。“处罚同步支出的最好要领是,继承一种不错镌汰线程需要同步的频率的软件架构,”Wani 说。

教导级并行

并行实行不错在多个级别进行。教导级并行是指同期实行多条教导。这是当代超标量 CPU 所允许的,但有截至。“您不错在超标量进程中的多个功能单位实行多条教导,但条目是这些教导必须是零丁的,”Forsell 说。

图 4 败露了 10 宽度 CPU 微架构的一部分,反应了目下商用的最宽 CPU。把柄界说,这里可能的最大并行度是 10,但有两个问题。第一个问题与功能单位的散布相关,而第二个问题则来自数据依赖性。

10 宽度 CPU 有 10 组可勤劳能单位,而哪组获取教导取决于教导是什么。在图 4 中的造谣示例中,每组有两个功能单位,其中一个是整数 ALU。因此,关于整数运算,最多不错同期初始 10 个。但只好五个有浮点单位,两个有位操作单位,乘法器、除法器和和会乘加 (FMA) 各有一个。因此,假定最多两个位操作不错一都初始,但乘法、除法和 FMA 不成能并行。

图 4:超标量 CPU 功能单位。并非悉数功能单位通说念都具备换取的功能,某些功能可能仅在少数以致一个通说念中可用。着手:Bryon Moyer/半导体工程

这些并行契机反应了最大可能性,何况只好当并行计较中触及的变量不彼此依赖时才会发生这种情况。举例,要是一个操作依赖于前一个操作的收尾,那么这两个操作必须连气儿实行。

再次强调,软件架构是完了并行性最大化的最刚劲杠杆。“算法长久是优化给定硬件平台性能的最好样式,”Khan 说说念。“散布式数据并行和透彻分片数据并行技艺可用于模子复制和数据分区,从而完了最好系统哄骗率和模子性能。”

识别数据依赖关系需要软件分析。不错静态分析声明的变量,编译器不错以最大化贪图 CPU 性能的样式对贪图代码进行排序。关联词,许多设施无数使用指针,而这些指针无法静态分析,因为它们的值是及时细则的。动态分析,监控加载和存储的探访模式,可能是必要的。在这种情况下,分析收尾不错匡助设备东说念主员优化设施的并行性,同期确保依赖关系得到尊重。

圭表和数据平面

线程初始一系列教导而不进行任何分支(所谓的基本块),不错完了最大程度的并行性。分支会带来不细则性,尝试推测性地实行可能会以失误揣度和系统调度时出现故障而告终。

工程师巧合会描述两种编码立场:一种用于圭表,一种用于数据操作。这种分散是网络处理芯片架构的基础,它提供专用硬件来对数据进行长串计较,并辅以 CPU 来实行圭表代码,这频繁触及许多分支。数据平面中的代码比圭表代码更稳妥并行实行。

鉴于传统 CPU 架构中性能莳植的契机有限,有东说念主建议,为访佛数据平面的代码配备一个单独的硬件单位,不错大大提高并行性,而这比单独使用 CPU 所能达到的水平要好得多。“现在,悉数性能级别的平台都接纳了一个目的:将结构化任务从通用 CPU 中卸载,并将这些任务鼎新到特定于任务的专用处理引擎上,”Roddy 说。

初创公司 Flow Computing 正在提供这么的单位。Flow Computing 首席实行官 Timo Valtonen 证明说:“这是一个与 CPU 雅致集成在并吞块硅片上的 IP 块。它会像 GPU 或神经加速器一样挂在总线上。它是一个可配置的微型处理器阵列,不错实行并行代码,而不需要太多障蔽或锁。”

图 5:建议的具有专用并行处理单位的架构。CPU 圭表经由并将职责负载交给并行单位。CPU 有用地实行圭表流,并行单位实行终点于数据位置代码的代码。着手:Bryon Moyer/Semiconductor Engineering

提倡的单位有一个由其悉数中枢分享的大型缓存,从而抹杀了一致性延伸。要是主 CPU 和并行单位都在处理一些换取的数据,那么 CPU 缓存和并行单位缓存之间的一致性将是必要的,但 Flow 以为这不太可能。

使用光纤提供了一种轻量级的样式来处理底本应该是线程的情况。光纤由 CPU 创建,不错传递给加速器,并幸免了处理线程所需的操作系统就业调用。这不错消弱一些同步延伸。

幼幼嫩穴

将教导集会在一都的智商不错最大化教导级并行性。“集会即是将一条教导的输出平直输入到下一条教导中,”Woo 证明说念。“自 20 世纪 80 年代和 90 年代初以来,Cray 等公司的超等计较机就一直在作念相同的事。”

使用并行单位需要再行编译代码。“咱们如实应用了一种特地的编译算法来处理具有依赖关系的代码,以完了链式实行,”Forsell 说。新代码不错让 CPU 交出高度并行的部分,依赖性分析允许将流经并行单位的教导链式化。

但问题是,通盘代码库将使用 CPU 的原生谈话。编译器不会为并行部分生成单独的贪图代码。这意味着并行单位必须配备解码器和其他与随附 CPU 镜像对应的逻辑。这项职责需要与 CPU 供应商配合完成,因为解码其他东说念主的教导集可能被视为侵扰学问产权。

关联词,编译器并不是全能的用具。“你必须记取,编译器深爱正确性而不是性能,”Woo 警告说。“他们巧合必须作念出保守的假定,而不是激进的假定。为了充分哄骗系统,设施员必须输入教导或绕过编译器的自动代码生成。”

卓绝渐进式增长

尽管 CPU 假想师们一直在悉力寻找提高性能的契机,但顺手可取的服从早已不复存在。屋顶线模子描述了计较在那处受到内存带宽的截至以及计较受限于那处,它不错匡助设备东说念主员细则雠校的契机过火关联资本。但要是莫得一些改变游戏章程的设备,雠校将跟着每一代而迟缓增加。

Synopsys 指出了其用于提高性能的四种架构理念。

使更高档别的缓存可配置为更大的缓存或更小的缓存加上一些内存,并或者动态再行配置以顺应刻下职责负载;

在每个缓存级别,使用预取器来笼罩更多的获取延伸;

即使使用有序 CPU,也允许无序内存央求,这么即使先前的央求仍处于挂起情景,也不错使用先复返的任何实质;

使用软件完了就业质料(QoS),以便为要道职责负载的某些中枢提供优先权。

并行卸载单位是否会成为更大的游戏章程改变者?这是有可能的,只消系统设备东说念主员以为它或者得手地融入他们现存的职责样式。要是变化太多,假想师(他们大多天性保守)会阻抑如斯多的变化可能给形貌带来的风险。此外,增量硅片空间必须增加充足的价值,以保抓芯片的顺应盈利。这可能会使其对专用 SoC 更具劝诱力,因为增加的性能的价值是不言而谕的。

与此类加速器关联的用具和设备经由也需要得手融入现存经由,这又要尊重设施员不肯作念出过多改变的神色。即使硬件理念过火关联用具在见地上无可抉剔,新用户仍然需要劝服本身硬件和软件完了是正确的,莫得失误。

Flow 是否能取成效利,可能有助于决定该技艺的发展标的。要是失败了,是因为见地上的根蒂劣势,如故因为实行上的问题?要是是后者,其他东说念主可能会接办并连接发展。要是是前者,那么通盘目的都会受到质疑。

另一方面,要是它顺利了,不错打赌其他东说念主会试图效法并雠校它的顺利。酌量到这个提倡还处于早期阶段,咱们可能至少有一年以致更长的时候来细则是否有一个赢家。

*声明:本文系原作家创作。著述实质系其个东说念主不雅点亚洲幼女,本身转载仅为分享与盘问,不代表本身赞赏或认可,如有异议,请掂量后台。



Powered by 骚货 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024

创建或修改目录:/www/wwwroot/104.219.215.234/data 失败!
JzEngine Create File False