FPGA(Field Programmable Gate Array)芯片基于可编程器件(PAL、GAL)发展而来,是半定制化、可编程的集成电路。要理解FPGA,芯片领域的底层路线是绕不开的前提,跟着这个思路让我们一起看看FPGA的“前世今生”。
樊平告诉我们,计算效率的核心是CPU芯片上的每一个晶体管的利用率。早期,我们主要通过 CPU进行通用计算,只需写软件即可完成各种任务。但随着数据容量呈指数增长,所需的智能算法越来越复杂,CPU的计算性能的提升速度无法匹配实际应用需求增长的速度。经研究发现,在运行任务时,CPU的晶体管并没有实际工作,这就出现了一个创新空间。怎么去优化呢?芯片架构成为答案——采用GPU、FPGA、专用的ASIC计算芯片,来提升计算架构的效率。
基于此背景,赛灵思联合创始人Ross Freeman于1984年发明了FPGA。作为一个“可编程”的芯片,它可以应用到很多场景:接入各种变频信号,IO输入输出,适配各种传感器、外围电路等。在芯片领域,FPGA的灵活性是其与通用的CPU、GPU、专用的ASIC等最鲜明的区别,所以它也被称为“万能芯片”。
在FPGA的“兄弟姐妹”中,CPU的优点是通用性,其架构最适合算法比较灵活多变的领域,比如事务流程处理,而缺点便是性能的提升受限制;GPU是一种依托于多核的高性能计算载体,在特定的架构上面适配于现有的AI处理和图像渲染处理,不足的是基于简单多核的概念在架构上的革新不够彻底;ASIC是一个很彻底的算法完全优化适配,而其局限性体现在其特定应用的专用,一旦专用便意味着无法做算法和应用场景的调整。
相比起来,FPGA是一个鲜明差异的方案,可以做算法的深度定制,所以性能非常高——比CPU性能高、比GPU的架构适配好,同时因为它是一种电路级的实现所以功耗更低;相对ASIC而言,FPGA可持续编程的特性让它可以实现升级与灵活定制。因此,“万能芯片”也就名副其实了。