FPGA 是一种集成电路 (IC),具有可配置逻辑块 (CLB) 以及其它用户可编程并可重新编程的特性。术语现场可编程表示 FPGA 的功能是可调节的,与其它由制造商硬连接的 IC 不一样。
FPGA 是属于可编程逻辑器件 (PLD) 范畴的集成电路 (IC)。FPGA 技术的基本功能建立在自适应硬件之上,具有制造后可修改的独特功能。硬件块阵列(每块都可配置)可根据需要进行连接,允许为所有应用构建特定域的高效架构。
这种硬件灵活应变性是 CPU 和 GPU 所不具备的独特差异化特性。
虽然 CPU 灵活性很高,但其底层硬件是固定的。CPU 一旦出厂,硬件就无法修改。它依靠软件来告诉它要针对内存中的哪个数据执行哪项具体运算(算术函数)。硬件必须能够执行所有可能的运算,称之为使用软件指令,通常一次只能执行一条指令。相比之下,FPGA 可并行处理海量数据。与 CPU 相比,自适应硬件的优势因应用而异,很大程度上取决于计算的性质及其并行化的能力,但与功能可高度并行化的 CPU 实现方案相比,性能提高 20 倍的情况并不少见。
GPU 不仅可弥补 CPU 的一个主要不足之处 — 并行处理大量数据的能力,而且运行的数据集还很宽。从根本上讲,GPU 和 CPU 类似,因为它们有固定的硬件,而且使用软件指令运行。一条指令可处理 1000 个以上的数据,因此它们适用于图形加速、高性能计算、视频处理以及某些形式的机器学习等特定域。但从根本上讲,GPU 的基本架构和数据流在制造之前是固定的。
FPGA 可帮助编程人员和设计人员更灵活地适应和更新计算架构,从而带来更能满足其需求的特定域架构。FPGA 并不是什么新事物,但因人工智能等领域的创新速度,其重要性日益凸显。第一款商用 FPGA 是 Xilinx 于 1985 年发明的,Xilinx 在目前的 FPGA 市场上占据 60% 至 70% 的份额。
FPGA 的用途与应用
FPGA 应用广泛。今天,数据中心、航空航天工程、国防、人工智能 (AI)、工业物联网 (IoT)、有线及无线网络以及汽车等众多行业无处不见其身影。这类器件通常处于用户需要实时信息的环境中。例如,一款家庭安防摄像头需要将即时图像以高分辨率和最小的时延传给房主的智能设备。随着消费者对通过手机收发即时信息的依赖程度越来越高,这些期望值只会增加。
此外,FPGA 也有助于完成本来可以在软件中完成的功能加速。这使得 FPGA 成了一种非常有帮助的工具,可卸载需要高性能的任务,比如人工智能的深度神经网络 (DNN) 推断。