DSP

AI 领域 FPGA、ASIC、CPU、GPU 简单对比

2019-07-13 17:14发布

class="markdown_views prism-dracula">

AI 领域 FPGA、ASIC、CPU、GPU 简单对比

简介

CPU:中央处理器(Central Processing Unit,CPU)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。 GPU:图形处理器(Graphics Processing Unit,GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。 ASIC:专用集成电路(Application Specific Integrated Circuit,ASIC),适合于某一单一用途的集成电路产品。 FPGA:现场可编程门阵列(Field Programmable Gate Array,FPGA)。其设计初衷是为了实现半定制芯片的功能,即硬件结构可根据需要实时配置灵活改变。

人工智能领域的要求

人工智能的基础是算法,深度学习是目前最主流的人工智能算法。深度学习又叫深度神经网络(DNN:Deep Neural Networks),从之前的人工神经网络(ANN:Artificial Neural Networks)模型发展而来。这种模型一般采用计算机科学中的图模型来直观表达,深度学习的“深度”便指的是图模型的层数以及每一层的节点数量。神经网络复杂度不断提升,从最早单一的神经元,到 2012 年提出的 AlexNet (8个网络层),再到 2015 年提出的 ResNET (150个网络层),层次间的复杂度呈几何倍数递增,对应的是对处理器运算能力需求的爆炸式增长。深度学习带来计算量急剧增加,对计算硬件带来更高要求。 深度学习需要用到很高的并行和大量的浮点运算、矩阵运算能力。 以往的 CPU、GPU 等都不能很好的实现人工智能的运算。所以需要针对人工智能领域需要新的硬件处理支持。

CPU

CPU 有强大的调度、管理、协调能力。应用范围广。 开发方便且灵活。 但其在大量数据处理上没有 GPU 专业,相对运算量低,但功耗不低。

GPU

相比CPU,GPU由于更适合执行复杂的数学和几何计算(尤其是并行运算),刚好与包含大量的并行运算的人工智能深度学习算法相匹配。 GPU 作为图像处理器,设计初衷是为了应对图像处理中需要大规模并行计算。因此,其在应用于深度学习算法时,有三个方面的局限性: 第一, 应用过程中无法充分发挥并行计算优势。深度学习包含训练和应用两个计算环节,GPU 在深度学习算法训练上非常高效,但在应用时一次性只能对于一张输入图像进行处理, 并行度的优势不能完全发挥。 第二, 硬件结构固定不具备可编程性。深度学习算法还未完全稳定,若深度学习算法发生大的变化,GPU 无法像 FPGA 一样可以灵活的配置硬件结构。 第三, 运行深度学习算法能效远低于 FPGA。学术界和产业界研究已经证明,运行深度学习算法中实现同样的性能,GPU 所需功耗远大于 FPGA,例如国内初创企业深鉴科技基于 FPGA 平台的人工智能芯片在同样开发周期内相对 GPU 能效有一个数量级的提升。 其功耗高,目前常用于云端计算处理上。

ASIC

定制芯片成本最低,功耗低,而且适合量产。 但由于其研发成本(开模成本)高昂,开发周期和验证周期长。对于很多厂商来说压力巨大。目前在人工智能领域风险高。 目前人工智能算法日新月异,变化快速,对于需要高成本,高研发周期的 ASIC 相对来说是不适用的。应用相对较少。

FPGA

可以通过硬件编程实现功能。 FPGA 同时拥有流水线并行和数据并行。可以实现比 GPU 更高的并发处理。 在密集处理和高并发上能力上占优,而且功耗比 CPU,GPU 低。 但其缺点有: 第一,基本单元的计算能力有限。为了实现可重构特性,FPGA 内部有大量极细粒度的基本单元,但是每个单元的计算能力(主要依靠 LUT 查找表)都远远低于 CPU 和 GPU 中的 ALU模块。 第二,速度和功耗相对专用定制芯片(ASIC)仍然存在不小差距。 第三,FPGA 价格比起 ASIC 较为昂贵,在规模放量的情况下单块 FPGA 的成本要远高于专用定制芯片。