千核能拥有怎样能力走近RISC-V超大规模人工智能芯片_第1页
千核能拥有怎样能力走近RISC-V超大规模人工智能芯片_第2页
千核能拥有怎样能力走近RISC-V超大规模人工智能芯片_第3页
千核能拥有怎样能力走近RISC-V超大规模人工智能芯片_第4页
千核能拥有怎样能力走近RISC-V超大规模人工智能芯片_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    千核能拥有怎样能力走近risc-v超大规模人工智能芯片    张平risc-v近年来的发展势头不错,其开放、免费的特性吸引了大批企业、研究人员的关注,采用risc-v架构的产品也逐渐向各个方面延伸。2020年底,一家名为esperanto的公司公布了一款采用risc-v架构的超大规模高性能al芯片,由于其独特的设计和理念,在发布后就引发了业内关注。不过当时并未公布太多信息,直到近期,esperanto才披露了这款产品在架构、设计以及运行方面的详细信息,值得一看。目前ai芯片是业内热门的发展方向,考虑到未来ai计算广阔的市场前进,大量企业都希望参与

2、其中。目前设计ai芯片的方法多种多样,比如采用x86架构、arm架构组建cpu来实现,或者采用自有指令集设计,这些不同的方法拥有各自的优势和不足。esperanto作为一家初创公司,选择了risc-v指令集来制造一款全新的ai芯片。不僅如此,这款产品还包含了高达238亿晶体管,以及超过1000个核心,规模之大令人咋舌。et-soc-1处理器总览esperanto推出的首款处理器全称是“esperanto technologies supercomputer-on-chip 1”,缩写为“et-soc-l”。它定位一款推理加速器,而不是常见的训练加速器。一般来说,神经网络需要在训练完成建立模型后

3、,才交由推理加速器进行推理。在训练阶段需要大量的原始数据、极高的计算能力和较长的训练时间。推理时间则相对短一些,它使用训练模型来完成,因此对计算能力要求不高,但是对延迟很敏感。因此在设计方面,et-soc-1需要进行针对性优化。et-soc-1包含了2个类型的核心,一个被称为et-minion,是一种顺序执行的小核心,用于处理矩阵乘法、自定义张量计算等。另一个被称为et-maxion,是一个较复杂的大内核,能够运行linux操作系统。在et-soc-1中,et-maxion被用作控制cpu,et-minion则被用作并行数据处理使用。et-soc-1设计了一个6×6网格,一共36个区

4、块,其中2个被用作控制处理器集群和pcle控制器,其余34个全部布局了被称作minion shires的et-minion处理器集群。1个minion shires中包含了总计32个,分为4组的et-minion核心,这样它一共拥有1088个(34×32) et-minion核心,以及这些核心所拥有的总计136mb l2缓存。实际上et-soc-1中还有1个额外的et-minion核心用作服务处理器。在控制中心方面,4个et-maxion和4mb l2被集成在一个区块上,用于运行操作系统等。此外,et-soc-1面向超大规模的数据中心市场,这意味着它也可以和高性能独立处理器一起工作。

5、对一些边缘应用而言,et-soc-1配合高性能独立处理器可以发挥更大的作用。加总起来,et-soc-1拥有1093个核心。et-soc-1采用了台积电7nm工艺,拥有238亿晶体管。虽无芯片面积和封装尺寸的信息,但根据同类产品进行估计,et-soc-1的封装面积可能在350mm2以上,算得上中大型处理器。单个et-minion可以在1ghz频率下实现int8精度的1280ps/周期或者128gops算力。用此数据计算的话,在1ghz频率下,所有1088个et-minion核心可以输出最多139.3 tops算力(int8)。随着频率提升,et-soc-1的算力也会增长,比如在1.5ghz下,e

6、t-soc-1的算力会提升至208.9tops (int8)。et-soc-1支持fp16(半精度)或者fp32的计算,但算力相比int8低不少。在1ghz时,et-soc-1的fp16算力为35tflops,在1.5ghz时会提升至52tflops。et-soc-1使用低功耗的lpddr4接口进行数据通信和供电,最多支持32gb容量的dram,最大带宽可达137gb/s。et-soc-1还可以通过pcie 4.0x8接口和外界连接。et-soc-1的典型工作功耗大约在20w,也可以低于它。这么低的功耗是由于芯片的运行频率非常低,只有1ghz1.5ghz,且整体规模不大,这使得et-soc-1

7、符合ocpm.2加速器模块的规格。不过未来et-soc-1还可能会衍生出支持pcie接口,具备更高规格和功耗的产品。深入et-soc-1核心架构接下来让我们深入et-soc-1内部,去看看这款risc-v架构的处理器到底有哪些独特之处。首先是负责控制的et-maxion核心的架构设计。et-maxion:性能堪比cortex-a72的控制核心et-maxion是一个典型的高性能大核心。和之前提到et-minion运行在大约1ghz1.5ghz不同的是,et-maxion运行的频率要高一些,超过了2ghz。从设计上来看,et-maxion实际上是uc berkeley out-of-order

8、machine (boom)v2 cpu(简写为risc-v boom)的一个分支。它是采用chisel硬件构建语言编写的一个可合成和可参数化的开源rv64gc risc-v核心。由于它是开源的,所以厂商可以在开源许可文件的约束下自由使用它,一般人们会利用rsic-v boom构建高性能处理器。esperanto正是利用risc-v boom构建了et-maxion的基本架构。相比risc-v boom,et-maxion在各方面都进行了大刀阔斧的改进,比如et-maxion更宽、更长、规模也更大,前端经过了重新设计,执行单元也进行了重制,并加入了分支预测器和预取器,还带来了新的底层缓存和支持

9、ecc的tlb。由于et-maxion要面向商业用户,因此还增加了商业级别芯片的调试和性能监控等功能。在spec2006的iso频率上et-maxion的性能略逊于cortex-a72,但高于cortex-a57。仅从性能来看,et-maxion在risc-v架构下排名靠前,仅弱于sifive的p550内核,后者的ipc显著高于et-maxion以及cortex-a72,spec2006测试成绩大约有8.65/ghz。et-maxion是典型的10级流水线的乱序执行架构。它的前端是一个4发射结构,每周期能够获取16b的数据,解码后以每周期4条指令的速度将其分派到后端执行部分。整个架构也可以从具

10、有奇偶校验和ecc功能的32kb分块指令缓存中获取指令。esperanto花了相当大的精力为它设计了先进的条件预测器和拥有2k条目深度,支持btb、基于路径的间接预测器。最终,et-maxion的分支预测器实现了2级预测:高速度且单周期运行、基于btb的预测执行得到结果后,输入第二级多周期、高精度分支预测器中进一步处理,后者的结果可能会覆盖前者,也可能不会。et-maxion的前端每周期最多可以向调度部分发送4个指令。et-maxion使用的是分布式调度器,总容量为64个条目。et-maxion的重命名/分配/提交重排序缓冲区的深度为128条目。前端解码后的微指令在这里暂存并进行排序、重命名或

11、者分配处理,等待进入后续的执行单元。执行单元的分派部分设计非常独特,由1个128条目的整数通用寄存器文件和1个64条目的浮点寄存器实现,整个分派部分每次可以输出5条指令。这5条指令指向后部的4个调度队列,每个调度队列都是16深度的。其中,fpu执行单元拥有1个调度队列,剩余整数部分的复杂alu、2个简单alu和agu各拥有1个调度队列。值得注意的是,2个简单alu共享一个调度器,另外,复杂alu还加入了分支预测单元,能够处理部分分支预测操作。所有4个调度队列每周期可以处理5个微指令输出的操作。浮点单元设计为64bit宽度,能够支持risc-v 32和双精度的risc-v 64浮点扩展。espe

12、ranto本来计划选择自定义指令集,但是考虑到通用性、简单性和市场接受度等因素最终选择了risc-v。esperanto希望将更多精力花在性能和架构方面的优化上,而不是去解决isa的问题。esperanto展示了et-maxion的平面图,其中几乎1/3的面积用在缓存和分支预测上。另外占据较大面积的部件包括硬件预取器hpf、fpu浮点单元、lsu、000乱序引擎等。et-maxion的硬件预取器选用了更慢但是更准确的版本,反而可以提高性能,将其放置在芯片的顶部以及关键路径的外部,可以简化接线。et-minion:专精于大规模计算的小核心esperanto设计了用于大规模并行计算的专用小核心et

13、-minion。它和et-maxion存在巨大差异,虽然也是一个64位的risc-v核心,但采用的是顺序执行架构。et-minion由于面向吞吐量,因此也采用了多线程的方案,它具有2个可以在停顿时交换的线程。et-minion采用标量流水线设计,每个周期获取、解码和发出一条指令,然后进行处理并输出结果。et-minion的主要目的是加速推理计算,针对这个类型的计算,esperanto为其设计了全新的执行引擎。et-minion的后端为矢量密集型,为了节约资源给矢量计算,et-minion只設计了一个执行单元来执行risc-v架构所需的所有必要操作。其余部分包括2个执行管道,1个256bit的浮

14、点矢量单元和1个512bit的整数矢量单元。伴随着这些矢量单元的是2个寄存器,1个32条目的256bit浮点寄存器和1个32条目、256bit的整数寄存器。寄存器对每个线程来说都是重复的,这意味着总计有2个“整数寄存器+浮点寄存器”组,每一组分别服务于一个线程。浮点矢量单元又可以细分为8×32的fma,每周期可以提供单精度16flops的性能,或者每周期半精度32flops的性能。整数矢量单元的宽度是浮点单元的2倍,又被细分为16×32 tima,每周期能够执行128个int8操作。在工作模式上,fp矢量单元从fp矢量寄存器中读入数据,但是整数矢量单元需要从fp矢量寄存器文

15、件中获得一半的矢量信息(256bit),再和私有整数矢量寄存器中获得的信息组合起来,才能实现整个512bit宽度的寄存器文件。从整个架构设计来看,esperanto在et-minion中加入了如此强大的浮点计算能力,这还是非常少见的。因为绝大部分类似的产品都只提供int8操作的能力。虽然对现有的计算来说,int8其实很多场合下已经足够使用了,但是对那些需要fp16或者fp32的工作负载来说,et-minion的确更具优势。et-minion包含一个矢量超越单元。这个单元可以执行超越函数,比如各类三角函数、指数、对数的计算,以加速诸如激活函数等操作。这个超越单元的设计非常有趣,它基于rom进行,

16、这有助于降低功耗。除了矢量单元外,et-minion还集成了一个矢量超越单元,可以执行超越函数,如各种三角函数、指数和对数,以加快激活函数等。另外,esperanto在矢量单元的设计上还做了一些独特的操作,除了标准的risc-v的矢量指令外,esperanto还加入了2条独特的矢量扩展指令,一个是多周期张量指令,另一个是伴随前者的矢量超越指令。实际上,这两条指令对ai相关的计算是非常重要的,risc-v和其他指令一样,都对ai计算这种新生事物缺乏支持,原始的指令集也没有集成相关加速的指令,因此厂商在这里添加了自有的指令集,这也是可以理解的。实际上,risc-c基金会也直在做类似的操作,比如将自

17、定义扩展植入规范中,以便更多的用户使用。不过这里存在一个知识产权的问题,esperanto可以宣称这个指令集是自己的知识产权以阻止第三方使用,但是现在esperanto没有这样做,目前尚不清楚esperanto对这些私有的指令集的处理方法,如果能够开放给业界使用的话,肯定能在很大程度上推进整个产业的发展。具体到这两个指令集来看的话,多周期张量指令集的特点是允许内核读取一条指令,通过引入张量定序器状态机(tensor sequencer),可以在100多个甚至1000多个周期内重复操作。和大多数定序器一样,et-minion为整个前端和其他每一个在张量操作发布和执行时没有被利用的单元设计了门控操

18、作。这使得内核能够进一步削减功耗。另外还有一点需要提及。et-minion的物理设计为了低功耗做出了很多优化。比如为了提高低电压下的频率,et-minion的流水线被设计为较少的级数。另外,esperanto还设计了自己定制的sram而不是台积电的标准sram。这种定制单元虽然在物理实现上要比台积电的标准单元更大,但是可以在更低的电压下稳定运行,甚至远远低于额定电压。这里的额定电压可能在0.75v左右,但是esperanto的sram可以在0.4v下稳定运行,这又可以节省大部分功耗。从核心到区块再到片区:et-soc-1的实现方式et-soc-1内拥有大量的核心,那么他们是如何集成和工作的呢?

19、在这里,esperanto带来了区块和片区的概念。先来看看区块。以1个et-minion为基本单位的话,8个et-minion可以被看作是一个区块。在一个区块内,每个内核会竞争性的共享32kb指令缓存。每个周期,一个缓存行数据被发送至2个内核。换句话说,指令缓存在每个周期内轮询一堆内核,将64b的16条指令发送到2个独立的内核,内核对这些信息进行缓冲存储,允许他们在指令缓存转移到其他内核的时候继续运行。在区块之上是片区。4个区块结合成为1个片区,1个片区拥有32个核心。每个区块通过交叉开关连接到周围的4组l2缓存。1个l2缓存包含4个1mb的sram组,可以通过软件配置其为高速缓存或者暂存器访存。在暂存器的配置下,整个缓存将被视作一个很大的地址空间,软件可以使用它精确地访问数据。有趣的是,默认情况下,片区的l2缓存都是私有的,当然也可以配置为跨越整个芯片的最后一级缓存,所有这些功能都以每個缓存bank的粒度进行配置。比如,一个缓存bank可以被保留为暂存器,另一个可以用于1mb的片区lcc,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论