03.07 英特尔AI专用加速器NNP-T简介

英特尔(Inte)在2019年发布了两款人工智能(AI)芯片,它们分别是Nervana NNP-T(代号为Spring Crest)和Nervana NNP-I(代号为Spring Hill),分别用于训练和推理。英特尔AI专用加速器历史可以追溯到2016年。2016年8月,英特尔收购美国创业公司Nervana Systems,随后将其与自身业务整合,并追加35亿美元,用于研发和自身产品匹配。近两年,英特尔还投资了以色列人工智能公司Habana Labs和NeuroBlade。Habana Labs的解决方案Goya性能优于目前数据中心常用方案的1-3个数量级,而NeuroBlade的优势在于降低成本和功耗。最终,英特尔推出了集合多家所长的AI加速器。与专为谷歌机器学习框架TensorFlow设计的张量处理器(Tensor Processing Units,TPU)不同,英特尔的产品支持百度、Facebook以及谷歌等提出的主流机器学习框架。2019年7月,英特尔公司全球副总裁Naveen Rao曾在百度人工智能开发者大会上宣布,为了提升训练模型速度,双方将合作开发处理器产品。此次英特尔发布产品时还宣布,Facebook正在使用这些产品。显然,英特尔的AI加速器将与谷歌的TPU、英伟达以及亚马逊AWS自研芯片竞争。

AI加速器的通用性和性能是不可兼得的,英特尔也不例外。为了提高性能,英特尔也牺牲了一些通用性,也就是英特尔这款加速器的最佳工作数值是Bfloa16,在此之前,只有谷歌的TPU原生支持Bfloa16。Bfloa16就是截断浮点数(truncated 16 bit floating point),它是由一个float32截断前16位而成。它和IEEE定义的float16不同,主要用于取代float32来加速训练网络,同时降低梯度消失(vanishing gradient)的风险,也可以防止出现NaN这样的异常值。深层神经网络每次梯度相乘的系数如果小于1,就是浮点数;如果层数越来越多,系数会越来越大,传播到最底层可以学习到的参数就很小了,所以需要截断来防止(或降低)梯度消失。在float32和Bfloat16之间进行转换时非常容易,事实上,TF也只提供了Bfloat16和float32之间的转换,但毕竟还是需要转换的。英特尔的内嵌汇编格式GNU Gas添加了对Bfloat16支持。英特尔在2019年4月发布了补丁,支持GNU编译器集合(GCC)中的Bfloat16支持。和IEEE float16相比,其动态范围变得更大(和float32一样大),但是尾数位更少(精度更低)更大的动态范围意味着不容易下溢(上溢在实践中几乎不会发生,这里不考虑)另一个优势是Bfloat16既可以用于训练又可以用于推断。亚马逊也证明Deep Speech模型使用Bfloat16的训练和推断的效果都足够好。Uin8在大部分情况下不能用于训练,只能用于推断,大多数的Uint8模型都从FP32转换而来。所以,Bfloat16可能是未来包括移动端的主流格式,尤其是需要语言相关的模型的时候。当然英伟达认为, Bfloat16牺牲了部分精度,对于某些场合如高性能计算(High Performance Computing,HPC),精度比运算效率和成本更重要,英伟达的主要目标市场正是HPC和训练端,所以短期内恐怕看不到英伟达支持Bfloat16。


英特尔AI专用加速器NNP-T简介


Nervana NNP-T采用了台积电16纳米CLN16FF+工艺。为何不用更先进的10纳米或7纳米工艺?因为这是颗2.5D封装的芯片,集合了台积电的CoWes(Chip-on-Wafer-on-Substrate)和英特尔的嵌入式多芯片互连桥接(Embedded Multi-die Interconnect Bridge,EMIB)封装技术。在更先进的制造工艺上,这两项技术的共同应用还不够成熟,芯片包含了4颗8GB的HBM2-2400内存,即第二代高带宽存储器。原始数据带宽达1.22Tbps。32GB的HBM2需要64行SerDes的HSIO(高速输入输出).总计带宽达到惊人的3.58Tbps。此芯片核心裸晶(Die)面积680平方毫米,内联后颗粒面积1200平方毫米,共计270亿个晶体管,包括24个张量处理器内核(Tensor Processors Clusters,TPC)。除了TPC外,裸晶中还有60MB的静态随机存取存储器(Static Random-Access Memory,SRAM)。芯片核心频率1.1GHz,16个PCIe4代接口,风冷情况下的典型功耗为150-250瓦,典型算力为119TOPS(每秒万亿次运算)由于采用了可扩展架构集OCP及PCI-E规格,所以可以方便地对数据中心等场景进行扩展。架构支持扩展到1024个节点,每个节点拥有8个NNP-T计算核心。与英伟达外置存储器相比,英特尔的内置存储器性能发挥得更彻底,更接近理论值,整体成本也更低。

在张量处理部分,英特尔最大的特色是存储器。英特尔认为数据移动(即写入和读出)对功率和时司的消耗远高于计算部分,因此要尽量少地搬运数据,这就是英特尔的Nervana架构,最大限度减少数据搬运,特别是连续的数据搬运。英特尔采用独特的双端口存储器,可以同时读出和写入,卷积引擎读取存储器外部的数据转换成矩阵MAC(乘和累加)所对应的数据。引擎还有两个同时进行的操作,即计算前(PreOp)和计算后(PostOps),计算管线内没有任何连续的数据搬运,计算性能得以发挥到巅峰。


分享到:


相關文章: