AI底层软硬件设计探索(硬件层)

01概述

一个完整的AI软硬件栈主要包括:应用层、框架层、软件层、以及硬件层,如下图1所示。其中底层的软件:包括编译器、优化的库函数、底层驱动等,根据具体情况,决定上层的算法是部署到硬件的哪一个模块去高效执行。

图1: 软件栈

对于AI的应用而言,为了追求更高的能效比,性能,针对该类算法的特点,硬件也会考虑设计一个AI 加速器去加速这类算法,而一个新的硬件单元也需要上述的软件栈配合才能工作。

本文从最底层的硬件角度出发,去探索AI的设计。

02硬件层

硬件的设计现状是用Patterson.David所述:“A New Golden Age for Computer Architecture”. 从云、边缘、端,每一种应用场景下,都有相应的AI 硬件。不同的应用场景,设计上要考虑的点也有不同之处,例如:云上的AI硬件要考虑算力可扩展性,更大的存储带宽、多核与多核的互联通信,数据间交互,以及虚拟化等功能;端侧的AI硬件对功耗的要求会更苛刻。

通常AI硬件主要的数据指标:TOPS; TOPS/WTOPS/mm2; inf/sec。TOPS: 理论算力;TOPS/W:每瓦的算力,1次乘累加等于2 OPS; TOPS/mm2: 单位面积的算力;inf/Sec:真实的推理性能,每秒能处理多少帧视频或者图片。

这里列举了一些典型的AI硬件架构:

1.DSA的硬件架构:(Domain Specific Architecture,DSA),类似:Nvidia DLA 、Imagination NNA、DianNao.

以Nvidia 开源的DLA为例,图2所示,是典型的面向CNN网络应用的加速器。整个架构设计保证数据流可以在模块间流水线计算,图中数据流走向和卷积网络的算法是一致的,从MEM interface read -> convolution buffer -> convolution core-> SDP -> PDP -> CDP -> MEM interface write,这样的设计可以减小数据带宽,提高能效与性能。为了保证设计的灵活性,每个模块也可以单独工作,提供软件的编程接口,例如SDP、PDP、CDP、RUBIK、BDMA可以独立配置工作。

图2: 第一代 DLA

单核DLA,算力是可以扩展的,从64 mac(8x8) 到 2048 mac(8x8), 测试ResNet50网络模型,在16nm工艺下:能效上可以做到2 -6.4TOPS/W, 性能上:7 - 269frames/s 。

而用在自动驾驶芯片orin的第二代DLA,图3所示,从相关文档中可以看到架构上的一些变化,主要增加的特征点:支持结构化的稀疏,推测应该是Nvidia A100中的4:2稀疏计算的方式; 支持Depth-wise Convolution处理,因为conovlution core 没法对这种类型的卷积进行友好的支持;支持专用的硬件调度器,因为神经网络中一般有多个网络层,为了在网络层与层之间替代CPU来调度配置,所以硬件增加了这个模块,类似cpu中断处理功能;还有算力上的提升,单核变为双核,共享1 MB的缓存。

图3: 第二代 DLA

类似DLA 这种专用领域的加速器设计,对专用的算子加速收益比较大的,但存在的一个问题就是:如果算子出现变化,就没法做到及时的支持,此时就会对性能造成影响。最常用的做法就是把这些DLA没法支持的算子,通过编译器部署到通用计算的处理器上,但会带来数据交互的额外开销、性能的损失。

所以目前的设计更倾向下面的思路:

2.CPU+AI core:

类似Arm Ehos-N NPU、Tesla Dojo、Tenstorrent Wormhole/Grayskull. 这里以ARM Ehos-N NPU为例,图4所示。

每一个计算引擎Compute Engine包括:Mac Engine: 处理卷积、矩阵运算;Programmable Layer Engine: 通用的计模块,是一个图灵完备的处理器,里面包括cpu和矢量的引擎,用于处理非卷积的操作:例如激活、池化等操作。这两者Engine可以通过local memory 交互数据。

多个计算引擎之间的数据交互可以通过Network control unit完成。

图4:Ethos-N NPU

MAC Engine 的数据写到通用的矢量寄存器组中,通过中断通知CPU, 然后CPU调度完成后续的数据处理,写回到Local Memory中。

图5:Programmable Layer Engine

以ARM N77为例,单核4TOPS INT8算力,1MB的核内存储,能效大于3TOPS/ W (7nm)。

3.DSP + AI core:

类似Qualcomm cloud AI 100、candence DNA100/150.

这里以Qualcomm AI core为例,图6所示,整个设计包括:scalar processor、vector、Tensor、memory unit,以及共享 8MB VTCM存储模块。scalar processor采用VLIW的指令集、负责整体的调度功能, scalar/vector/tensor 模块是可以并行执行的;8MB VTCM 可以最大程度的数据复用,减小DDR带宽和功耗。

图6:AI core

在soc侧有16 AI core,图7所示,多核之间的NOC互联,存储互联,控制互联结构, 每一个AI core 的激活值可以通过muticast实现共享,提供最高400TOPS的INT8 ; 片上144 MB 的存储空间保证能将权重全部存储。

图7:Cloud AI 100 Soc

AI 100 SOC 整体的能耗(7nm),在不同的算力下:5-12TOPS/W。

4.GPU cuda + AI core

类似Nvidia A100/H100、VeriSilicon’s Vivante VIP9000.

以Nvidia H100 SM为例,图8所示,里面包括 cuda 计算核和tensor 计算核,tensor 计算核负责矩阵相关的运算,cuda 计算核提供其他通用的算力。相对于A100, H100增加了专用的TMA 模块,即asynchronous copies 机制,提供global memory 和 shared memory的数据搬运;以及 Thread Blocks也就是SM2SM的数据搬运,目的是为了提升性能。

图8:H100 SM

在A100 里面 每一个tensor core 折算下来,提供峰值 1TOPS INT8稠密算力@1GHz, H100 的tensor core 做MMA 矩阵乘累加相对于A100 有两倍的性能提升。

5.Google TPU V1-V4:

TPUv1是一个类似于cpu的协处理器设计,数据流固定,定制化的设计,图9所示。只有5条指令,面向推理应用的芯片,其中Matrix Multiply unit采用256x256的脉动阵列结构。

图9:TPUv1

TPUv2: ML 通用的处理器,支持训练。

相对于v1, 用Vector memory代替激活值缓存buffer;用更通用的vector unit 代替定制的激活函数;使用HBM代替DDR, 提高带宽,HBM和 Vector memroy 相连,代替直接与Matrix unit连接;添加Scalar 单元,负责指令的取指和译码,以及标量执行;以及 Memory Processor unit;添加核间互联的模块, 图10所示。

采用VLIW指令架构,和Qualcomm cloud AI 100类似,支持322b VLIW bundle:2 scalar slots、4 vector slots (2 for load/store)、2 matrix slots (push, pop)、1 misc slot、6 immediates。

图10:TPUv2

每一个Matrix unit 由之前的256x256变为128x128,是基于实际的利用率和数据复用率综合考虑,图11所示。

图11:Matrix size

TPUv3相对于v2的算力、带宽提升如下图12所示,最新的TPUv4 能效TOPS/W相对于v3提高了3倍。

图12:TPUv3

从Google TPU V1到V2的产品迭代中,可以看到AI core 设计从专用、定制化的AI到通用AI的设计思想,AI硬件设计趋势大致如此。V2到V4 的演进更多是性能、带宽、能效的提升,而指令集架构、微架构没有明显的变动。

03总结

单个AI core 主要考虑两部分:一部分是专用计算的硬件加速模块、一部分是通用计算的模块。专用的计算模块,目标是为了在运行特定的AI算子上具有更好的能效,更高的性能。而通用的计算模块一方面是加速一些非特定的AI 算子;另一方面保证算法不断迭代过程中,硬件能够依旧适配该变化。以及考虑每一个AI core 内部专用的计算模块与通用计算模块之间的数据交互问题。

多个AI core设计,要考虑算力可扩展性,核与核之间的通信,缓存一致性等,多个AI core 之间的数据交互代价要低,性能要好 。

上述是一些个人的理解,有不足的地方,望谅解。


Citation:

1: nvidia.com/content/dam/

2: nvdla.org/hw/v1/hwarch.

3: resources.nvidia.com/en

4: servethehome.com/qualco

5: arm.com/products/silico

6: old.hotchips.org/hc30/2

7: verisilicon.com/cn/IPPo

8: hc32.hotchips.org/asset

PHP网站源码西安网站优化排名公司新余网站设计模板哪家好厦门网站建设设计哪家好木棉湾SEO按天收费哪家好莆田模板网站建设哪家好盐田网站优化推广江门网站设计多少钱黄南外贸网站设计价格孝感关键词按天计费报价泸州SEO按天计费哪家好唐山推广网站公司松原品牌网站设计报价南通网站开发推荐淮北优秀网站设计龙岗阿里店铺托管哪家好桐城网站定制多少钱横岗优化报价海口百度关键词包年推广价格松原网站建设价格云浮网络广告推广多少钱揭阳网站改版哪家好衡水网站排名优化价格吕梁百度网站优化排名哪家好德阳网页制作价格哈密企业网站改版推荐舟山网络广告推广报价随州建站多少钱河源网站改版多少钱抚州优秀网站设计报价常德推广网站多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化