原标题:集成496个核心!RISC-V架构AI加速器开源,台积电16nm工艺 来源:智东西
芯东西(ID:aichip001)
编 | 韦世玮
芯东西1月14日消息,随着RISC-V逐渐在半导体产业掀起波澜,包括三星、高通、英伟达和西部数据等公司在内的科技巨头也开始入局研发RISC-V架构的芯片。
然而,RISC-V架构离落地和成熟还有较长的距离,其实用性和商业价值也尚未得到验证。不管是已经拥有成熟芯片设计经验的老玩家,还是迫不及待入局的新玩家,都在不断尝试创新研发,以共同促进RISC-V生态的发展。
值得一提的是,美国密歇根大学、康奈尔大学和Bespoke Silicon Group(泰勒的定制芯片研究小组)的研究人员研发了一个多核RISC-V分层加速器SoC,名为Celerity。它采用台积电16nm工艺,使用分层的加速器结构来提高高性能嵌入式系统的能效。
据悉,作为DARPA(美国国防高级研究计划局)快速电路复兴计划的一部分,Celerity目前在RISC-V的性能方面保持着世界纪录,能够实现每秒500B RISC-V指令,比以往的记录高出100倍。
目前,Celerity的开源RTL设计已在Celerity网站上提供下载。
美国芯片网站WikiChip Fuse曾对Celerity芯片的技术和架构进行解读,下面则是原文的编译分享:
一、三大主要层,集成496个核心
早在2017年的Hot Chips 29大会上,Celerity团队就已经展示了这款芯片。直到去年的VLSI 2019,该团队又进一步介绍了Celerity二代芯片的PLL(锁相环)和NoC(片上网络)。
Celerity SoC是一个多核多层的AI加速器,包括三个主要层,分别为通用层、大规模并行层和专用层。
为什么要使用分层SoC呢?原因在于,它能够在典型的CPU设计上提供更高的灵活性和功耗效率。
1、通用层。这一层几乎可以执行任何操作,例如通用计算、内存管理,以及控制芯片的其余部分。因此,研发团队集成了Free Chip Project的五个高性能乱序RISC-V Rocket内核。
2、大规模并行层。这一层集成了496个低功耗定制设计的RISC-V核心网络,这些定制核心也被称为Vanilla-5,是一种有序标量内核,其占用的空间远小于Rocket内核。
3、专用层。这一层集成了二值神经网络(BNN)加速器。
实际上,这三层都是紧密连接的,并与400 MHz的DDR存储器接口。
Celerity多核网络时钟的速度是由一个定制的PLL提供,这是一个相当简单的一阶ΔΣ数字频率转换器PLL。
它使用一个由16个数字控制振荡器(DCO)组成一个组,每个实现单元都是一个环形振荡器,其反相元件装有NAND门FCE。
因此,整个数字PPL是一个完全合成,且自动放置和布线的设计。此外,该PLL在其16nm芯片上的频率范围是10 MHz至3.3 GHz。
二、硅面积为25mm²,多核阵列复杂性降低
与许多学术项目相同,硅面积也是非常重要的一点。
Celerity整体芯片为25平方毫米(5×5),对它来说,一些关键的架构设计决策都以限制硅面积的需求为主,这在一定程度上也降低了复杂性。
Manycore架构是一个16×31的Vanilla-5 RISC-V小型内核阵列,它的第32行用于外部主机,且该主机用于与芯片上的其他组件进行接口。例如,它会将消息或数据发送到大型Rocket内核中进行最终处理。
此外,它的整个网格为3.38mm×4.51mm(15.24mm²),约占整个芯片的61%。Vanilla-5核心是5级有序流水线RV32IM核心,支持整数和乘法扩展。
在硅芯片上,这些核心能够达到1.4 GHz,比研发团队在Hot Chips 29上展示的第一个硅芯片还要高出350 MHz。
为了降低多核阵列的复杂性,Celerity使用了分区的全局地址空间、单芯片数据包和远程存储编程模型。
其中,它的阵列利用了全局分区地址空间(GPAS),用32位地址方案将整个内存地址空间映射到网络中的所有节点上,而非利用高速缓存。这一方法不需虚拟化或转换,极大地简化了设计。
研发团队表示,与等效的一致性缓存系统相比,这一设计能够将区域开销降低20倍。
值得一提的是,由于该多核阵列的目标工作负载是AI加速,因此它能够采用显式分区的暂存器存储方案,能够实现高度并行且定义明确的独立流模式。
与此同时,对于这类代码,控制存储器局部性的能力是较为有利的,阵列中的每个核都可以自由执行加载,并存储到任何本地地址。
然而,它只能执行对远程地址的存储。没有远程负载意味着它们将路由器面积减少了10%,并且由于远程存储可以进行流水线处理,因此它能够防止流水线停顿。
这类远程存储编程模型方案允许它们使用数据网络和credit计数器网络,以管理未完成的存储。
此外,它的内存映射扩展到阵列底部的16个路由器停靠点,能够让消息进出多核阵列,到达芯片上的大核以及其他外设。
三、时钟频率仅次Kilocore,CoreMark测试超80万
实际上,Celerity并没有使用常见的大规模并行处理系统中的一项关键技术——Wormhole Routing,而是将地址和数据合并到单个flit数据包中,摆脱了发送数据和元数据都需要的头部或尾部信息。
另外,由于没有保留的路由,它也摆脱了HOL阻碍。每个flit均为80b宽,其包括控制位16位、数据位32位、节点地址位10位、存储器地址位22位。
Flit节点地址保留了将数据发送到任何目的地的能力,仅将单个flit注入到网络中,因此可以使用有序管道在每个周期中执行一个存储。
在多核阵列中的496个节点中,每个节点都有一个路由。路由本身在每个基本方向(N,S,E,W)的输入处都包含两个元素的FIFO,并在网络拥塞的情况下用作临时存储的控制处理器。
研发人员使用循环仲裁(round-robin arbitration)来确定数据包的优先级,以在每个周期对每个方向进行仲裁。同时,他们还使用尺寸顺序的布线,在一个方向上减小偏移,然后再移动到另一方向。
通过这一简单的设计,整个路由就能够实现单级设计,而节点之间也没有管道寄存器。也就是说,它每跳只需要一个周期。
在数据网络和credit计数器网络方面,路由使用一个受源代码控制的credit计数器,每当一个远程存储包注入网络时,该计数器就会递减。
通过credit计数器网络返回,该网络使用与上述数据相同的体系结构,但它只包含节点地址,所以只有9位。
Celerity的研发团队曾对600 mV到980 mV的正确操作进行报告,频率从500 MHz到1.4 GHz不等。
因此,目前Celerity是时钟频率第二高的芯片,仅次于Kilocore。其中,由于封装方面的限制,Kiloecore只支持其1000个内核中的160个。
在1.4 GHz时,Celerity整个网格的最大计算能力是694.4 INT32 GOPS。由于Vanilla-5内核是RV32IM,支持RISC-V整数和乘法扩展,但不支持浮点运算,因此它的所有AI工作负载都必须进行量化。
此外,由于连接节点的路由器与核心都在相同的时钟域,每个路由器在每个周期同时支持5个flit,从而每个节点的总聚合带宽为748 Gbps,总聚合网络带宽为371 Tb/s。
但是,Celerity的研发团队在报告中并未透露任何与AI相关的常见基准测试结果,而是选择使用CoreMark(用来衡量嵌入式系统中CPU/微控制器MCU性能的标准)。
在CoreMark测试中,当Celerity达到580.25 CoreMarks/MHz时,总得分为812350。
在过去的几年中,CoreMark一直是RISC-V社区首选的测试基准。但CoreMark的问题在于,它通常会为简单的有序设计生成令人难以置信的乐观分数,但实际工作负载却表现出截然不同的结果。
鉴于Celerity研发团队的目的是设计出高度灵活的AI加速器,因此行业人士也希望他们能够进行更有参考价值的性能测试,例如MLPerf性能基准。
文章来源:WikiChip Fuse
24小时滚动播报最新的财经资讯和视频,更多粉丝福利扫描二维码关注(sinafinance)