在上一篇文章(链接)中,小早君给大家介绍了CPU和GPU。今天继续介绍计算芯片领域的另外两位主角——ASIC和FPGA。
█ASIC(专用集成电路)
上一篇文章提到,GPU并行计算能力强,但也有一些缺点,比如功耗高、体积大、价格贵。
进入21世纪后,对计算能力的需求呈现两个显著趋势:一是计算能力的使用场景开始细分;第二,用户对计算能力性能的要求越来越高。通用计算芯片已经不能满足用户的需求。
因此,越来越多的企业开始加强对专用计算芯片的研究和投资。而ASIC(专用集成电路)是一种专用于特定任务的芯片。
ASIC的官方定义是指应特定用户的要求或特定电子系统的需要而专门设计制造的集成电路。
ASIC起步于七八十年代。在早期,它被用于计算机。后来主要用于嵌入式控制。最近几年,如上所述,它已经开始兴起,用于AI推理、高速搜索以及视觉和图像处理。
说到ASIC,就不得不提到谷歌著名的TPU。
TPU,全称张量处理单元,张量处理单元。所谓“张量”,就是包含多个数字(多维数组)的数学实体。
目前,几乎所有的机器学习系统都使用张量作为基本的数据结构。所以张量处理单元可以简单理解为“AI处理单元”。
2015年,为了更好地完成其深度学习任务,提高AI计算能力,谷歌推出了一款专门用于神经网络训练的芯片,即TPU v1。
与传统CPU和GPU相比,TPU v1在神经网络计算方面可以实现15~30倍的性能提升和30~80倍的能效提升,给业界带来了巨大的震撼。
2017年和2018年,谷歌再接再厉,推出了更强大的TPU v2和TPU v3,用于人工智能训练和推理。2021年,他们推出了TPU v4,采用7nm工艺,晶体管数量达到220亿,性能比上一代提升10倍,比英伟达A100强1.7倍。
除了谷歌,还有很多大公司这几年也在搞ASIC。
2019年底,英特尔收购以色列AI芯片公司Habana Labs,2022年发布高迪2 ASIC芯片。2022年底,IBM研究院发布AI ASIC芯片AIU。
三星几年前也做过ASIC,当时是矿机专用芯片。是的,很多人都知道ASIC,它是以比特币挖矿起家的。与GPU和CPU挖矿相比,ASIC挖矿机具有更高的效率和更低的能耗。
ASIC矿机除了TPU和矿机,还有另外两个著名的ASIC芯片,分别是DPU和NPU。
DPU是一个数据处理单元,主要用于数据中心。小枣君之前已经介绍过了,在这里可以看到:什么是遍布网络的DPU?
NPU被称为神经处理单元,在电路层面模拟人类神经元和突触,用深度学习指令集处理数据。
NPU专门用于神经网络推理,可以实现高效的卷积、池化等运算。这个东西经常集成在一些手机芯片里。
说到手机芯片,值得一提的是,我们手机的主芯片,也就是常说的SoC芯片,其实就是一个ASIC芯片。
手机SoC ASIC作为特别定制的芯片有什么优势?只是企业专属,专用logo和命名?
不是这样的。
定制就是剪裁。基于芯片面临的特殊任务,芯片的计算能力和效率与任务算法严格匹配。芯片的内核数量、逻辑计算单元与控制单元的比例以及缓存等。,整个芯片架构也是精准定制的。
因此,定制专用芯片可以将体积和功耗做到极致。这类芯片的可靠性、保密性、计算能力、能效都会强于通用芯片(CPU、GPU)。
你会发现上面说的ASIC公司都是像Google,Intel,IBM,三星这样的大公司。
这是因为芯片的定制设计需要企业极高的研发技术水平,成本极其巨大。
做一个ASIC芯片,首先要经过代码设计、综合、后端等复杂的设计流程,再经过几个月的生产、加工、封装测试,才能拿到芯片搭建系统。
每个人都听说过“磁带输出”。像流水线一样,芯片是通过一系列的工艺步骤制造出来的,也就是幻灯片。简单来说就是试产。
ASIC的研发过程需要流媒体。14nm工艺,一次流片需要300万美元左右。5nm工艺高达4725万美元。
一旦电影失败,所有的钱都浪费了,耽误了很多时间和精力。普通小公司根本玩不起。
那么,小公司是不是不可能定制芯片呢?
当然不是。接下来,就轮到另一个神器了,那就是FPGA。
█FPGA(现场可编程门阵列)
FPGA,英文全称Field Programmable Gate Array,现场可编程门阵列。
FPGA这几年在业界很吃香,势头甚至比ASIC还猛,甚至被称为“通用芯片”。
其实简单来说,FPGA就是一个可重构的芯片。它可以根据用户的需要在制造后无限次重复,从而实现所希望的数字逻辑功能。
FPGA之所以能实现DIY,是因为其独特的架构。
FPGA由三个可编程电路组成,即可配置逻辑块(CLB)、I/O块(IOB)、可编程互连资源(PIR)和静态存储器SRAM。
CLB是FPGA中最重要的部分,是实现逻辑功能的基本单元,承载着主要的电路功能。
它们通常规则地排列成一个阵列(逻辑单元阵列,LCA ),散布在整个芯片上。
IOB主要完成芯片上的逻辑与外部引脚之间的接口,外部引脚通常布置在芯片周围。
PIR提供丰富的连接资源,包括垂直和水平网状连接、可编程开关矩阵和可编程连接点。它们实现连接的功能,形成具有特定功能的电路。
静态存储器SRAM用于存储内部IOB、CLB和PIR的编程数据,并对它们形成控制,从而完成系统逻辑功能。
CLB本身主要由查找表(LUT)、复用器和触发器组成。它们用于在电路中承载逻辑“门”,并可用于实现复杂的逻辑功能。
简单来说,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月,英特尔以167亿美元的天价收购了Altera,后来并入PSG(可编程解决方案部门)。
2020年,不甘示弱,英特尔的竞争对手AMD以350亿美元收购了Xilinx。
由此成为Xilinx(AMD旗下)、Intel、Lattice、Microsemi四大巨头。
2021年,这四家公司的市场份额分别为51%、29%、7%和6%,加起来占全球总量的93%。
不久前,2023年10月,英特尔宣布计划分拆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替代,以降低成本。
值得一提的是,最近几年非常流行的OpenRANs,其实很多都是使用通用处理器(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通常需要将不同的训练样本分成固定大小的“批次”。为了最大化并行性,需要收集几个批次,然后统一处理。
FPGA的架构是无批量的。每处理一个数据包,都可以立即输出,延时更有优势。
所以,问题来了。GPU这里不如FPGA,那里不如ASIC,为什么现在成为AI计算的热门话题?
很简单。在对计算性能和规模的极度追求下,整个行业根本不在乎任何成本或功耗。
得益于NVIDIA的长期努力,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主导的类脑芯片,类似于大脑的突触,模拟人脑的处理过程。也有了突破,人气上升。以后具体介绍给你。
希望小枣君的芯片系列文章对大家有所帮助。喜欢就求关注,求转发,求赞。
谢谢大家!
参考资料:
1.《了解GPU的概念和工作原理》,开源LINUX;
2.AI芯片架构体系概述,Garvin Li,知乎;
3.GPU、FPGA、ASIC加速器有什么区别?“,智虎,胡说八道;
4.《带你深入了解GPU、FPGA、ASIC》,观察汽车行业一线;
5.《为什么GPU是AI时代计算能力的核心》,牧溪集成电路;
6.《自动驾驶三大主流芯片架构概述》,数字化转型;
7.《AIGC计算全景及趋势报告》,量子比特;
8.百度百科和维基百科。
本文来自微信微信官方账号:鲜枣课堂(ID: xzclasscom),作者小枣君。
投诉水文 我要纠错