查看原文
其他

百度成立芯片公司的底气从何而来?

歪睿老哥 歪睿老哥 2022-01-16


横空出世,莽昆仑,阅尽人间春色,飞起玉龙三百万,搅得周天寒彻。 ”




最近业界传闻,百度要成立芯片公司;作为互联网大厂,百度跨界做芯片,优势几何,成为最近的一个热门的话题。对于设计芯片,业界都已经对PPT造芯审美疲劳;    Talk is cheap,show me the chip。百度的芯片究竟成色几何,还是需要眼见为实。

 

本文就ISSCC2021上,百度最新推出的昆仑AI处理器,管中窥豹,看一下百度在芯片设计上的一些思路和成果;

 

ISSCC誉为芯片设计界的奥林匹克,是IC设计的顶级会议;芯片大厂Intel,AMD,NVIDIA,高通等都是常客;但中国设计芯片公司以前很少出现在ISSCC上,但最近情况发生变化,越来越多的中国芯片公司亮相ISSCC,其中最新一届的ISSCC2021上,百度《Kunlun – A 14nm highperformance AI processor for diversified workloads》就成为了会议第三部分Modern Digital SoCs的三篇文章之一;第一篇是微软和AMD定制的XBOX SERIES XSOC;第二篇是去年NVIDIA发布的A100的GPU;第三篇就是百度的昆仑 AI处理器;能够和AMD和,NVIDIA的芯片并列,说明百度的昆仑还有有一些独到之处的。

 

昆仑AI处理器芯片是基于三星的14nm的工艺流片,芯片面积504mm2;可以跑到大约1Ghz左右,典型工况可以到900Mhz;功耗约160W;外部接口主要有PCIe gen4X8,以及两个HBM接口,支持256GB/s的传输速率;外部通过2.5D封装封装了2个8GB的外部HBM(DRAM),多说一句,由于AI芯片对内存速度的要求,HBM已成为AI芯片对内存需求非常有效的解决方式;


 

从上面架构图,可以看到,昆仑在计算部分主要采用了两种的AI处理的架构;这个也是昆仑最重要的特点,这两个分别是:

 

1:XPU-SDNN;

2:XPU-cluster;

 

下面分别介绍一下:

一:XPU-SDNN;

XPU-SDNN类似谷歌第一代TPU的结构类似;百度称之为软件定义人工智能网络引擎;专门处理张量和向量,专门用于矩阵乘和卷积,属于DSA的架构;从图中可以看到,通过两个buffer输出到MAC array;一般情况下,一个buffer用于数据输入,另一个buffer用于权重输入(weight),然后进行矩阵乘法或者卷积运算;这其中设计思想与google的TPU有一些相似;

 

 

 

 

下图是TPU的架构以及部分操作流程,可以看出二者的设计思路的类似;以下步骤是TPU的一些操作

  1. Read_Weights 将weight从内存中读取到TPU的 Weight FIFO 上。

  2. MatrixMultiply/Convolve     执行卷积或矩阵乘法操作。

  3. Activate     执行人工神经网络中的非线性操作和Pooling操作。

 

 

 

                     GOOGLE 第一代TPU,

从中看出,这些加速GEMM(通用矩阵乘)和卷积运算,是非常高效的,预计tensorflow的流程也是可以很好的适配在目前SDNN的架构上;

  

二:XPU-Cluster;

XPU-Cluster这个可以看做一个AI处理器集群;每个cluster 有16个处理器;支持256bit的SIMD的指令,每个处理器有自己16K的指令cache,并且有自己独有的local memory)16KB;;SIMD对数据并行计算也非常友好,这个架构更属于定制处理的范畴,也属于一种DSA处理器;如果说SDNN粒度更大;XPU-Cluster的粒度则更小,但是计算效率会比SDNN要差一点;

 

因此,从XPU-cluster的架构来看,这个可以算是一个众核的定制处理器,目前昆仑中是有8个XPU-cluster,那就是有128个核处理器;每个核的ALU单元都可以独立处理标量和矢量;同时16个核还公用一个SFU,处理这些特殊指令如(log, exp, sqrt, div pow),指令周期更长,面积更大,且应用频率较小的操作;


这个就类似NVIDIA的SM(流处理器),可以看到这个处理器架构的相似性;

 

 


 

下图为NVIDIA的SM处理器;可以看出其中的一些异同;

 

 

总结一下,目前昆仑由两种架构的AI处理单元,一种更固定SDNN(粒度更大,擅长矩阵乘/卷积),类似google第一代TPU,第二种是处理器cluster 更灵活,(类似可编程AI CPU,可以编译指令)类似NVIDIA的SM流多核处理器;混合计算结构这个是目前这颗芯片最重要的特色;

 

昆仑通过这两种混合硬件架构(XPU-SDNN和XPU-cluster),可以支持目前主流的深度学习的API;目前支持的框架如下,不过有一点让老哥没有想到的是,百度宣称这两个架构共用同一套指令集;看来作为互联网大厂,对于软件的优化工作一点也不比研发芯片的工作要小,这里面编译器,SDK的适配,以及相应的优化工作还是有很多的工作量的,单纯看PPT,这个研发难度是无从感知的;


 

昆仑有一点是容易可感知的,就是芯片版图,504个mm2的芯片面积还是非常大;从图中看到,对应了上下两个部分,细心的同学是不是发现上下是不对称的结构。老哥猜想,上部分是PCIe gen4X8 占据了一个部分,同时也连接到整个NOC上,而下部分就不用PCIe了,所以造成了上下不对称的原因;


除此之外,XPU-SDNN要比XPU-cluster的面积要大很多,目测有3倍,由于XPU-cluster是可编程的处理器,其效率比专用处理单元(XPU-SDNN)要小,老哥猜想,整个芯片的处理能力能应该大部分是由XPU-SDNN提供的,原因就是粒度更大,更类似ASIC,特别是后面宣称的处理能力;因为(Hennessy)和帕特森(Patterson)已经在《计算机体系结构:定量方法》告诉我们,常用的功能就要设计专门的硬件单元来处理,这个也是DSA的优势;

 

 

 

最后我们来看一下成品的样子,这个是用于云端的AI加速,从描述来看,主要应该用于AI推理;

 



最后是和Nvidia上一代的T4来做对比;总得找个靶子来比较一下,昆仑和上上代的T4相比,还是有一些优势的;如果用INT8的比较,则是有2.73倍的提升;

 

 

目前NVidia已经从架构上,从特斯拉tesla(T4),伏打volta(V100)进化到安培ampere(A100),这个是NVIDIA最新的A100和T4的比较;(int8/FP16)有12倍左右的提升;


   

芯片行业就是这么残酷,坐标都是动态的,不存在有人在跑,别人原地不动的场景;NVIDIA在AI领域,目前是所有玩家都绕不过去的大山;除了性能优势,NVIDIA可编程性,易用性方面,由于众多用户已经多年的使用,占据了云端AI加速市场97%(2019年数据),更是“一览众山小”;


 

 

“路漫漫其修远兮”;在AI芯片这个领域,国内厂商和NVIDIA的距离还是很大;但是在性能上超过2019年NVDIA发布的T4,对于百度自身也是一个里程碑式的胜利;

 

百度这颗芯片能够在ISSCC上“横空出世,莽昆仑,阅尽人间春色“,的确算是一个很大的进步,但是要达到“飞起玉龙三百万,搅得周天寒彻。”能够在商用市场上,成为有分量玩家之一,在市场份额上拥有一席之地,给用户带来价值,还需要继续迭代以及优化;这颗芯片既是百度成立芯片公司的底气,也是新的竞争的起点;

 

但是AI芯片这条路永远不会有终点,更强大的性能,更易用的软件配套,更便宜的价格一直会促进芯片的这些竞争;有了昆仑的百度芯片,可以说,有了参与这个竞争游戏的入场券了;

 

 

 




这个是歪睿老哥解读ISSCC2021的系列之一,ISSCC被誉为芯片设计界的奥林匹克;是IC设计的顶会,都是大厂造芯,但中国设计芯片也越来越多的出现了,ISSCC2021后续还有哪些有特点的芯片,老哥将在后续继续文章中继续解读;

 

如果要获得ISSCC2021的论文和资料;请关注公众号:歪睿老哥;回复:2021


往期回顾:


为“宅男”定制的超大芯片是什么样的?

RV64X:开源GPU来了,这次靠谱吗?

CPU的《长安十二时辰》是如何运行的?

人工智能的芯片江湖(3)独孤求败

人工智能的芯片江湖(2)华山论剑

人工智能的芯片江湖(1)NVIDIA的野望


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存