关于软硬件融合的一些基本观点:
前阵子,又更新了一版“软硬件融合”幻灯片(可在文章末尾找到下载地址)。有一些朋友对软硬件融合有自己的理解,有些观点甚至跟我们这里强调的软硬件融合观点是相悖的。在这里,把我们所强调的软硬件融合的一些基本的观点,在这里再总结一下,算是跟行业中的朋友们共同探讨:
- 软硬件融合不是软硬件耦合。仍然是要软硬件划分、解耦,然后协同。随着时间推移,有可能还需要重新再划分、再解耦、再协同。
- 软硬件融合不是软硬件协同。软硬件协同是单个软件和单个硬件的协同;而软硬件融合是更复杂的系统中,很多个软件和很多个硬件的协同。
- 软硬件融合的基础之一,是基于“指令”复杂度以及性能和灵活性的原则,把从CPU到ASIC的各类处理引擎,按照不同软硬件比例进行划分。
- 软硬件融合的基础之二,就是复杂系统通常都呈现出分层分块的架构。在目前云计算的超大规模以及更大规模的云网边端融合的影响下,单个设备/服务器上分层分块的系统,会沉淀出很多共性的适合硬件加速的任务。
- 软硬件融合不改变系统架构。
- 软硬件融合有一个原则是“尽力而为”,而不是“一定要为”。所以,软硬件融合并不强调所有任务都要ASIC/DSA加速,有一些任务可能适合在GPU/FPGA,甚至CPU。
总之,软硬件融合是一个由相关理念和技术组成的复杂体系,具有非常大的现实价值,值得持续研发投入和相关产品落地,数量级的提升算力,更加繁荣我们的数字经济。
关于Open Programmable Platform的观点:
在软硬件融合幻灯片里,我们提到,需要构建开源开放的软硬件融合生态。从技术的底层逻辑,我们已经分析到,在Domain软硬件设计越来越成为主流的情况下,没有任何一家公司能覆盖所有的业务领域,如果这么做只会被行业无情的淘汰,未来一定是开源开放平台的发展趋势。
2022年3月15-16日,Intel和Redhat等公司发起Open Programmable Infrastructure Ecosystem,邀请了产业界的相关公司共同探讨IPU/DPU软件生态建设。可能大家还没有意识到,这是整个IT行业超级大的事情。在可预见的未来,这个趋势会彻底改变IT行业生态逻辑。
国内的厂商,不管是做DPU的,还是做CPU GPU以及做AI芯片的,大家都应快速跟进、积极参与甚至引领这个开放可编程平台和生态。也包括各大互联网及云计算公司,需要尽早介入尽早发挥作用。
虽然目前还只是DPU领域。
编者按:
Tenstorrent的可扩展AI架构,跟Tesla Dojo有一些理念相似之处。这里的很多特征非常符合我们软硬件融合的理念和思路,大家一起学习:
- 每个Tensix处理器核是CPU标量处理器+AI计算引擎。既有通用可编程的优势,又有AI张量加速的优势。
- 条件处理。实现对稀疏矩阵处理的优化。
- 包处理引擎。负责跟外部的数据交互,以及数据的一些前处理和后处理。实现数据交互的性能优化。
- 芯片集成类似独立Host CPU的独立的嵌入式CPU,作为系统调度和管理,进一步增强AI芯片的灵活性和图灵完备性。
- 高可扩展的架构,包括内部总线以及PCIe/ETH,实现近乎无限的扩展性(跨芯片的扩展性是通过高速的ETH实现的,这是第二代Wormhole的特征,本文主要介绍第一代Grayskull芯片,其只能实现芯片内的可扩展。Tenstorrent的其他一些芯片及技术内容,会在后续的文章中推送)。目前基于CPU或GPU的扩展性难以跨越服务器的物理约束(否则整个系统性能会很差),因此把巨服务拆分成微服务的系统解构成为必选项。但是AI的模型发展趋势却是越来越巨型化,这样,提供近乎无限扩展的AI训练系统,可以简化AI算法工程师的工作,让他们从训练集群的软硬件平台的细节约束中抽身出来,把精力专注到算法本身,以此来进一步提高算法设计的效率。
(正文)
TENSTORRENT扩展AI性能
——新的多核架构,引领数据中心能效
作者:Linley Gwennap(2020 年 4 月 13 日)
Tenstorrent 想将其AI架构从毫瓦级扩展到千瓦级,但它需要从功能强大的数据中心芯片开始。为了在大型单片架构和微型内核阵列之间找到一个有效的中间地带,这家初创公司正在对具有120个内核的芯片进行采样,每个内核能够每秒执行3万亿次操作 (TOPS)。在368 TOPS的峰值速率下,该芯片的运行功率仅为65W。在推理流行的神经网络时,Tenstorrent 期望其灵活的架构能够胜过功耗高达300W的其他竞争对手的设备。在最近的 Linley Spring 处理器会议上,Tenstorrent披露了ResNet-50和Bert模型的初步测试结果,用来证实上述这些说法。
为了提高电源效率,这家初创公司设计了Tensix架构来利用稀疏性,这意味着内核不会将电力浪费在没有产生有意义结果的操作上。尽管该架构不是神经形态的,但它采用软件的条件执行来实现类似的优化。为了进一步提高效率,它具有“密集数学单元”,可以基于一条指令执行数千个操作。最后,Tenstorrent优化了内核到内核的互连,以最大限度地减少数据包开销。
图1 Tensix核心。每个内核有五个标量RISC CPU,它们均可访问链接到总线互连的数据包引擎和可以承担3 TOPS的计算引擎
基本架构单元是Tensix核心,它围绕一个大型计算引擎构建,该引擎从单个密集数学单元承担3 TOPS计算的绝大部分。内核包含1MB的SRAM,用于保存权重值并将数据提供给计算引擎,如图1所示。五个简单的CPU处理标量处理并管理条件执行。每个Tile通过四个双向总线互联连接到相邻的Tile,形成双2D圆环,减少移动数据所需的跳数。数据包引擎处理的数据来自环面,在传输的过程中即时解压缩。
Tenstorrent成立于2016年底,总共筹集了3400万美元,用于建立一个由50多名工程师组成的团队,他们位于加拿大多伦多和德克萨斯州的奥斯汀。首席执行官Ljubisa Bajic也是首席架构师。去年初,该团队生产了一个5核心的测试芯片来验证该架构。去年12月,它收到了其第一个产品代号为Grayskull的芯片,该产品现在正在提供样品。该芯片预计将在2H20量产。
1 核心的条件运行
阿里巴巴含光800、谷歌TPU和英特尔Habana Goya等加速器都具有一些大型计算阵列,而Tenstorrent将计算能力划分为120个内核。这种方法减小了每个计算单元的大小,从而更容易有效地填充。它还为条件计算打开了大门。海量阵列适用于大型计算,但一旦开始,它们必须持续运行直到完成。通过将任务分散到多个核心上,每个核心都可以测试数据条件,如果结果不再有用,则停止计算,即使其他核仍在继续工作。条件计算可以节省电力,甚至在某些情况下提高吞吐量。
每个Tensix内核中的CPU使用专有的RISC指令集在每个周期执行一条指令。它们在C++ 中是可编程的,允许开发人员轻松实现循环和条件执行。这些程序还可以包括使用计算单元执行向量和张量操作的API调用。五个CPU必须仲裁才能访问单个计算单元。由于它们比计算单元小得多,提供的多个CPU核可以使计算单元尽可能处于工作状态。
计算单元是Tensix核心的核心。它包括两个组件:SIMD矢量引擎和矩阵/张量引擎。SIMD单元执行基本和高级数学;它可以加速AI和非AI计算(例如,信号处理)。它一次对64个值进行运算,将任何支持的数据类型扩展为非标准FP格式,该格式可以累积许多FP16产品而不会丢失精度。张量引擎可以加速卷积运算和通用矩阵乘法(GEMM)。它在每个周期产生一组结果,这些结果可以存储在内存中或重定向回单元中以进行进一步计算。Tenstorrent保留了更多细节,但为了达到3-TOPS的性能量级,张量引擎可能包含大约一千个8位MAC单元。
计算引擎可处理多种数据类型,但它针对8位整数 (INT8) 进行了优化。它还为需要更大动态范围的客户处理半精度浮点(FP16)和Bfloat16;然而,这些操作的吞吐量是INT8操作的四分之一。专有的FP8格式允许与INT8相同的吞吐量。
为了节省存储空间,该设计实现了块FP格式,其中16个值的组共享相同的8位指数。Tensix使用8、4或2位尾数定义块FP格式,以牺牲吞吐量换取精度。一旦内核从内存中加载值,它会在任何计算之前将它们扩展为FP16。在其第一款Nervana芯片中,英特尔实现了一种称为FlexPoint的块FP模式,但该方法只为所有活动数据提供了一个共享指数。Tenstorrent设计的不同之处还在于,硬件在将值存储到内存之前计算共享指数,因此压缩对软件是不可见的。
2 制作大网格
与大多数其他AI加速器供应商一样,Tenstorrent拒绝GPU的大型寄存器文件和小型多级缓存的复杂内存模型。Tensix拥有一个小的寄存器文件和每个内核1MB的SRAM,创建了一个平面内存层次结构,使数据靠近计算单元。120MB的Grayskull芯片提供的片上内存大约是Nvidia的V100 GPU的五倍,即使包括GPU的巨大寄存器存储也是如此。尽管计算单元只能在本地内存上运行,但每个内核都可以使用片上网络 (NoC) 互连轻松访问其他内核中的数据。
数据包引擎实现硬件数据压缩。它在通过NoC传输数据之前压缩数据。根据数据中零的数量,这种压缩通常会将数据缩小50-75%,但在稀疏数据上该百分比可能更大。当数据包到达目的地时,压缩数据存储在本地SRAM中。一旦计算引擎准备好数据后,数据包引擎将其解压缩。处理完成后,数据包引擎再次压缩数据。这种方法不仅增加了NoC的有效带宽,而且还把更多的数据塞进了内核的内存中。
NoC是为移动巨大的张量而设计的,所以它使用大数据包来最小化数据包头的开销。包协议简化了移动数据的软件开销。NoC还实现了复杂的多播模式,例如,一次将一组固定权重加载到多个或所有内核中。运行在RISC内核上的软件可以手动传输数据,也可以将数据包引擎配置为自主移动数据块。
图2 Grayskull加速器。Tenstorrent芯片实现了一个由Tensix内核组成12x10阵列,峰值性能为368 INT8 TOPS。八个DRAM芯片为为内核提供片外内存,一个PCIe接口连接到Host处理器。四个超标量CPU管理整个数据流。
除了120个Tensix内核之外,NoC还连接到8个DRAM控制器,如图2所示。每个都支持单LPDDR4-4266芯片,最大内存容量为16GB。通过32位接口与基于数据包的ECC相连,每个芯片提供16.5GB/s的用户数据,总峰值带宽为132GB/s。商业的DRAM降低成本,LPDDR比标准DDR或HBM内存消耗更少的功耗。
Grayskull集成了四个Synopsys ARC CPU,用于监督整体操作。它们还可以处理不适合Tensix内核的特殊层和功能。加速器通过16通道PCIe Gen4接口连接到主机处理器,该接口可以以32GB/s的速度运行。它采用GF 12nm技术制造。即使包括DRAM和其他组件,该设计也符合PCIe总线供电的75W限制。
Tenstorrent正在为其新架构开发软件堆栈。当前软件仅直接接受来自Pytorch框架的神经网络,尽管它可以与以ONNX格式导出的其他框架一起使用。它处理量化,然后将模型编译为Tensix指令集,并在120个内核之间分配代码和数据,调度所有数据移动以及优化NoC和DRAM带宽。每个内核中的CPU执行一个小型运行时引擎,而不是标准RTOS;此代码控制对计算和数据包引擎的访问,并处理核心到核心的通信。客户还可以使用C++编程并使用编译器为处理器生成可执行代码。
3 领域之主
Tenstorrent的芯片表面上与Nvidia最近推出的GPU类似,例如Turing架构的Titan RTX实现。每个Turing核心的TOPS等级与Tensix核心相似。Titan RTX有72个核心,大约是Grayskull的三分之二,所以它的总TOPS有点少。这两种内核类型都易于编程且足够灵活,可以处理各种模型。但是Nvidia产品的片上内存要少得多,因此它需要更高带宽的DRAM连接,推高成本和功率。通过优化稀疏性和神经网络,同时消除GPU开销,Tensix架构的能效也大大提高,以不到总功耗的三分之一提供更多的TOPS,如表1所示。
表1 用于推理的深度学习加速器。IPS,每秒图像数。尽管Groq具有领先的TOPS评级,但Tenstorrent提供了迄今为止最好的能效(IPS/W)。*成品速度可以更高;†最佳批量大小。
(数据来源:供应商,除了‡部分为The Linley Group估计)
Groq的TSP是最强大的商用AI芯片,产生至少800 TOPS。它采用了完全不同的设计,具有单个巨大的核心(参见MPR 1/6/20,“Groq Rocks 神经网络”)。TSP包含220MB的片上SRAM——几乎是Grayskull的两倍——但它没有外部存储器,因此最适合恰好内部存储器可存储的模型。它需要更多的功功耗,并且对其峰值TOPS额定值的利用率较低。
Tenstorrent已经在其芯片上运行了初始的基准测试,并希望在接近产品化时对其进行改进。即使使用预生产软件,运行batch=20的ResNet-50推理时,Grayskull也能达到每秒22,431张图像(IPS)。这个分数比Titan RTX高出近30%,也超过了TSP。即使在batch=1运行时,Grayskull也提供了大约50%的峰值性能,而GPU损失了大约80%的峰值性能。Groq拥有单核,是batch=1时的冠军。
Tenstorrent以每秒2,830 SPS(sentences per second,每秒句数)的速度测量了更大的基于Bert的模型,序列长度为128;Nvidia的V100在同一测试中达到2,891 SPS。这家初创公司还测试了一种“提前退出”算法,如果信心水平已经足够高,该算法会在模块5之后(大约一半)停止。这种方法将吞吐量提高了1.76倍,达到5,632 SPS,同时将模型的准确度降低了0.5%,这对于MLPerf测试和许多终端应用程序来说是可以接受的。通过适应Bert的可变序列长度,该公司又获得了2倍的收益。这些收益证明了Tensix条件执行的价值,但它们需要对模型进行一些更改。
图3 加速器推理性能。与领先的商业加速器相比,Tenstorrent提供更好的ResNet-50吞吐量和更高的每瓦性能,但它落后于阿里巴巴的含光800。(数据来源:供应商,*The Linley Group估计的除外)
Grayskull的ResNet-50推理吞吐量超过了所有其他商业加速器,如图3所示,但落后于阿里巴巴内部部署的含光 800(参见MPR 3/2/20,“阿里巴巴使用卷积架构”)。然而,这张图表中的大多数芯片都需要200-300W,远远超过Grayskull。绿色的条形图比较了每个产品的功率效率(每瓦特的性能)。
在电源效率方面,阿里巴巴在含光使用低电压模式仍然遥遥领先,但Tenstorrent的产品的效率大约是最接近的商业竞争对手英特尔的Goya芯片的两倍,比Titan RTX和Groq的TSP好四倍。图3还显示了Nvidia的节能T4,它的TDP与Grayskull大致相同。通过以比Titan RTX更低的速度运行其Turing内核,T4略微提高了电源效率,但Tenstorrent的效率是Nvidia最佳产品的三倍以上。
4 架构效率最高
Tenstorrent已经在开发其代号为Wormhole的下一代产品。该芯片将扩展Tensix架构,用于神经网络训练,添加 FP32 支持。Wormhole还将包括Grayskull所缺乏的连贯接口,用于连接多个加速器以训练大型模型。这家初创公司希望在今年(2020年)晚些时候推出其训练芯片,并在2021年出货生产单元。
Tenstorrent 在开发和验证 Tensix 架构方面已经取得了长足的进步,该架构结合了常见的单元,例如内核网格和提供不同寻常容量的大型片上存储器。高计算密度的数学单元有助于芯片提供比传统架构更好的MAC利用率。相对于单片设计,较大的内核数量提高了利用率。公司对提前退出算法的测试表明,对标量代码和条件执行的强调为性能增强提供了有意思的机会。
与所有其他已发布的推理加速器相比,这些功能以及其他优化有助于Tenstorrent实现领先的性能和能效。电源效率特别令人印象深刻,因为该公司可以在75W PCIe卡中提供比其他供应商在300W产品中提供的性能还要高的性能。尽管阿里巴巴内部的ASIC可以提供比Grayskull更好的效率,但它只有在低电压运行时才会这样做;使用同样的技巧,Tenstorrent可能会超过阿里巴巴。其他加速器供应商将很难赶上这一指标。
与其他AI初创公司一样,Tenstorrent面临的最大挑战是软件。它目前只直接支持一个框架,即使那样也只支持少数几个模型。该公司已经筹集了可观的资金,但它需要更多的资金来构建具有竞争力的软件堆栈,同时继续开发其硬件路线图。初始产品的成功流片和出色的基准性能测试应该会吸引投资者和客户的兴趣,使Tenstorrent有能力走向未来。
(正文完)
来源:软硬件融合
微信公众号:
相关文章推荐
更多软硬件技术干货请关注软硬件融合专栏。