目前芯片领域最卷的方向,肯定是人工智能芯片:

 

从手机里的神经网络引擎,到数据中心CPU的AI算法处理单元;不仅原来做图像处理GPU的公司现在都往AI领域去卷,甚至那些看起来和芯片没什么关系的互联网公司,都纷纷下场去做自己的人工智能芯片了。

 

虽然AI芯片看起来卷成这样,但实际上仍然还有很大的发展空间。就像英伟达抓住了GPU在人工智能应用里的机遇一样,只要有公司能够抓住这两年刚刚兴起的新机遇,就有可能成为下一个百亿美元市值的公司。

 

摩尔定律的黄昏与AI芯片的兴起

 

提到芯片的发展,绝对绕不开一个重要的原则,那就是摩尔定律。

 

摩尔定律并不是什么数学或者物理学的定律或者公理,它是英特尔创始人戈登摩尔发现的一个经验规律。摩尔定律讲的是,一颗芯片上包含晶体管数量,每隔18个月就会增加一倍。

 

从摩尔定律可以推广出来很多重要的推论:由于晶体管数量翻倍了,芯片的性能也会翻倍;为了实现晶体管数量的翻倍,每个晶体管的大小是在不断缩小的。这也是为什么我们看到芯片的制造工艺从几十纳米,不断缩小到十几纳米,再到今天的几纳米。

 

以前晶体管的长宽高大约各是1000个原子,现在晶体管的尺寸变成了长宽高各10个原子,尺寸缩小了一百万倍。晶体管数量越小,它工作所需要的电压和电流就越小,这样它们的能耗就越低,这样整个芯片的功耗就越来越低。

 

 

总之,摩尔定律描述了一个非常理想的芯片发展图景,它体现的其实是芯片制造工艺的不断发展。关键是,在过去的一二十年里,芯片的发展还真的是按照摩尔定律规划的道路在不断前进的。

 

不过按照这个指数级的规律发展下去,芯片会变得无限小、功耗无限低、性能无限高:这显然是不可能的。

 

因此在过去几年,我们看到芯片工艺的发展明显放缓了。也就是说,单纯靠工艺的进步、去换取芯片性能的提升这个简单粗暴的方法,已经越来越不好用了。所以人们关注的重点,就转移到了芯片本身架构的创新上了。

 

拿CPU举例,不管是x86、ARM还是近年来迅猛崛起的RISC-V,其实他们的指令集本身自从诞生之日起就没有什么太大的改变。但是基于这些指令集的芯片架构,却在这些年里有着巨大的变化。最明显的就是x86阵营的英特尔和AMD,每年都会推出各自的新品,同时也在不断设计和创造新的架构。

 

但是问题又来了,CPU属于通用芯片,它最大的有点就是能做很多很多事情,但缺点就是虽然什么都能干、但什么都做不到最好。

 

所以有人又在想,既然人工智能这么重要,为什么不直接为它单独设计制造一种芯片、来专门为它服务呢?

 

结果发现这么想的人还不止一个,于是几乎在同一时间,世界上出现了好多好多AI芯片公司,像谷歌和百度这样的互联网公司,也纷纷下场做AI芯片了。

 

这些看似自然而然的进化,背后其实有着很强的客观规律,而且这个客观规律在35年前就被发现了。

 

牧本周期

 

1987年,在日立半导体和索尼担任高级职位的牧本次生提出,芯片的类型有规律地在"定制化"和"通用化"之间不断交替,变化一次的周期大约为10年,这个发现也被称作牧本周期。由于这个变化的过程特别像一个钟摆,因此牧本周期也被业界称作半导体行业之摆。

 

牧本周期

 

从1957年开始,牧本周期成功解释了微处理器、专用集成电路FPGA这些芯片类型的出现和发展,这个理论也成功预测了1997-2007之间FPGA的繁荣。在2007年前后,牧本本人对"牧本浪潮"的理解做了新的解释,他认为未来定制品或者标准品这两个极端不会再特别"泾渭分明",而将迎来两者在某种程度上共存共荣的时代,因为有更多的技术手段和方案可以实现这样的平衡。

 

2007-2017的这个时代是FPGA和领域定制芯片共同繁荣的阶段,这也能很好的解释了这个期间GPU的爆发,以及互联网和科技大厂的FPGA探索。那么对于我们现在所在的2017年到2027年这个周期,其实又是往下一代架构迁移的过程,因此出现了RISC-V等各类新架构的蓬勃兴起。仿佛芯片行业每一步的发展,其实都被这个大棋局安排好了。

 

那么对于AI芯片来说,它在这个大棋局里的哪个位置呢?

 

答案就是:专用性和通用性的更深层次的共存,也就是通过软硬件的跨层优化在架构上实现更广阔领域的通用、融合。

 

AI芯片,还能玩出什么新花样?

 

前面提到,谷歌和百度这些互联网大厂都纷纷下场做AI芯片了。谷歌的TPU大家可能了解的比较多,那么百度到底做了什么芯片呢?我们不妨结合牧本周期,先来简单梳理一下百度的AI芯片自研之路。

 

2010年,百度就开始使用FPGA做AI芯片架构的开发,这正好是在AI芯片爆发的周期,也是FPGA和GPU共荣的时代。到2017年周期转换的时候,百度已经部署了超过12000片FPGA作为AI加速器了,并且形成了自己的XPU架构。

 

2018年,新周期开始,百度同时发布了自主研发的AI芯片昆仑芯,2019年流片成功,2020年开始量产。

 

在2021年6月,百度的智能芯片及架构部独立出来成立了昆仑芯公司,马上就成立一周年了。昆仑芯首轮融资的估值就高达130亿人民币,是个妥妥的独角兽。也是在去年,他们推出了昆仑芯第二代芯片。

 

我相信百度或者昆仑芯肯定不是按照牧本周期这个剧本去发展的,但通过我们的梳理可以很清楚的看到,他们的发展路线和牧本周期的预测高度重合。这其实就体现了很多芯片发展的客观规律。

 

之所以会形成钟摆一样的发展规律,是因为某个方向发展到极致的时候都会收到各种压力,推着他走向另一个方向。比如以AI芯片为代表的定制化发展到一定程度,就势必面临着要求缩短开发周期、减少成本等等这些要求。同样的,通用芯片发展到顶峰,也会有差异化、进一步提高性能和能效等等这些压力。

 

半导体行业之摆

 

在多方压力下,其实能够产生很多有意思的芯片架构。昆仑芯就是一个很好的例子,他们既没有做像英伟达GPU那样从渲染演进过来的方案,也没有做谷歌TPU那样的专用方案,而是将通用性和专用型结合在了一起,并且提出了一种名叫XPU的AI芯片架构,来实现通用性和高性能的平衡。

 

昆仑芯的XPU架构是在2017年的HotChips大会上提出来的,有意思的是,这届HotChips大会上谷歌也发布了TPU的V2架构。

 

XPU里的X其实是多样化的意思,也就是说它并不是针对某种特定的AI模型或者框架来设计的,而是能够支持图像语音自然语言处理等等多种模型。它之所以有很强的通用性,是因为集成了几百个通用小核,每个核有自己的缓存和执行流水线,并且可以通过软件实现编程。

 

除了通用性之外,它还集成了名叫软件定义加速器SDA的硬件结构,专门针对深度神经网络应用进行加速,可以有很强的吞吐量性能。有了大量的通用处理器核,和专用的AI加速单元,就能够最大程度上支持任务的多样性,并且在性能和效率之间实现良好的平衡。

 

也就是说,既能通过众核的结构高效处理计算密集型的任务,还能通过AI专用单元进一步提高能效,并且还可以直接使用C/C++这样的高层语言,对XPU进行编程。虽然当时XPU是基于FPGA实现的,但是通过软硬件协同的架构创新,对XPU的编程和开发都不需要使用Verilog这样硬件专用的RTL语言,开发效率就有极大的提升。

 

昆仑芯CEO欧阳剑说:"AI计算是一个多样性的计算,不仅仅有tensor。由于这个思维局限,行业内的一些计算架构无法做到各种场景通用。我们团队很早就有这个认知,同时产生了更大的愿景——在AI以及通用计算、高性能计算等都做得更好。昆仑芯XPU架构就是这么定义出来的。"

 

接下来,百度和昆仑芯就把XPU架构从FPGA上拿出来,并且专门做成了一个芯片。这样做有很多好处,特别是在高性能和低功耗这两个方面,肯定能比单纯的FPGA实现能更上一个新的台阶。

 

2019年12月,昆仑芯1代AI芯片完成研发,它能在低于150瓦的功耗下、实现256TOPS的INT8处理能力,以及每秒260万亿次的定点数运算性能,和同期的英伟达V100S、以及寒武纪的思远270相比,昆仑芯1代的算力是更高的。

 

有了1代的成功,整个XPU芯片部门干脆就直接从百度独立出来。从商业的角度去看这件事情,成立昆仑芯并单独融资是一件很合理的事情。芯片是一个极其烧钱的行业,用最新工艺去流片生产一次,整个周期的成本就会高达1亿美元。再加上其他的各种研发费用和开支,即便是互联网大厂,面对这样的投入可能也要眉头一紧。

 

但可能更重要的是,设计制造出来的芯片其实可以用在更多的地方,不仅仅只在某个互联网大厂的数据中心里。因此独立出来也能更好的帮助芯片公司在更广阔的空间里进一步发展。

 

有了各种资源的支持,昆仑芯在2021年下半年推出了第二代芯片,它使用7纳米工艺制造,可以达到256TOPS的INT8算力、128TFLOPS的FP16算力。接口方面支持GDDR6高速内存,提供高达512GBps的存储带宽,以及200GBps的多芯片互联带宽,搭载这个芯片的加速卡的实际性能,是业界同类GPU产品的1.5-2倍。软件方面提供了专门的开发条件,包括编译器调试器和优化工具,支持C/C++高层语言编程。

 

 

事实上,很多算法开发者并不关心自己的算法是通过什么芯片实现的,他们关心的是算法层面精度够不够、性能好不好。所以昆仑芯还集成了AI应用中的图编译和优化功能,并且支持上层的主流开源框架,比如百度飞桨、PyTorch、TensorFlow等等。它提供的图编译引擎能把开源框架的AI模型,自动转换为中间表达,然后根据底层的硬件结构进行计算图优化。

 

除了芯片本身,还有什么同样重要?

 

AI芯片的一个非常重要的发展方向,就是软硬件的协同优化和跨层优化。一个方面做好了是远远不够的,需要多个方面都做好,并且把软硬件看成一个完整的系统,然后进行统一的优化和整合。

 

这样做固然很难,但一旦做好了就会获得巨大的回报。例如,昆仑芯将很多单元都融合在软件定义加速器里面,形成了一个复杂的流水线。这样虽然能让软件定义加速器有很好的性能,但是也增加了编程的难度。所以他们就又通过软硬件的协同和跨层优化,通过编程模型编译器及硬件架构的集合,实现了软件定义加速器和通用核很好的融合,使得加速器代码实现时感受不到背后复杂的架构和流水线,让写代码非常简单易用,同时能够极大地释放硬件性能、同时保证极高的通用性。

 

昆仑芯软件架构

 

除了芯片的软硬件本身,AI芯片公司往往还会更进一步,就是提供系统级解决方案。这其实本质就是让使用者直接拿过来就能用,而不是只卖一颗颗芯片,让用户自己去设计主板硬件和系统。

 

再拿昆仑芯举例,他们提供了多种现成的AI加速卡,比如面向边缘推理应用的K100、面向数据中心推理的K200和R200,以及面向数据中心大规模训练的R480-X8加速器组。能够在不同的应用场景和需求下,提供对应的产品和方案。

 

再从商业的角度来看,AI芯片的灵活性,其实并不只是产品的灵活性,还包括商业模型的灵活性。特别是对于初创公司来说,做出芯片只是万里长征的第一步,更重要的是让用户把芯片用起来。

 

用行业黑话,就是让芯片在特定场景里落地。

 

这就需要对业务场景的深刻理解,并且在场景和应用里不断进行试错和快速迭代,这也是拥有庞大生态的互联网企业去做AI芯片的先天优势。

 

所以对于AI芯片来说,他的核心竞争点绝不仅仅是技术,生态和落地往往更加重要。

 

(注:本文不代表老石任职单位的观点。)