█ 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可以得到15~30倍的性能提升,能效提升更是达到30~80倍,给行业带来了很大震撼。
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矿机的效率更高,能耗更低。
ASIC矿机
除了TPU和矿机之外,其余两类很有名的ASIC芯片,是DPU和NPU。
DPU是数据处理单元(Data Processing Unit),紧张用于数据中央。小枣君之前曾经专门先容过,可以看这里:火遍全网的DPU,到底是个啥?
NPU的话,叫做神经网络处理单元(Neural Processing Unit),在电路层仿照人类神经元和突触,并用深度学习指令集处理数据。
NPU专门用于神经网络推理,能够实现高效的卷积、池化等操作。一些手机芯片里,常常集成这玩意。
说得手机芯片,值得一提的是,我们手机现在的主芯片,也便是常说的SoC芯片,实在也是一种ASIC芯片。
手机SoC芯片
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芯片
我们再看看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带头搞的类脑芯片,类似于大脑的神经突触,仿照人脑的处理过程,也得到了打破,热度攀升。往后有机会,我再和大家专门先容。
希望小枣君的芯片系列文章对大家有所帮助。喜好的话,求关注,求转发,求点赞。
感谢!
—— The End ——
参考文献:
1、《一文搞懂GPU的观点、事情事理》,开源LINUX;
2、《AI芯片架构体系综述》,知乎,Garvin Li;
3、《GPU、FPGA、ASIC加速器有什么差异?》,知乎,胡说漫谈;
4、《带你深入理解GPU、FPGA和ASIC》,汽车家当前哨不雅观察;
5、《为什么GPU是AI时期的算力核心》,沐曦集成电路;
6、《一文通览自动驾驶三大主流芯片架构》,数字化转型;
7、《AIGC算力全景与趋势报告》,量子位;
8、百度百科、维基百科。





