介绍计算芯片领域的两位主角—ASIC和FPGA

█ ** asic** (专用集成电路)
上篇提到,gpu的并行算力能力很强,但是它也有缺点,就是功耗高,体积大,价格贵。
进入21世纪后,算力需求呈现两个显著趋势:一,算力的使用场景,开始细分;二,用户对算力性能的要求,越来越高。通用的算力芯片,已经无法满足用户的需求。
于是,越来越多的企业,开始加强对专用计算芯片的研究和投资力度。而asic(application specific integrated circuit,专用集成电路),就是一种专用于特定任务的芯片。
asic的官方定义,是指:应特定用户的要求,或特定电子系统的需要,专门设计、制造的集成电路。
asic起步于上世纪70-80年代。早期的时候,曾用于计算机。后来,主要用于嵌入式控制。这几年,如前面所说,开始崛起,用于ai推理、高速搜索以及视觉和图像处理等。
说到asic,我们就不得不提到google公司大名鼎鼎的 tpu 。
tpu,全称tensor processing unit,张量处理单元。所谓“张量(tensor)”,是一个包含多个数字(多维数组)的数学实体。
目前,几乎所有的机器学习系统,都使用张量作为基本数据结构。所以,张量处理单元,我们可以简单理解为“ai处理单元”。
2015年,为了更好地完成自己的深度学习任务,提升ai算力,google推出了一款专门用于神经网络训练的芯片,也就是tpu v1。
相比传统的cpu和gpu,在神经网络计算方面,tpu v1可以获得1530倍的性能提升,能效提升更是达到3080倍,给行业带来了很大震动。
2017年和2018年,google又再接再厉,推出了能力更强的tpu v2和tpu v3,用于ai训练和推理。2021年,他们推出了tpu v4,采用7nm工艺,晶体管数达到220亿,性能相较上代提升了10倍,比英伟达的a100还强1.7倍。
除了google之外,还有很多大厂这几年也在捣鼓asic。
英特尔公司在2019年底收购了以色列ai芯片公司habana labs,2022年,发布了gaudi 2 asic芯片。ibm研究院,则于2022年底,发布了ai asic芯片aiu。
三星早几年也搞过asic,当时做的是矿机专用芯片。没错,很多人认识asic,就是从比特币挖矿开始的。相比gpu和cpu挖矿,asic矿机的效率更高,能耗更低。
除了tpu和矿机之外,另外两类很有名的asic芯片,是dpu和 npu 。
dpu是数据处理单元(data processing unit),主要用于数据中心。小枣君之前曾经专门介绍过,可以看这里:火遍全网的dpu,到底是个啥?
npu的话,叫做神经网络处理单元(neural processing unit),在电路层模拟人类神经元和突触,并用深度学习指令集处理数据。
npu专门用于神经网络推理,能够实现高效的卷积、池化等操作。一些手机芯片里,经常集成这玩意。
说到手机芯片,值得一提的是,我们手机现在的主芯片,也就是常说的soc芯片,其实也是一种asic芯片。
asic作为专门的定制芯片,优点体现在哪里?只是企业独享,专用logo和命名?
不是的。
定制就是量体裁衣。基于芯片所面向的专项任务,芯片的计算能力和计算效率都是严格匹配于任务算法的。芯片的核心数量,逻辑计算单元和控制单元比例,以及缓存等,整个芯片架构,也是精确定制的。
所以,定制专用芯片,可以实现极致的体积、功耗。这类芯片的可靠性、保密性、算力、能效,都会比通用芯片(cpu、gpu)更强。
大家会发现,前面我们提到的几家asic公司,都是谷歌、英特尔、ibm、三星这样的大厂。
这是因为,对芯片进行定制设计,对一家企业的研发技术水平要求极高,且耗资极为巨大。
做一款asic芯片,首先要经过代码设计、综合、后端等复杂的设计流程,再经过几个月的生产加工以及封装测试,才能拿到芯片来搭建系统。
大家都听说过“流片(tape-out)”。像流水线一样,通过一系列工艺步骤制造芯片,就是流片。简单来说,就是试生产。
asic的研发过程是需要流片的。14nm工艺,流片一次需要300万美元左右。5nm工艺,更是高达4725万美元。
流片一旦失败,钱全部打水漂,还耽误了大量的时间和精力。一般的小公司,根本玩不起。
那么,是不是小公司就无法进行芯片定制了呢?
当然不是。接下来,就轮到另一个神器出场了,那就是——fpga。
█** fpga(现场可编程门阵列)**
fpga,英文全称field programmable gate array,现场可编程门阵列。
fpga这些年在行业里很火,势头比asic还猛,甚至被人称为 “万能芯片” 。
其实,简单来说,fpga就是可以重构的芯片。它可以根据用户的需要,在制造后,进行无限次数的重复编程,以实现想要的数字逻辑功能。
之所以fpga可以实现diy,是因为其独特的架构。
fpga由可编程逻辑块(configurable logic blocks,clb)、输入/输出模块(i/o blocks,iob)、可编程互连资源(programmable interconnect resources,pir)等三种可编程电路,以及静态存储器sram共同组成。
clb是fpga中最重要的部分,是实现逻辑功能的基本单元,承载主要的电路功能。
它们通常规则排列成一个阵列(逻辑单元阵列,lca,logic cell array),散布于整个芯片中。
iob主要完成芯片上的逻辑与外部引脚的接口,通常排列在芯片的四周。
pir提供了丰富的连线资源,包括纵横网状连线、可编程开关矩阵和可编程连接点等。它们实现连接的作用,构成特定功能的电路。
静态存储器sram,用于存放内部iob、clb和pir的编程数据,并形成对它们的控制,从而完成系统逻辑功能。
clb本身,又主要由查找表(look-up table,lut)、多路复用器(multiplexer)和触发器(flip-flop)构成。它们用于承载电路中的一个个逻辑“门”,可以用来实现复杂的逻辑功能。
简单来说,我们可以把lut理解为存储了计算结果的ram。当用户描述了一个逻辑电路后,软件会计算所有可能的结果,并写入这个ram。每一个信号进行逻辑运算,就等于输入一个地址,进行查表。lut会找出地址对应的内容,返回结果。
这种“硬件化”的运算方式,显然具有更快的运算速度。
用户使用fpga时,可以通过硬件描述语言(verilog或vhdl),完成的电路设计,然后对fpga进行“编程”(烧写),将设计加载到fpga上,实现对应的功能。
加电时,fpga将eprom(可擦编程只读存储器)中的数据读入sram中,配置完成后,fpga进入工作状态。掉电后,fpga恢复成白片,内部逻辑关系消失。如此反复,就实现了“现场”定制。
fpga的功能非常强大。理论上,如果fpga提供的门电路规模足够大,通过编程,就能够实现任意asic的逻辑功能。
我们再看看fpga的发展历程。
fpga是在pal(可编程阵列逻辑)、gal(通用阵列逻辑)等可编程器件的基础上发展起来的产物,属于一种半定制电路。
它诞生于1985年,发明者是xilinx公司(赛灵思)。后来,altera(阿尔特拉)、lattice(莱迪思)、microsemi(美高森美)等公司也参与到fpga这个领域,并最终形成了四巨头的格局。
2015年5月,intel(英特尔)以167亿美元的天价收购了altera,后来收编为psg(可编程解决方案事业部)部门。
2020年,intel的竞争对手amd也不甘示弱,以350亿美元收购了xilinx。
于是,就变成了xilinx(amd旗下)、intel、lattice和microsemi四巨头(换汤不换药)。
2021年,这四家公司的市占率分别为51%、29%、7%和6%,加起来是全球总份额的93%。
不久前,2023年10月,intel宣布计划拆分psg部门,独立业务运营。
国内fpga厂商的话,包括复旦微电、紫光国微、安路科技、东土科技、高云半导体、京微齐力、京微雅格、智多晶、遨格芯等。看上去数量不少,但实际上技术差距很大。
█** asic和fpga的区别**
接下来,我们重点说说asic和fpga的区别,还有它们和cpu、gpu之间的区别。
asic和fpga,本质上都是芯片。aisc是全定制芯片,功能写死,没办法改。而fpga是半定制芯片,功能灵活,可玩性强。
我们还是可以通过一个例子,来说明两者之间的区别。
asic就是用模具来做玩具。事先要进行开模,比较费事。而且,一旦开模之后,就没办法修改了。如果要做新玩具,就必须重新开模。
而fpga呢,就像用乐高积木来搭玩具。上手就能搭,花一点时间,就可以搭好。如果不满意,或者想搭新玩具,可以拆开,重新搭。
asic与fpga的很多设计工具是相同的。在设计流程上,fpga没有asic那么复杂,去掉了一些制造过程和额外的设计验证步骤,大概只有asic流程的50%-70%。最头大的流片过程,fpga是不需要的。
这就意味着,开发asic,可能需要几个月甚至一年以上的时间。而fpga,只需要几周或几个月的时间。
刚才说到fpga不需要流片,那么,是不是意味着fpga的成本就一定比asic低呢?
不一定。
fpga可以在实验室或现场进行预制和编程,不需要一次性工程费用 (nre)。但是,作为“通用玩具”,它的成本是asic(压模玩具)的10倍。
如果生产量比较低,那么,fpga会更便宜。如果生产量高,asic的一次性工程费用被平摊,那么,asic反而便宜。
这就像开模费用。开模很贵,但是,如果销量大,开模就划算了。
如下图所示,40w片,是asic和fpga成本高低的一个分界线。产量少于40w,fpga便宜。多于40w,asic便宜。
从性能和功耗的角度来看,作为专用定制芯片,asic是比fpga强的。
fpga是通用可编辑的芯片,冗余功能比较多。不管你怎么设计,都会多出来一些部件。
前面小枣君也说了,asic是贴身定制,没什么浪费,且采用硬连线。所以,性能更强,功耗更低。
fpga和asic,不是简单的竞争和替代关系,而是各自的定位不同。
fpga现在多用于产品原型的开发、设计迭代,以及一些低产量的特定应用。它适合那些开发周期必须短的产品。fpga还经常用于asic的验证。
asic用于设计规模大、复杂度高的芯片,或者是成熟度高、产量比较大的产品。
fpga还特别适合初学者学习和参加比赛。现在很多大学的电子类专业,都在使用fpga进行教学。
从商业化的角度来看,fpga的主要应用领域是通信、国防、航空、数据中心、医疗、汽车及消费电子。
fpga在通信领域用得很早。很多基站的处理芯片(基带处理、波束赋形、天线收发器等),都是用的fpga。核心网的编码和协议加速等,也用到它。数据中心之前在dpu等部件上,也用。
后来,很多技术成熟了、定型了,通信设备商们就开始用asic替代,以此减少成本。
值得一提的是,最近这些年很热门的open ran,其实很多都是采用通用处理器(intel cpu)进行计算。这种方案的能耗远远不如fpga和asic。这也是包括华为等设备商不愿意跟进open ran的主要原因之一。
汽车和工业领域,主要是看中了fpga的时延优势,所以会用在adas(高级驾驶辅助系统)和伺服电机驱动上。
消费电子用fpga,是因为产品迭代太快。asic的开发周期太长了,等做出东西来,黄花菜都凉了。
█** fpga、asic、gpu,谁是最合适的ai芯片?**
最后,我们还是要绕回到ai芯片的话题。
上一期,小枣君埋了一个雷,说ai计算分训练和推理。训练是gpu处于绝对领先地位,而推理不是。我没有说原因。
现在,我来解释一下。
首先,大家要记住,单纯从理论和架构的角度,asic和fpga的性能和成本,肯定是优于cpu和gpu的。
cpu、gpu遵循的是冯·诺依曼体系结构,指令要经过存储、译码、执行等步骤,共享内存在使用时,要经历仲裁和缓存。
而fpga和asic并不是冯·诺依曼架构(是哈佛架构)。以fpga为例,它本质上是无指令、无需共享内存的体系结构。
fpga的逻辑单元功能在编程时已确定,属于用硬件来实现软件算法。对于保存状态的需求,fpga中的寄存器和片上内存(bram)属于各自的控制逻辑,不需要仲裁和缓存。
从alu运算单元占比来看,gpu比cpu高,fpga因为几乎没有控制模块,所有模块都是alu运算单元,比gpu更高。
所以,综合各个角度,fpga的运算速度会比gpu更快。
再看看功耗方面。
gpu的功耗,是出了名的高,单片可以达到250w,甚至450w(rtx4090)。而fpga呢,一般只有30~50w。
这主要是因为内存读取。gpu的内存接口(gddr5、hbm、hbm2)带宽极高,大约是fpga传统ddr接口的4-5倍。但就芯片本身来说,读取dram所消耗的能量,是sram的100倍以上。gpu频繁读取dram的处理,产生了极高的功耗。
另外,fpga的工作主频(500mhz以下)比cpu、gpu(1~3ghz)低,也会使得自身功耗更低。fpga的工作主频低,主要是受布线资源的限制。有些线要绕远,时钟频率高了,就来不及。
最后看看时延。
gpu时延高于fpga。
gpu通常需要将不同的训练样本,划分成固定大小的“batch(批次)”,为了最大化达到并行性,需要将数个batch都集齐,再统一进行处理。
fpga的架构,是无批次(batch-less)的。每处理完成一个数据包,就能马上输出,时延更有优势。
那么,问题来了。gpu这里那里都不如fpga和asic,为什么还会成为现在ai计算的大热门呢?
很简单,在对算力性能和规模的极致追求下,现在整个行业根本不在乎什么成本和功耗。
在英伟达的长期努力下,gpu的核心数和工作频率一直在提升,芯片面积也越来越大,属于硬刚算力。功耗靠工艺制程,靠水冷等被动散热,反而不着火就行。
除了硬件之外,上篇文章小枣君也提到,英伟达在软件和生态方面很会布局。
他们捣鼓出来的cuda,是gpu的一个核心竞争力。基于cuda,初学者都可以很快上手,进行gpu的开发。他们苦心经营多年,也形成了群众基础。
相比之下,fpga和asic的开发还是太过复杂,不适合普及。
在接口方面,虽然gpu的接口比较单一(主要是pcie),没有fpga灵活(fpga的可编程性,使其能轻松对接任何的标准和非标准接口),但对于服务器来说,足够了,插上就能用。
除了fpga之外,asic之所以在ai上干不过gpu,和它的高昂成本、超长开发周期、巨大开发风险有很大关系。现在ai算法变化很快,asic这种开发周期,很要命。
综合上述原因,gpu才有了现在的大好局面。
在ai训练上,gpu的算力强劲,可以大幅提升效率。
在ai推理上,输入一般是单个对象(图像),所以要求要低一点,也不需要什么并行,所以gpu的算力优势没那么明显。很多企业,就会开始采用更便宜、更省电的fpga或asic,进行计算。
其它一些算力场景,也是如此。看重算力绝对性能的,首选gpu。算力性能要求不那么高的,可以考虑fpga或asic,能省则省。
█** 最后的话**
关于cpu、gpu、fpga、asic的知识,就介绍到这里了。
它们是计算芯片的典型代表。人类目前所有的算力场景,基本上都是由它们在负责。
随着时代的发展,计算芯片也有了新的趋势。例如,不同算力芯片进行混搭,互相利用优势。我们管这种方式,叫做异构计算。另外,还有ibm带头搞的类脑芯片,类似于大脑的神经突触,模拟人脑的处理过程,也获得了突破,热度攀升。以后有机会,我再和大家专门介绍。


华米OV知产大咖/技术专家齐聚,共商专利池建设和运营
MES系统助力注塑企业降本增效~MES系统厂商~先达智控
松下携珠海中智公司合作共创智能影像制作的未来
开关量信号隔离器如何有效避免大多数信号干扰
如何选用智能照明控制系统
介绍计算芯片领域的两位主角—ASIC和FPGA
酸价过氧化值测定仪产品用途及功能
5g基站的电源怎么解决_5g基站的建设成本
赵伟国:紫光业务用四个字来概括,从芯到云!
水芯电子获倍思战投,助推快充行业进入数字时代
智能汽车靠不靠谱?蔚来ES8行驶中死机
福州市将完成共计30万台NB-IoT远传水表的安装工作
混合IoT平台为物联网提供简单性、灵活性和快速上市时间
莱迪思CrossLinkU-NX FPGA加速USB设计
保险丝的工作原理是什么?
有了它 AI甚至可以让你知道对方是否真的爱你?
图像分类的5种技术,总结并归纳算法、实现方式,并进行实验验证
进入5G时代,光纤光缆厂商的机遇与挑战都将并存
到底值不值得升级Wi-Fi 6
FreeRTOS-TCP软件架构详解