【新智元导读】Groq一夜爆火的背后,是自研的言语统治单位硬件LPU,不日,Substack的专栏作者Abhinav Upadhyay为咱们一步步揭示了LPU底层架构的神秘
依附自研的硬件加快器LPU,完毕了500个token/s的神级推理速率,马上秒杀了ChatGPT。
Groq的研发团队正在LPU上操纵了更始的硬件架构打算,并配套了壮健的编译器。
到目前为止,Groq并没有给出任何合于LPU自身的论文,但正在过去几年中,他们宣告了下面两篇论文:
两篇就业分歧正在2020年和2022年宣告正在算计机编造布局顶会ISCA上,后一篇依旧获奖论文。
这两篇作品注脚了Groq的张量流统治器(TSP)的打算和完成,以及他们何如利用TSP修建漫衍式推理引擎。
虽然没有正式声明,但LPU很大概是基于这个漫衍式体例来实行打算和扩展的。
那么,咱们就最初具体领悟一下TSP及其编译器的架构,然后以此为根柢来剖释Groq何如利用这些TSP,修建牢靠且高含糊量的漫衍式AI推理引擎。
TSP的架构与古板的CPU或GPU芯片有很大区别,首要方针是为了让TSP硬件更具确定性。
基于微架构的打算,正在CPU和GPU上践诺指令是不确定的,——即无法保障特定指令何时践诺、落成必要多长功夫以及何时供给结果。
- 预测践诺(Speculative execution):看待分支,它会猜想分支前提是真是假,并践诺该分支以普及含糊量(当然假若猜错了,就必要放弃并返回另一条分支);
- 指令流水线(Instruction pipelining):将指令分为多个阶段,以流水线的式样践诺,再次普及了指令含糊量;
而GPU又有其他少少非确定性身分,包含缓存、共享和全部内存、动态资源分区等。
非确定性带来的题目是,咱们很难推理秩序的机能,也很难保障最坏情景下的机能限定。
是以,Groq为TSP提出了一个全新的打算,高度并行,且没有不确定举动。这排除了硬件的庞杂性,使编译器或许得到更大的权柄,切确调理和独揽指令的践诺,保障对秩序机能的限定。
TSP的硬件打算与CPU或GPU的打算造成光显比较。古板的多核芯片采用平铺架构,不才图(a)中,每个幼方块(tile)代表一个统治中心。
中心由一构成效单位构成,肩负践诺区别类型的算计(算术运算、内存运算、逻辑运算、指令独揽等)。
而TSP的打算师将这种古板打算彻底推翻了。他们将成效单位移到中心除表,以2d网格式样分列。
网格的每一列只包蕴特定类型的成效单位,称为切片(slice)。下图显示了古板多核芯片和TSP正在打算上的区别。
ICU:指令独揽单位,这个有点独特,即是上图(b)底部那一条水准的蓝色条,它肩负获取和调理指令并正在其他切片上践诺。
TSP以SIMD(单指令大都据)式样践诺指令。每个成效切片由20个tile构成,每个tile或许统治16个数。是以,一个无缺的切片可能统治并天生最大320个元素的向量。
当从内存中读取向量时,会为其分拨流ID(介于0到31之间)和流向(东或西)。每个切片都可能自正在统治流并天生新的结果流,也可能让流按原样流向下一个相邻切片。
TSP中指令的流水线践诺会导致流正在切片之间交叉搬动。上图的玄色块刻画了流正在切片中区别功夫戳的搬动。
TSP的打算职员简化了硬件,于是压力就给到了编译器这边。编译器必要切确地调理指令和数据流,以准确践诺给定的秩序,并以最有用的式样践诺。
- 320个通道的编程笼统:TSP芯片中的每个tile都或许以SIMD式样正在矢量的16个单位(16个通道)上运转。笔直切片由20个如此的tile构成,是以总共有320个SIMD通道可供践诺;
- 144个独立指令队伍:芯片上有144个指令队伍,每个周期或许发出一条或多条指令。编译器可能齐全独揽每个队伍中的秩序秩序;
- 每个通道64个逻辑流:每个通道可能拜望64个逻辑流,可用于搬动操作数或结果,个中32个可用于向东搬动数据,而其余32个用于向西搬动数据;
因为TSP硬件中没有非确定性举动,是以编译器可能正确剖析每条指令的延迟,以及秩序中的数据流(DNN的算计图等)。
编译器识别算计义务之间的依赖干系,并分拨到TSP的可用成效单位上并行践诺。
TSP是LPU的根柢单位。很多TSP以机架的样子组合正在沿道,造成一个或许供给洪量含糊量的漫衍式体例。
与TSP相同,漫衍式多TSP体例的打算方向也缠绕着确定性数据流和指令践诺,以及节点之间的低延迟通讯。
漫衍式TSP体例的打算从节点最先。节点由机箱内8个TSP设置构成。这些设置中的每一个都由11个引脚构成,个中7个引脚用于将每个TSP设置相联到节点中的其他7个TSP设置,其余4个引脚用于造玉成部链接。
节点中的每个设置都有4个全部链道,总共有32个全部链道,合伙组成了一个32个虚拟端口的高基数道由器(high-radix router)。
高基数道由器支柱洪量相联、高带宽和高机能,这恰是高机能漫衍式体例所必要的。
将9个如此的TSP节点和8个TSP组合成一个机架。机架中的每个节点都有32个端口,是以机架总共有288个全部端口。
个中144个端口正在机架内当地利用,以便正在机架内疾捷传输数据,其余144个端口用于相联到其他机架。
最大装备的体例可能支柱145个彼此互连的机架,包含10440个TSP,体例中任何两个TSP之间最多有5个hops。
正在这种扩展的漫衍式体例轨造中,单个TSP的成效单位充任大领域并行统治器的单个统治中心。TSP的算计模子基于确定性硬件,于是全盘漫衍式体例也应拥有同样真实定性。
每个TSP设置都包蕴一个称为硬件对齐计数器(HAC)的硬件计数器,溢出周期为256。TSP通过以下步调利用它来彼此同步:
- 当两个TSP互连时,个中一个TSP将其HAC值传输给对方。然后,对方将该值返回发送方。发送方侦察眼前HAC值与返回值之间的差值。
- 这个差值就代表了两个设置之间链道的延迟。此经过反复多次,取得两个TSP之间的均匀链道延迟。
- 之后,两个设置以父子干系分列。父级按期将眼前HAC值发送给子级。子级将均匀链道延迟与我方的HAC值相加,并与我方的HAC值实行比拟。
- 两个值之间的差值表现因为连气儿时钟漂移而导致的初始未瞄准。然后子级调动其HAC值以减幼此差别。正在多次反复此经事后,两个TSP的HAC值会收敛正在一个幼邻域内,表现链道延迟的震颤。
- 同意承诺两个TSP彼此同步,而且可能通过正在汇集合筑筑天生树来扩展TSP多跳汇集。
秩序正在多TSP体例上践诺之前,必要对齐一共TSP,以准确调理全盘体例的数据流和指令践诺。这涉及到以下机造:
- 正在单个TSP级别,有几个独立的成效单位和144个独立的指令队伍。为了同步它们,TSP支柱SYNC和NOTIFY指令。SYNC指令将一共指令队伍置于停放状况,个中一个队伍充任通告秩序。当通告器发出 NOTIFY指令时,该指令被播送到芯片上的一共队伍,此时它们被同步并复兴操作。
- 看待多TSP体例,两个TSP利用HAC彼此同步,其余每个TSP都支柱DESKEW指令硬件,用于休止统治任何后续指令,直到TSP的HAC溢出。
固然TSP正在秩序最先时实行一次性同步,但它们也必要正在秩序践诺光阴从新同步,由于每个TSP都有我方独立的时钟源。
为此,TSP利用更轻量级的计划。除了HAC除表,每个TSP都有一个软件对齐计数器(SAC),其溢出周期与HAC类似。
然则,SAC正在TSP之间区别步,SAC只是算计TSP的时钟周期。HAC值表现漫衍式体例的全部功夫,而SAC表现当地功夫。是以,HAC和SAC值之间的增量决心了累积漂移。
为了从新同步当地和全部功夫,TSP践诺一条RUNTIME_DESKEW指令。体例中的每个TSP同时践诺该指令,凭据累积的漂移调动全部功夫与当地功夫。
到目前为止,编译器或许对TSP内以及全盘汇集合的数据搬动实行周期正确的剖析。编译器分明正在源TSP上注入向量的准确功夫以及它达到方向TSP的准确功夫,称为软件规划汇集。
看待深度进修模子,编译器可能凭据模子的静态算计图推想数据流。编译器还可能正在汇集合可用的TSP设置之间自愿分拨算计义务。
是以,编译器会算计每个子义务的切确践诺功夫以及各层之间的激活交流。这使得并行领悟步调显式,并齐全由编译器独揽。
正在古板的汇整体例中,通过汇集的数据包流由硬件束缚,硬件正在感想到汇集合的负载时会优化道由。数据流中的这种被动调动会加添延迟,并正在数据流中引入非确定性。
为了避免这种情景,漫衍式多TSP体例利用编译器显式调理通过汇集的数据流。编译器奇妙隧道由数据,以便正在职何功夫点都不会正在汇集合显现堵塞储蓄。
除此除表,编译器规划的数据流还改革了汇集合的延迟,由于编译器可能调理数据主动推送,而不是必需通过设置恳求。
正在编译时调理数据流的另一个利益是,它承诺编译器有用地跨可用链接对流实行负载平衡。正在古板汇集合,硬件凭据道由器中可用的堵塞目标,按数据包践诺道由决议。
然则,正在多TSP体例的情景下硬件,编译器会凭据数据量以最佳式样践诺调理,并遴选要疏散流量的链道数目。如此可能有用地操纵体例中的可用带宽,并裁减全体延迟。揭开Groq LPU诡秘面纱:天下最快硬件加快器的底层架构安排