如下图所示,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带头搞的类脑芯片,类似于大脑的神经突触,模拟人脑的处理过程,也获得了突破,热度攀升。以后有机会,我再和大家专门介绍。
希望小枣君的芯片系列文章对大家有所帮助。喜欢的话,求关注,求转发,求点赞。
感谢!