一、背景
- 【比CPU、GPU,FPGA的运算性能更高的硬件】
众所周知,通用处理器(CPU)的摩尔定律已入暮年,而机器学习和 Web 服务的规模却在指数级增长。
人们使用定制硬件来加速常见的计算任务,然而日新月异的行业又要求这些定制的硬件可被重新编程来执行新类型的计算任务。
FPGA常年来被用作专用芯片(ASIC)的小批量替代品,然而近年来在微软、百度等公司的数据中心大规模部署,以同时提供强大的计算能力和足够的灵活性。
- 【不需要指令】
CPU、GPU 都属于冯·诺依曼结构,指令译码执行、共享内存。FPGA 之所以比 CPU 甚至 GPU 能效高,本质上是无指令、无需共享内存的体系结构带来的福利。
而 FPGA 每个逻辑单元的功能在重编程(烧写)时就已经确定,不需要指令。
- 【FPGA就是一个可以通过编程来改变内部结构的芯片】
何为可以改变内部结构的芯片,这就要对比ASIC(专用集成芯片)来说了,ASIC就是针对某一项功能的专用芯片。
那FPGA有啥优势呢,这也要对比ASIC来说,因为ASIC芯片只是针对某一项功能做的专用芯片,如果要完成其他的功能就还得做一个另外的专用ASIC芯片,这样就大大的增加时间成本和人力成本,因为一个芯片的生产周期较长而且验证也是相当复杂的。FPGA就是为了解决上面的问题而出现的。
- 【本身非常适合并行计算】
第一,通信领域。通信领域需要高速的通信协议处理方式,另一方面通信协议随时都在修改,不适合做成专门的芯片,所以能够灵活改变的功能的FPGA就成了首选
第二,算法领域。FPGA对于复杂信号的处理性很强,可以处理多维信号。
第三,嵌入式领域。利用FPGA构建一个嵌入式的底层环境,然后在此之上编写一些嵌入式软件,事务性的操作更加繁杂一些,对FPGA的操作较少。
第四,在安放监控领域,目前CPU很难做到多通道处理和只能检测分析,但是加上FPGA之后就可以轻松解决了。
第五,在工业自动化领域,FPGA可以做到多通道的马达控制,目前马达电力消耗占据全球能源消耗的大头,在节能环保的趋势下,未来各类精准控制马达得以采用,一片FPGA就可以控制大量的马达。
二、含义
FPGA(Field-Programmable Gate Array),即现场可编程门阵列