北京科技新闻网

一个号称“万能”的CPU架构

   栏目: 热点新闻 来源:TechWeb   时间:2022-09-13 11:17:44   阅读量:16757   

蛤蜊汤 大量半导体初创企业希望进入该市场它们要么有一些大型AI训练芯片,要么有一些超快的小型推理设备,要么可能是针对某个特定问题的HPC专注设计一些公司资金充...

蛤蜊汤

大量半导体初创企业希望进入该市场它们要么有一些大型AI训练芯片,要么有一些超快的小型推理设备,要么可能是针对某个特定问题的HPC专注设计一些公司资金充足,包括一些筹集了超过1亿美元的公司,以及一些支持超过10亿美元的公司本文重点介绍美国/欧盟芯片创业公司Tachy Yum,它于2018年首次出现在我们的视野中其高性能,高频率的处理器设计令人惊叹,覆盖众多细分市场2022年的今天,他们修改了早期的设计总之,它看起来更像是一个真正能打破常规的计算架构

我们要讨论的是一个拥有128个内核,每个内核2×1024位向量,5.7 GHz和1 TB/ s DRAM的庞然大物有人说我们数据中心的热裕量用完了,这显然是错误的超光速粒子证明了这一点在这篇文章中,我们将介绍新设计和旧设计之间的对比,以及我们可以从Tachyum的披露中收集到哪些信息

01

超光速神童2022

今天,Tachyum仍然称他们的建筑为神童但是他们已经根据客户反馈彻底改造了VLIW bundle被更传统的ISA取代,硬件调度功能更强大,提高了每个时钟的性能缓存层次结构也经历了重大变化2022 Prodigy的变化范围足够广,以至于对2018 Prodigy做出的大部分分析都不再适用

在高层次上,2022 Prodigy仍然是一个非常广泛的架构,具有巨大的矢量单元:

和2018 Prodigy一样,2022 Prodigy的目标是极高的时钟速度和高核心数事实上,这些目标已经得到了改进,时钟速度从4 GHz提高到了5.7 GHz,内核数量从64个增加到了128个在这篇文章中,我们将了解更多的细节2

02

再见了,宝贝,你好,萨妮·伊莎。

Tachyum最初试图通过将指令集与底层硬件实现紧密联系来简化CPU设计VLIW包允许非常简单的解码和映射逻辑编译器协助调度,它设置停止位来标记可以并行发出的指令组从表面上看,这种方案类似于Nvidia在Kepler和后来的GPU架构中使用静态调度,让内核跳过硬件中的依赖检查

但是,将ISA绑定到硬件会导致向前兼容的问题例如,如果新架构具有不同的指令延迟,则必须设置不同的停止位Tachyum的潜在客户不会接受产品世代之间的ISA变更实际上,像为复杂的软件项目添加ARM支持这样简单的事情可能需要18个月以上的时间支持新的ISA必须是一次性投资,而不是每次升级CPU都会重复的投资

最新的Prodigy架构通过放弃原来的VLIW方案,采用更传统的ISA,解决了这个问题该指令的长度为4或8个字节编码中不再包含停止位,这意味着Prodigy现在在硬件中进行依赖性检查,而不是依靠硬件来标记独立的指令组

03

和前端分支预测。

尽管放弃了VLIW设置,Prodigy仍然可以保持每个周期8条指令——对于目标为5.7 GHz的CPU来说,这是一个了不起的成就根据拉多的说法,这个内核宽度是在人工智能和高性能计算工作负载中实现最高性能所必需的在整数工作负载中,4宽内核就足够了,而增加到8宽内核只会提高7—8%的性能可是,AI或HPC程序中的一次循环迭代可能会执行两条向量指令,加载两次,递增循环计数器并有条件地转移将内核宽度增加到8宽度会使Prodigy在每个循环中完成一次循环迭代

为了保持这一吞吐量,Prodigy可以从L1指令缓存中每周期提取128个字节考虑到64字节足以包含8条指令,这绝对是大材小用Tachyum可能选择了更多的带宽来保持被占用分支周围的高吞吐量Prodigy没有很大的L0 BTB,所以相比Zen 3和Golden Cove,它可能会在被采用的分支周围遇到更多的取指令档位通过一次获取128B字节,前端可以在BTB延迟丢失一个周期后赶上

Prodigy的分支预测器也得到了改进BTB容量翻倍至2048,预测算法是2018 Prodigy中gshare one的改进版但总的来说,Prodigy的预测器与最新的AMD,ARM和Intel高性能核心中的预测器不同AMD的Zen 3有一个6656入口的主BTBARM的Neoverse V1有8,192个BTB门户,而英特尔的Golden Cove有一个令人难以置信的12K门户BTBBTB容量不是唯一的劣势Prodigy继续使用绑定到指令缓存的BTB这简化了设计,因为不需要进行单独的BTB查找—L1i查找为您提供了指令字节和分支目标AMD的Athlon也做了类似的事情,ARM在2010年代中期也使用了这个方案但AMD,ARM和英特尔的现代内核已经开始去耦BTB,允许它们在代码占用超过L1i容量时保持高指令带宽对于BTB夫妇,L1i小姐意味着BTB小姐而且你不知道下一个分支会去哪里,这就大大减少了指令缓存未命中后你可以有效预取的距离可是,Tachyum使用标准单元库,目标是非常高的时钟速度,使用这些标准单元库的去耦BTB被认为过于昂贵

为了解决这个问题,Tachyum将L1i的容量增加到64 KB,是2018年Prodigy的4倍,以确保减少L1i的错误拉多指出,specint2017的64 KB L1i缺失率低于0.5%我们对Ampere Altra的64 KB L1i的观察也大致如此更大的L1i也有助于提高功率效率,并最小化与数据终端在L2带宽上的竞争

ARM采用更大的64 KB L1i缓存,效果极佳,L1i失效率低。

2022 Prodigy也继续依赖于相当过时和基本的gshare预测算法,而现代CPU使用更复杂的技术,在给定的存储预算下实现更好的预测精度Tachyum考虑构建一个更高级的分支预测器,但同样,标准单元库意味着实现TAGE预测器会大大降低时钟速度由于时钟速度要求很高,除了感知器预测器——你可以想象在一个时钟周期内汇总一批权重需要很多东西具有本地历史的方案也是不可行的,因为高采集带宽意味着在每个周期中必须执行多次预测具有本地历史记录的多个预测将要求每个周期进行多次历史记录表查找所以Tachyum坚持使用基于全局历史的预测器,每个块有8条指令进行预测这使分支预测器保持简单,同时保持Prodigy内核宽度所需的预测带宽

拉多提到Prodigy的未来版本可以使用定制单元,这将使他们考虑更高级的分支预测器,同时仍然以非常高的时钟速度为目标相比之下,英特尔似乎在分支预测器中使用了定制的SRAM单元,这些单元在内核的其他地方是看不到的AMD采用不同的方法,使用相同的SRAM单元进行分支预测器存储,L1指令缓存和微操作缓存

3 Zen表明,可以使用标准单元构建最先进的分支预测器,尽管它可能不是Prodigy的目标5.7 GHz速度。

04

后端:巨大的矢量单元和完整的OoO。

如果不能有效利用,构建一个庞大的内核没有太大意义为此,Tachyum放弃了他们的2018设计,在硬件中实现了深度重排序功能2022 Prodigy可以跟踪多达256条运行指令,包括96次整数寄存器重命名和相同数量的向量寄存器重命名它可以重新排序过去的依赖关系根据Tachyum的描述,Prodigy可以像AMD,ARM,Intel的核心一样完全乱序执行但是没有使用更传统的无序引擎,而是使用了检查点方案Prodigy为可能导致异常的指令保存带有寄存器状态的检查点,例如未命中缓存的加载如果指令确实导致异常,则使用检查点来提供准确的异常处理2022 Prodigy可以保存多个检查点,2018 Prodigy只能保存一个检查点这是一个重大改进就执行单元而言,Tachyum为2022 Prodigy配备了两个巨大的1024位向量单元,并增加了向量寄存器宽度以与之匹配所以2022 Prodigy的向量宽度是2018 Prodigy的两倍,向量吞吐率高于当今任何通用CPU甚至英特尔的Golden Cove也只有两个512位向量单元

05

缓存子系统

在重新设计Prodigy架构以在硬件中进行更多的重新排序,从而可以为AI/HPC应用程序保证更多的带宽之后,Tachyum面临着保留这些内核输入的挑战同时,提供高速时钟运行的1024位矢量单元也是一个艰巨的挑战首先,L1D数据路径的宽度加倍,以匹配向量长度的增加在5.7 GHz下,Tachyum内核可以以接近1.5 TB/s的速度从其L1D加载数据L2可以在每个周期内为L1D提供完整的128B缓存线,带宽约为730GB/s相比之下,英特尔的L1D和L2缓存的每个周期加载带宽只有Prodigy的一半,而AMD则落后Zen 2和Zen 3在L1和L2的带宽是英特尔的一半当然Prodigy的时钟频率比现在的Intel或者AMD的CPU都要高,所以有着巨大的缓存带宽优势

Zen 2似乎可以通过使用未记录的性能计数器上的计数掩码来跟踪至少32个未完成的L2未命中。

为了保持高带宽和隐藏延迟,2022 Prodigy提高了内存级并行性。具体来说:

这是对2018年版本的重大改进,在2018年版本中,可实现的L3带宽和内存将受到其低MLP的限制与Zen 3和Golden Cove同处一个街区,但绝对来说可能略逊一筹

2022 Prodigy还增加了缓存容量,以更好地处理大内存占用的负载L1数据缓存的容量翻了两番,从16 KB增加到64 KB与2018 Prodigy相比,每核的L2和L3缓存容量没有增加,但2022 Prodigy放弃了独立的L2和L3布局,而是采用了虚拟L3设置空闲内核将允许活动内核使用其L2作为虚拟L3,从而在低线程负载的情况下提高缓存命中率当一个内核从它的L2中驱逐一行时,它将检查周围的内核,以查看它们的L2是否可以接受被驱逐的行只有属于非活动核心的L2缓存才会接受这些请求

对我们来说,这个设置一点也不简单,围绕这个虚拟L3的实现会有许多调整听起来好像物理内存地址可以缓存在多个虚拟L3片上,这取决于哪些相应的内核是空闲的更多的切片检查意味着更多的互连流量Tachyum也想让数据尽可能的靠近被占用的内核,可能的位置越少意味着这方面的灵活性越小与Intel,AMD,ARM使用的更简单的方案相比,正确设置这个虚拟L3听起来像是一个多维优化问题

地址转换性能也很重要,因此Tachyum将最后一级TLB的大小从256个条目增加到2048个条目在参赛作品数量上,与Zen 2,Zen 3,Golden Cove相匹配为了进一步提高TLB覆盖率,Prodigy确实可以处理更大粒度的任务,页面大小为64 KB,大页面大小为32 MBL2 TLB有248个条目,覆盖128 MB和64 KB的页面ARM和x86对于客户端应用主要使用4 KB页面和2 MB大页面较大的页面往往会浪费更多的内存,但对于通常拥有数百GB DRAM的服务器来说,这不是一个大问题

06

存储带宽

对于不适合缓存的工作负载,DRAM带宽可能是个问题我们之前提到过,Prodigy的计算与内存带宽比高于目前的CPU和GPU起初,Tachyum试图通过实现封装的HBM来解决这个问题但是HBM的产能很低,这意味着Tachyum要想占领服务器市场并不是一个可行的选择对于HPC和AI应用来说,HBM解决方案是可以接受的,但拉多指出,英伟达已经拥有了大部分市场份额,而与服务器市场相比,剩下的市场非常小保留两个存储器选项是不可行的,因为芯片上没有足够的余量空间来容纳DDR和HBM控制器

因此,Tachyum选择了一个非常强大的DDR5—7200设置,具有16个控制器和1024位的总内存总线宽度这使得它的带宽类似于英伟达的RTX 3090 GPUDDR5—7200如今并不存在,但Tachyum预计只有AI和HPC客户需要最高性能的内存设置这些客户通常购买整个系统而不是组件,从而允许集成商封装高达7200mt/s的内存模块服务器应用通常不受带宽的限制,可以使用较慢的DDR5

但即使是DDR5—7200,Prodigy的海量矢量单元和高时钟意味着它的带宽计算比低于其他CPU和GPUTachyum希望通过使用内存压缩来缩小这种差距,这有点像GPU如何进行增量颜色压缩来降低带宽要求但与GPU不同的是,Tachyum正在为AI和HPC应用调整内存压缩算法最后,Tachyum以更大的粒度执行ECC,允许存储器控制器使用一些ECC线来代替传输数据

07

提高模拟性能

Tachyum的Prodigy引入了新的ISA,所以它不会享受像x86和ARM这样强大的软件生态系统这是一个严重的问题,因为如果世界上最好的芯片都不能运行用户需要的软件,那它就完全没有价值为了解决这个问题,Tachyum正在寻找QEMU,它可以模拟另一种架构,并允许x86和ARM二进制文件在Prodigy上执行但是单靠QEMU是不够的,因为模拟性能通常很差例如,我们在Ampere Altra上的QEMU下运行为x86—64编译的CoreMark

为了提高x86二进制文件的模拟性能,Prodigy可以切换到严格内存排序模式Tachyum还完成了QEMU中的软件工作,以提高性能从绝对量来看,30—40%的业绩损失还是很严重的但是运行所需的软件比绝对性能更重要如果芯片不能运行所需的软件,那么世界上所有的性能都是无关紧要的,所以Tachyum在QEMU上投入了大量的精力来保证硬件至少在发布的时候是可用的

08

评估框架

Tachyum对Prodigy做了很多修改,所以2018版和2022版基本上是不同的架构。主要管道变化总结如下:

2022 Prodigy的变化使其成为比2018 Hot Chips上显示的版本更具竞争力的架构Prodigy不再严重依赖编译器,采用传统的ISA,并且有很好的硬件重排序功能这些都是我们对2018版最大的担忧,我们很高兴看到它们得到解决2018版中的其他弱点,如微小的L1缓存,也已得到纠正这给我们留下了一个具有巨大向量单元的宽内核,以针对高内核数芯片的前所未闻的时钟

对于HPC和AI,我预计Prodigy会很有竞争力它有足够的重新排序深度和内存级并行性,可以充分利用内存带宽虽然它的内存带宽与计算的比率低于竞争对手的解决方案,但Prodigy确实有许多技术来缓解这种情况即使没有这些技能,Prodigy仍然拥有比AMD的米兰或热那亚更强大的DRAM子系统富士通A64FX确实有相当大的DRAM带宽,但它使用的是HBM,这大大限制了它的内存容量

服务器市场是一个更难的问题Prodigy拥有良好的大L1缓存,良好的重新排序能力,极高的时钟速度和高内核数但是它的分支预测器远不是最先进的,每个核的末级缓存容量都很低更糟糕的是,向新ISA的过渡对任何大公司来说都是一件头疼的事情不过我觉得Prodigy的机会很大,因为它的时钟速度优势太大了,不仅可以掩盖它的缺点,而且在核心数和单核性能上,它都要优于其他所有的服务器产品Tachyum可以说服人们使用他们的新ISA和羽翼未丰的软件生态系统,以便利用Prodigy的高性能

如果Prodigy即将实现其雄心勃勃的时钟目标,它确实有可能成为通用处理器,至少在理论上是如此它结合了类似GPU的矢量吞吐量和CPU的单线程性能代价是极高的功耗18核Prodigy在矢量单元加载的情况下,功率可以达到近950W即使是32核,3.2 GHz的低功耗SKU也被指定为180 w——并不比基于Zen 2的Epyc 7502P好,尽管使用了小芯片设置和糟糕的工艺节点,但它还是以类似的180W TDP升级到了3.35 GHz在服务器中,整数计算不太可能让Prodigy像TDP数据显示的那样耗电但是高TDP水平仍然是一个问题,因为冷却系统必须为最坏的情况而设计

09

大约5.7 GHz

个人怀疑Prodigy能否实现其5.7 GHz的时钟目标超光速粒子正在采取一些策略来帮助控制高时钟的功率和面积目前我们无法透露具体是什么,但我认为这还不够将两个1024位向量单元推到这些时钟上将是一个不可思议的壮举管道长度似乎太短2018年,Prodigy拥有从取指令到指令执行的9级整数流水线2022年Prodigy增加了一个硬件依赖检查的阶段,使得整数流水线达到10个阶段对于以5.7 GHz为目标的设计来说,这是非常短的相比之下,Agner Fog指出,在英特尔的Golden Cove上,预测失误的惩罚超过20个周期AMD的优化手册上写着Zen 3误判的惩罚范围是11—18周期,常见情况是13周期流水线长度和Prodigy差不多的CPU是达不到5 GHz的Neoverse N1公司有一个11级管道,其工作频率不高于3.3千兆赫AMD的Phenom有12个周期的错误预测惩罚,其工作频率为3.7 GHz

发烧的问题也要考虑AMD的Zen 3时钟频率可以超过5 GHz,但它面临着低线程负载下的冷却挑战,因为他们的低核心面积意味着非常高的热密度Tachyum预计Prodigy占用的空间不到500平方毫米Tachyum发布的芯片平面图显示,每个核心的尺寸小于3 mm23禅核面积约3.78平方毫米,含L2Prodigy核心在某些方面可能不太复杂,如分支预测器,但在其他方面则更复杂我觉得核心推到5.7 GHz,大概会有热点问题

最后,一种考虑策略实用性的方法是看看其他公司采用相同策略的频率如果一个5 GHz以上的1024位向量单位的8位宽内核对于一个小型创业公司来说是可以实现的,那么AMD,ARM和Intel在过去的十年里一定是偷懒了哦,还要算上英伟达——他们的开普勒,麦克斯韦,帕斯卡架构都有32位宽的FP32 ALU,基本都是1024位或者说,大范围的架构真的很难做到这么高的时钟频率,小的创业公司也不太可能做到我不是说Prodigy达不到5.7 GHz,因为AMD的Zen 4明明已经达到5.85GHz了,可能TSMC的5nm工艺就是这么神奇吧但是通过巨大的矢量单元,高核数和相对较短的流水线来实现这个时钟速度,似乎是一座太远的桥因此,让我们看看如果Prodigy未能实现其时钟目标,它的竞争力会如何

10

高性能计算和人工智能

即使没有高时钟,Prodigy也有很大的吞吐量,这要归功于巨大的向量单元即使在3 GHz,其浮点处理能力也稳坐GPU领域竞争的CPU甚至不是一个级别的

*假设Golden Cove在Sapphire Rapids有一个2×512位矢量单元。

有趣的是,以较低的时钟运行也为Prodigy提供了更平衡的计算吞吐量与内存带宽之比在5.7 GHz下,Prodigy需要一些技巧来降低内存带宽瓶颈在3 GHz,相对于它的内存带宽,还是有很大的运算量但是比例并没有那么不平衡

*假设SPR使用DDR5—5200。

其他CPU的每触发器带宽更高,但这主要是因为它们的吞吐量低得多GPU良好的带宽计算比归功于其紧密集成的有限容量内存子系统Prodigy和其他服务器芯片一样,可以配备数百GB的DRAMGPU通常不能

所以Prodigy很有可能成为一个有竞争力的HPC或者AI芯片,即使不能实现它的时钟目标除非有重大缺陷,否则吞吐量有限的HPC和AI应用程序可以从Prodigy的矢量单元中受益Prodigy最大的弱点,比如软件生态系统,并不是那么重要,因为研究人员和AI的人通常会开发专门的系统并且HPC和AI代码也应该足够规则,Prodigy的弱分支预测器不会阻止它

11

计算机网络服务器

服务器工作负载更加复杂与竞争服务器芯片相比,Prodigy的分支预测器较弱,缓存容量较低没有高时钟,Prodigy的单核性能可能很难与之抗衡这不一定是大问题——ARM进入服务器领域说明,即使每核性能没有竞争力,高核芯片还是有空间的

但ARM在服务器市场站稳脚跟的背后还有其他因素ARM的核心目标是低功耗和高密度与英特尔和AMD不同,它们不会试图覆盖广泛的功率和性能目标这种专业化使ARM能够在保持可接受的功耗和成本目标的同时,创建适合云应用的内核数更高的芯片通过牺牲矢量吞吐量和峰值性能,这种专业化使用更小的矢量单元,并密集地设计那些时钟速度较低的单元Prodigy比任何x86芯片都有更大的向量单元和更高的时钟,所以很可能不会像ARM核一样降低到低功耗

如果Prodigy没有达到这么高的时钟,我觉得他们也没有明确的方法去抢占一部分服务器市场他们不太可能在高密度市场超过ARM如果没有时钟速度的巨大优势,它们不太可能在低线程工作负载中击败x86内核当Tachyum致力于让Prodigy出来,没有人会坐以待毙AMD准备发布基于Zen 4的热那亚和贝加莫后者将拥有128个Zen 4内核,并减少缓存设置,以匹配Prodigy的内核数量Ampere Computing正在开发Altra的继任者,可能会有超过128个内核Prodigy当然会保持向量吞吐量的优势,但是向量吞吐量并不是服务器市场的决定性因素,就像HPC和AI一样

12

结论

趋势通常是循环的几十年前,服务器,客户端系统和超级计算机慢慢融合,使用类似的硬件例如,在2000年代后期,AMD的六核K10芯片在客户端系统中用作Phenom X6,在服务器和超级计算机中用作Opteron 2435但在过去十年中,这一趋势被慢慢逆转超级计算机通常使用GPU加速来提高吞吐量,但面向HPC的GPU架构和面向客户端平台的架构之间的差异越来越大安培和亚马逊已经为云计算优化了专用服务器芯片英特尔和AMD仍然在所有三个类别中使用相同的架构,但即使如此,他们也在定制他们的芯片,以适应不同的市场例如,服务器形式的Skylake将额外的L2和矢量单元附加到核心,并使用网格互连AMD计划以第二种形式发布Zen 4,命名为Zen 4c,以缓存容量换取内核数量,应该更适合云计算

Tachyum的神童代表了一种逆潮流而动的勇敢尝试它结合了GPU的矢量吞吐量和CPU的单线程性能,但代价是高功耗可是,我们仍然怀疑,在所有障碍面前,Tachyum如何实现这一切我们确实问过Tachy Yum他们是怎么实现500mm2 CPU的虽然我们不能透露他们告诉我们什么,但我们仍然对他们在N5上的实现持怀疑态度,因为他们不仅有大量的矢量单元,而且由于芯片上有大量的DDR5和PCIe 5的PHYS,所以还有大量的大规模模拟电路

即使Prodigy按计划进入市场,它也将面临来自老牌玩家及其专业产品的激烈竞争使用单一架构来服务不同的细分市场将使Tachyum能够利用其有限的工程资源来扩展其业务范围可是,除了专注于工程工作之外,这种策略并没有太多优势不能因为两者使用同一个芯片,就让服务器充当HPC节点超级计算集群拥有极其高速的网络和分布式存储,因此节点可以一起解决同一问题数据中心不会有同样的高速网络,因为响应互联网请求不需要几乎同样多的带宽最后,Tachyum将面临一场围绕其ISA建立软件生态系统的艰苦战斗,同时在途中受到二进制翻译的惩罚对于一个小的创业公司来说,要处理的事情很多我们祝他们好运

声明:本网转发此文章,旨在为读者提供更多信息资讯,所涉内容不构成投资、消费建议。文章事实如有疑问,请与有关方核实,文章观点非本网观点,仅供读者参考。