(原标题:一文看懂Infinity Fabric)
要是您但愿可以不息碰头,接待标星储藏哦~
着手:实质编译自chipsandcheese,谢谢。
自 Zen 以来,AMD 芯片一直使用多级互连来创建模块化系统,让 AMD 约略快速且低价地杀青高中枢数。多个 Zen 中枢在一个集群中分享一个 L3 缓存,称为中枢复合体 (CCX)。CCX 通过 AMD 的 Infinity Fabric 拜谒系统的其余部分,这是一种天简直互连,可让 AMD 字据需要诊疗系统拓扑。
自 Zen 2 以来,这意味着将 CPU 中枢放在中枢复合体芯片 (CCD) 上。CCD 联接到单独的 IO 芯片,该芯片与系统内存和较慢的组件(如 PCIe、SATA 和 USB)通讯。这创建了一个中心放射模子,让 AMD 的中枢数目高于英特尔。
CCD 使用 Infinity Fabric On-Package (IFOP) 接口联接到 IO 芯片。在 Infinity Fabric 时钟 (FCLK) 下,CCD 的 IFOP 链路每周期提供 32 字节的读取带宽和每周期 16 字节的写入带宽。FCLK 频繁远低于 L3 和中枢时钟。在具有更快 DDR5 的较新 Zen 系统中,一个 IFOP 可能莫得弥散的带宽来饱和 DDR5 带宽。卓绝该潜在带宽为止后,DDR 内存无法提供弥散的带宽来处理高中枢数系统中扫数中枢的需求。
天然,也可能存在其他争用点。在 Zen 2 上,多个 CCX-es 可以争用一个 IFOP 接口。在这里,我将研究在多个点上激动带宽为止若何影响争用归并分享资源的延伸明锐线程。我不会在一个轴上显现延伸数据,在另一个轴上显现带宽数据,而是将延伸和带宽绘图为两个单独的系列,以显现延伸若何受到中枢数目的影响。
Zen 4 是 AMD 现存的一代CPU ,由于它是我泛泛使用的台式机,因此是一个纵情的测试平台。行为 Zen 系列的最新成员,它每个 CCD 齐有一个八核 CCX。单个 Zen 4 中枢可以以苟简 50 GB/s 的速率从 3 GB 阵列读取数据,因此与之前的 Zen 一代比较,它可以耗尽多数内存带宽。这应该会使任何瓶颈很容易被发现。我使用的是典型的 DDR5 竖立,具有中等规格的 DDR5-5600。
在最小负载下,我的系统的 DRAM 延伸为 82-83 纳秒。延伸测试线程很快就会发现延伸更严重,因为其他中枢的带宽需求开动填满扫数这个词内存子系统的队伍。只需几个带宽测试线程就足以将 CCD 的内存子系统推到极限。
增多线程数会导致延伸飙升,可能是因为内核数目越多,队伍容量的竞争就越横暴。当有五个带宽线程竞争时,延伸会卓绝 400 纳秒。
将带宽负载推向另一个 CCD 可权贵改善延伸。当 CCD0 有一个中枢需要带宽,而 CCD1 正在运行延伸测试时,我看到一个奇怪的延伸峰值。在 CCD0 上加载更多中枢会奇怪地裁减延伸,即使杀青的带宽有所增多。我念念知说念 AMD 是否正在检测行为中枢数,并开动保留队伍条件,或者要是有弥散多的中枢需要高带宽,则以其他神气为止每个中枢的带宽耗尽。
带宽随延伸而提高。事实上,运行八个带宽测试线程的 CCD 可达到近 64 GB/s。当带宽测试线程不与延伸线程发生冲突时,AMD 似乎可以从 IFOP 接口取得出色的带宽终局。概括起来,这两个不雅察终局标明 AMD 的双 CCD 开导可以充任某种 QoS 机制。在一个 CCD 中包含带宽耗尽大的代码可以让另一个 CCD 上的延伸明锐代码以最小的影响赓续运行。
为了测试扫数这个词系统,我在添加带宽测试线程时切换了中枢加载礼貌,以便在 CCD 之间轮流。这样我就可以使用两个 IFOP 相接,但愿约略最大化内存带宽。天然,杀青的带宽更高,况且使用几个带宽测试线程时,延伸仍然得到很好的适度。我还在每个 CCD 上运行一个带宽测试线程,杀青了最大带宽。
但跟着我生成更多带宽测试线程,情况赶快失控。咱们可能正在研究 CCD 和内存适度器级别的争用。这两个层的延伸似乎齐是累加的,当延伸测试线程必须与 10 个以上的带宽耗尽线程作战役时,它的情况简直很厄运。
此时,系统也开动出现非常。举例,翻开任务不休器中的“珍惜信息”选项卡需要很永劫刻,尽管我的测试只为每个物理中枢加载了一个线程。谢天谢地,我觉得这是相配极点和非典型的责任负载。
硬件性能监控
从软件不雅察延伸很粗略,但我可以通过参谋硬件发生了什么来获取更多信息。Zen 4 的 L3 缓存具有性能监控功能。它的一项功能是立时采样 L3 未射中并追踪其延伸。
天然此性能监控事件与我的 C 和汇编代码一样提供了平均延伸的见解,但它们测量的并不完全相易。软件只可不雅察加载到使用延伸。这包括从中枢内的地址生成到从内归档次结构中的某个位置获取数据的扫数这个词延伸。AMD 使用助记符“XiSampledLatency”来态状他们的事件。“Xi”是 Zen 的 L3 缓存复合体中的一个组件,可与系统的其余部分交互。很可能,它代表“外部接口”。它可能有一组队伍来追踪未完成的肯求。采样延伸就像放心队伍条件保抓分派的时刻一样粗略。
由于此事件很可能在 Xi 中杀青,因此它仅测量 L3 未射中后的延伸。从软件中看到的 DRAM 延伸将包括在很多其他层引入的延伸。这包括地址生成,以及在发现 L3 未射中之前查验每个缓存层。
因此,Xi 看到的延伸应该低于软件看到的延伸。不外,此事件关于检察内存子系统在 L3 未射中后的步履极端有效。Xi 的数据与我在全系统治宽测试开动时的软件不雅察终局大致干系,那时 CC1 运行延伸测试,而 CCD0 运行单个线程产生带宽负载。软件看到的延伸为 190 纳秒,而 CCD1 上的 L3 性能监控看到的延伸为 166 纳秒。
真义的是,来自另一个 CCD 的性能监控数据标明 Zen 4 优先研究了带宽耗尽大的线程,而殉国了对延伸明锐的线程。行为健全性查验,托管带宽测试线程的 CCD 的 L3 未射中带宽为 59 GB/s,险些与我从软件上钩算的终局完全一致。
一朝我生成更多带宽测试线程,性能监控数据标明平均延伸飞腾到 200 纳秒傍边。可是,从延伸测试线程的软件不雅察终局来看,延伸卓绝了 700 纳秒。来自延伸测试线程的肯求只占通过内存子系统的流量的一小部分,因此 Xi 看到的平均延伸不行反应我的测量终局,这是挑升旨的。
Zen 5 搭配快速 DDR5
Zen 5 是 AMD Zen 系列中最新、最出色的成员。它使用与 Zen 4 相易的 IO 芯片,但 CCD 有所变化。Cheese (George) 已将系统开导为极端快的 DDR5,并以稍高的时钟频率运行 Infinity Fabric 以启动。
我不会将此称为典型开导。DDR5-8000 套件价钱好意思丽。AMD 的驳斥指南淡薄将 6000 MT/s 行为最好点。关联词,这种竖立可以让咱们了解 Infinity Fabric 在多数内存带宽可用的情况下的性能。在单个 CCD 中,我不应该接近 DRAM 带宽为止。事实上,当我推到 IFOP 的带宽为止时,延伸要好得多。在高负载下,延伸也开动裁减,这可能是由于极端快的 DRAM 竖立。
单个 CCX 内的争用仍会增多延伸,但进度不如 Zen 4。Zen 5 内核也会像其前代家具一样单独耗尽多数带宽。也许 CCX 级别的变化起了作用。在 Hot Chips 2024 上,AMD 展示了一张幻灯片,其中示意每个 Zen 5 CCX 齐有一双 XI。这两个 XI 加在沿途可能比 Zen 4 上有更多的队伍条件,幻灯片也示意了这少量。
这可能会裁减带宽需求大的线程独占扫数队伍条件并导致延伸明锐的线程无法责任的可能性。此外,在此开导中,IFOP 带宽仅障翳 DDR5 带宽的 55%,而我的 Zen 4 系统上则为 71.4%。内存适度器上的负载较低,使其有更多空间来不休 DRAM 终局低下的问题,举例总线盘活、刷新或存储体冲突。我怀疑 Zen 5 的更好说明归结于这两个身分的聚会。
与 Zen 4 一样,CCD 规模可以将延伸明锐线程与带宽耗尽大的代码梗阻开来。在这个 Zen 5 系统上,更快的内存和更快的 Infinity Fabric 时钟使一切全体上变得更好。更弥留的是,在 Zen 4 上不雅察到的具有一个带宽线程的延伸峰值灭亡了。
在 Zen 4 上,这种峰值一定是由 Infinity Fabric 中的某些身分引起的。毕竟,要是延伸和带宽测试线程位于不同的 CCD 上,它们就无法争夺相易的 XI 或 IFOP。即使 Zen 5 使用相易的 IO 芯片,AMD 可能仍是诊疗了其流量不休政策,以更公说念地为具有不同内存拜谒格局的中枢提供做事。
当我加载两个 CCD 时,Ryzen 9 9950X 过甚快速内存开导赓续令东说念主印象深刻。即使内存带宽卓绝 100 GB/s,延伸仍然得到很好的适度。这些 DDR5-8000 内存条 48 GB 套件的价钱似乎为 250 好意思元。花这样多钱,你最好能得到一流的性能。
再次,我怀疑 AMD 作念了一些诊疗以改善负载下的延伸。Zen 4 的放荡 700 纳秒测量值仍是灭亡。我并莫得将 Zen 4 推向接近 DDR5 带宽为止,但 Zen 4 的性能监控数据标明延伸不应该远远卓绝 200 纳秒。
Zen 2:每个 CCD/IFOP 有两个集群
Zen 2 可能有点过期,但它确乎初次推出了 AMD 的当代芯片组开导。更真义的是,每个 CCD 有两个四核 CCX。这让我可以分散检察 CCX 级和 CCD 级瓶颈。
与 Zen 4 和 Zen 5 不同,我运行的 Zen 2 具有匹配的 FCLK 和 DRAM 速率。因此,一个 CCD 的 IFOP 带宽与 DRAM 带宽相匹配。Zen 2 从单个 CCX 杀青了约 84.4% 的表面 DRAM 带宽。这个百分比比 Zen 4(71.4%)或 Zen 5(55%)要大。天然,这两代家具齐杀青了更好的十足带宽。
延伸从 71.7 纳秒开动,当三个占用多数带宽的线程分享归并个 CCX 时,延伸会增多到 142.77 纳秒。可是,在一个 CCX 上运行的延伸测试线程与另一个 CCX 上的带宽负载相配梗阻,即使两个 CCX 齐位于归并个 CCD 上。这让我觉得 CCX 的 XI 可能比卑劣的 IFOP 链路更成瓶颈。
在 CCD 内对两个 CCX 产生带宽需求会导致延伸增多。这并不奇怪,因为咫尺 CCX 的 XI 和 IFOP 齐存在争用。不外,Zen 2 的说明还可以。285 纳秒的延伸并不好,但比 Zen 4 的单个 CCD 的 400 纳秒要好。在可比的 CCD 级争用测试中,Zen 5 比两者齐好,约为 151 纳秒。
我觉得 Zen 2 比 Zen 4 说明更好,因为 Zen 2 内核单独无法耗尽那么多带宽。DRAM 延伸很高,这意味着您需要列队多数正在运行的肯求才能保管高 DRAM 带宽。Zen 2 内核只可保管弥散的正在运行的肯求以杀青 24-25 GB/s 的 DRAM 带宽。这远远低于 Infinity Fabric 或 DRAM 带宽为止,因此延伸测试线程很有可能为其我方的肯求找到闲适的队伍条件。
就像 Zen 4 和 Zen 5 一样,Zen 2 也可以从 CCD 级梗阻中受益。与 Zen 5 一样,Zen 2 在单个带宽密集型线程中不会出现延伸峰值。可是,我怀疑这里是否有任何复杂的流量不休。雷同,单个线程无法承受弥散多的 L3 未射中来操纵卑劣队伍。
退一步来说,Zen 2 的 DDR4 适度器在高负载下调治内存肯求方面作念得极端出色。尽管 Ryzen 9 3950X 被推得更接近其带宽极限,但它仍约略适度延伸。在 CCD1 的带宽中,从 CCD0 场景测试的延伸,3950X 保抓的延伸比 7950X3D 更好。
加载两个 CCD 确乎会增多延伸,但这比通过一个 CCD 的 IFOP 占用扫数 DRAM 带宽要好。即使一个 IFOP 接口的带宽足以使 DDR4 适度器饱和,但同期使用两个 IFOP 接口可以提供更好的延伸。这可能是因为我此时只激动 DDR4 带宽为止,而不是同期激动 DDR4 和单个 IFOP 达到极限。
这些不雅察终局标明 CCX 内的争用是最成问题的,尽管 IFOP 接口上的争用也会略略增多延伸。
Zen 2 还具有一双 XI 性能监控事件,用于追踪平均 L3 未射中延伸。可是,Zen 2 以周期为单元进行更径直的测量,而不是立时采样肯求。PPR 告诉您将延伸事件除以肯求数以取得周期延伸。基本上,它告诉您措置Little 定律。反向责任,延伸事件跟着 XI 每个周期的队伍占用率而增多。
单独检察队伍占用率数字会发现平均队伍占用率约为 59-61,极端接近 64。缺憾的是,AMD 的 L3 性能计数器不援助计数掩码,但平均数字可能意味着每个 CCX 的 XI 齐有 64 个队伍条件。要是是这样,两个 CCX 加起来将有 128 个 XI 队伍条件。
在 Hot Chips 33 上,AMD 展示了一张幻灯片,其中展示了 Zen 3 合并的八核 CCX 的 XI 有 192 个队伍条件。
使用 Zen 5,AMD 可能每个 CCX 有 320 个 XI 队伍条件,CCD 的两个 XI 块中每个块可能有 160 个条件。
不餍足的是,我莫得找到相关 Zen 4 的 XI 队伍容量的任何信息。也许 Zen 4 增多了队伍条指标数目,但还不及以相宜 Zen 4 在内存级并行才气方面的大幅晋升。
L2 和 L3 齐取得了更大的未射中队伍,以援助更多未完成的肯求。
Kai Troester 在 AMD 2023 年 Hot Chips 演讲中先容 Zen 4。
要是是这样,那就可以解说我在 Zen 4 上看到的一些奇怪的步履。队伍条件天然不是免费的,更大的队伍既需要占用空间又需要耗电。要是用户很少遭遇这些为止,AMD 可以在 Zen 4 上作念出合理的衡量。AMD 可能评估了很多标准并决定作念出合理的衡量。我没偶然刻或资源去作念全职职工能作念的事情,但我可以举几个例子。
实施中的延伸和带宽
在这里,我以 1080P 运行 Cyberpunk 2077 的内置基准测试。我将游戏固定在不同的 CCD 上,运行了两次基准测试,这应该会使性能监控数据更容易解说。在非 VCache CCD 上,游戏看到 10-15 GB/s 的 L3 未射中流量。在 1 秒远离内,带宽并未几,但带宽使用率在该采样远离内可能不恒定。带宽需求的短暂峰值可能会被扫数这个词内存子系统中的队伍平滑,但较长的峰值(仍然在纳秒级)可能会填满这些队伍并增多拜谒延伸。其中一些可能发生在 Cyberpunk 2077 中,因为性能监控数据标明 L3 未射中延伸频繁高于 90 纳秒。
将 Cyberpunk 2077 固定到 VCache 芯片上可权贵减少 L3 未射中流量,这显现了领有三倍 L3 容量的价值。L3 未射中的做事延伸也更低。在扫数这个词内存子系统中,更少的内存流量可减少列队延伸。因此,VCache 具有裁减平均 DRAM 延伸的次要上风。这是一个深切的组合,况且反应在基准测试的输出中。Cyberpunk 2077 的基准测试在固定到非 VCache 芯片时平均为 122.34 FPS,在固定到 VCache 芯片时平均为 153.98 FPS。尽管时钟频率较低,但 VCache 芯片的性能提高了 25.8%。
退一步说,这两种情况齐不会让游戏在内存子系统的任何位置打破带宽为止。两种情况下的延伸齐得到了很好的适度,基准延伸对性能的影响比接近带宽为止导致的延伸更大。
GHPC 是一款坦克游戏,是另一个例子。格局雷同,但带宽需求较低。VCache 再次通过在芯片上处理更多内存肯求来显现其价值。雷同,减少 L3 之后的内存子系统的负载可以裁减平均 L3 未射中延伸。
博德之门 3 是一款脚色饰演类游戏,玩家可以掷骰子和投掷物品。带宽需求每秒变化很大,但采样内存延伸仍然得到很好的适度。咱们并莫得接近 200 纳秒,这标明存在带宽瓶颈。
雷同,Zen 4 的内存子系统莫得承受太大压力。VCache 赓续说明出色,将 L3 射中率从 31.65% 提高到 79.46%。但即使莫得 VCache,也有弥散的备用 Infinity Fabric 和 DDR5 带宽可供使用。
RawTherapee 是一款免费的开源原始文献转换标准。发热友相机可以纪录原始的 12 位或 14 位传感器数据,而不是经由处理的 JPEG。原始文献为影相师提供了更多的剪辑空间来诊疗曝光和白均衡。它们还允许剪辑者在保留细节和裁减噪点之间作念出有相识的衡量。关联词,图像处理可能需要多数计较。在这里,我将几个 45.7 兆像素的 D850 原始文献转换为 JPEG,并驾御了曝光和降噪。
我莫得将 RawTherapee 固定在 CCD 上,因为图像处理是一项并行任务,收货于高中枢数(与大多数游戏不同)。相背,我同期为两个 CCD 纪录数据。RawTherapee 的带宽需求极端大 - 足以填满队伍,但频繁不及以运行卓绝 1 秒的采样远离。
这时,采样延伸数据就提供了有价值的观点。延伸峰值卓绝 200 纳秒,标明内存子系统已达到极限。
不外,并非扫数多线程标准齐会给内存子系统治来压力。我在后台运行视频编码功课的同期玩了《博德之门 3》。L3 未射中流量很大,但并不严重。延伸仍然在适度范围内,游戏大部分时刻保抓 60 FPS。
视频编码可能需要多数带宽,但 Ryzen 9 7950X3D 的 L3 缓存包含弥散的带宽,可以幸免 XI、Infinity Fabric 或 DRAM 适度器级别的争用。在某些采样远离内,核外流量卓绝 85 GB/s,因此假定莫得 L3 缓存的 Zen 4 开导将严重受到 DRAM 和 Infinity Fabric 瓶颈的影响。为了便于联接,以下是包含 L3 射中带宽的带宽图。
很久昔日,AMD 的 Llano 或 Excavator 等芯片唯有 1 MB 的 L2 缓存,莫得 L3。大型 L3 缓存占用多数芯单方面积并增多了复杂性,是以我联接为什么 AMD 在某些家具上不祥了它。但我只可念念象,即使是快速的 DDR5 开导,要是被一个假定的台式机芯片激动,也会有何等贫窭,该芯片有 16 个内核,每个内核有 1 MB 的 L2,莫得 L3。内核和内存之间的任何互连也会负载很重。天然,这样的开导不存在是有原因的。
终末的话
AMD 告成的 Zen 系列基于具有多个互连级别的可蔓延系统架构。但盘算推算可蔓延架构并谢绝易。一个级别的多个块可能必须通过下一个级别的瓶颈。要是很多中枢要求尽可能多地使用带宽,队伍可能会开动填满并导致延伸。这有可能产生“吵闹邻居”问题,即延伸明锐的代码会受到系统其他场合运行的带宽密集型代码的刑事包袱。
内存子系统级别的延伸是附加的。一个肯求因恭候 XI 队伍条件而延伸了十几个周期,在争夺 IFOP 周期时,它将晚到几十个周期。IFOP 的任何特殊延伸齐意味着肯求稍后会经由多样 Infinity Fabric 组件,以此类推。Zen 4 似乎受到复合延伸的影响最为严重,可能是因为 AMD 让单个内核耗尽的带宽比昔日多得多。但正如性能计数器和对 Zen 2 的不雅察所显现的那样,AMD 的 Infinity Fabric 和内存适度器在负载下保抓合理延伸方面作念得很好。CCX 级争用似乎导致了我看到的最严重的加载延伸峰值。
在大多数情况下,这些为止在典型的客户端驾御标准中并不常见。游戏可能对延伸很明锐,但我测试的游戏不会产生弥散的带宽需求来给内存子系统的某些部分带来压力。即使是线程雅致的坐褥力责任负载也可能不会打破带宽为止,因为 AMD 的大型 L3 缓存可以包含多数内存拜谒。有些责任负载,如 RawTherapee,既难以缓存又线程雅致。我不淡薄在游戏或其他延伸明锐标准的同期运行这样的责任负载。尽管如斯,Zen 5 标明 AMD 正在蔼然确保延伸明锐任务的雅致基准性能水平,即使在内存子系统极端死力的情况下亦然如斯。
https://chipsandcheese.com/p/pushing-amds-infinity-fabric-to-its
半导体佳构公众号推选
专注半导体限制更多原创实质
蔼然天下半导体产业动向与趋势
*免责声明:本文由作家原创。著述实质系作家个东说念主不雅点,半导体行业不雅察转载仅为了传达一种不同的不雅点,不代表半导体行业不雅察对该不雅点赞同或援助,要是有任何异议,接待磋磨半导体行业不雅察。
今天是《半导体行业不雅察》为您分享的第3958期实质,接待蔼然。
『半导体第一垂直媒体』
及时 专科 原创 深度
公众号ID:icbank
可爱咱们的实质就点“在看”分享给小伙伴哦