FPGA 对比 GPU

FPGA 与 GPU 在深度学习方面的比较

对于需要低延迟和灵活性的深度学习应用,FPGA 是完美的选择

FPGA 的深度学习优势:

  • 借助可以针对不同功能重新编程的电路,FPGA 能够提供令人难以置信的灵活性和成本效益。

  • 与 GPU 相比,FPGA 在延迟关键型深度学习应用中能够提供超凡的性能。

  • FPGA 可以进行微调,以平衡电源效率与性能需求。

author-image

作者

什么是 FPGA?

现场可编程逻辑门阵列 (FPGA) 是一种带有可编程硬件架构的集成电路。与图形处理器 (GPU) 或 ASIC 不同,FPGA 芯片里的电路不是硬性蚀刻上去的,而是可以根据需要重新编程。这种功能使 FPGA 成为 ASIC 以外的一个完美选择,因为设计和制造 ASIC 需要长期的开发和大量的投资。

科技行业直到最近才开始在机器学习和深度学习方面采用 FPGA。2010 年,Microsoft Research 演示了首个 FPGA 上人工智能用例,作为它加速网络搜索工作的一部分。1FPGA 提供了速度、可编程性以及灵活性的组合—在实现性能的同时,避免了开发自定义应用专用集成电路 (ASIC) 所带来的成本和复杂性。五年后,微软的 Bing 搜索引擎在生产过程中使用 FPGA,证明了它在深度学习应用中的价值。通过使用 FPGA 来加快搜索排名,Bing 实现了50% 的吞吐量增长。1

为什么在深度学习应用中选择 FPGA?

早期的人工智能工作负载,比如图像识别,很大程度上依赖于并行性能。因为 GPU 是专门针对视频和显卡设计的,因此,将其应用于机器学习和深度学习变得很普遍。GPU 在并行处理方面表现出色,并行执行大量计算操作。换句话说,如果必须多次快速执行同一工作负载,它们可以实现令人难以置信的速度提高。

但是,在 GPU 上运行人工智能是存在局限的。GPU 不能够提供与 ASIC 相媲美的性能,后者是一种针对给定的深度学习工作负载专门构建的芯片。

而 FPGA 则能够借助集成的人工智能提供硬件定制,并且可以通过编程提供与 GPU 或 ASIC 相类似的工作方式。FPGA 可重新编程、重新配置的性质使其格外适合应用于飞速演变的人工智能领域, 这样,设计人员就能够快速测试算法,并将产品加速推向市场。FPGA 能够为深度学习应用和其他人工智能工作负载带来几大优势:

高吞吐量、低延迟的超凡性能:绕过 CPU,直接将视频输送至 FPGA,这样就能够在流式传输视频、语音转录和动作识别等实时应用中实现低延迟。设计人员可以从零开始构建神经网络,并将 FPGA 构建为最适合该模型的形式。
超凡性价比:FPGA 可以针对不同功能和数据类型重新编程,这使它成为市场上可以找到的最具性价比的硬件选项之一。此外,FPGA 还可以被应用于人工智能以外的领域。通过将额外的功能集成到同一片芯片上,设计人员可以节约成本和主板空间。FPGA 的产品使用周期较长,因此基于 FPGA 的硬件设计可以拥有较长的产品使用寿命(长达数年或数十年)。这一特性使它们成为工业防御、医疗和汽车市场的理想选择。
低功耗:借助 FPGA,设计人员可以根据应用对硬件进行微调,以满足电源效率的要求。FPGA 还能容纳多种功能,从而通过芯片提供更高的能效。可以仅将 FPGA 的一部分(而不是整个芯片)用于某项功能,这样 FPGA 就可并行容纳多个功能。 

FPGA 上的人工智能和深度学习应用 

当应用要求低延迟和相对较小的批次时,FPGA 可以提供超越 GPU 的性能优势 — 例如语音识别和其他自然语言处理工作负载。由于它们具有可编程的 I/O 接口和高度灵活的结构,FPGA 也非常适合应用于下列任务:

克服 I/O 瓶颈。 FPGA 经常被应用于数据必须在低延迟的前提下横穿许多个不同的网络的场景。在消除内存缓冲和克服 I/O 瓶颈(人工智能系统性能的两大限制因素)方面,它们非常有帮助。通过加速数据获取,FPGA 可以加快整个人工智能工作负载的处理速度。
将人工智能集成到工作负载中。 借助 FPGA,设计人员可以在已有的工作负载中添加人工智能功能(如数据包深度检测或财务欺诈检测)。
实现传感器融合。在处理来自多个传感器(例如摄像头、LIDAR 和音频传感器)的数据输入时,FPGA 的表现格外优秀。这种能力在设计自动驾驶汽车、机器人和工业级设备时极具价值。
为高性能计算 (HPC) 集群提供加速。 FPGA 可以用作推理的可编程加速器,协助实现人工智能和高性能计算的融合。2
添加人工智能以外的额外功能。 在无需额外芯片的前提下,FPGA 使添加安全性、 I/O、联网或预处理/后处理功能成为可能。

英特尔® FPGA 软件和硬件

使用 FPGA 时需要克服的障碍之一是该硬件通常需要使用者掌握特定的的编程知识。英特尔正致力于减少基于软件的编程模型所需的专业知识。更高级的 FPGA 编程模型允许数据科学家或模型开发人员使用常见的人工智能框架(例如 TensorFlow 或 Caffe)创建神经网络,并将其部署在 FPGA 上,无需了解 FPGA 架构的详细信息。英特尔开发了多种工具,大大简化了 FPGA 编程:

英特尔® Distribution of OpenVINO™ 工具套件为计算机视觉开发人员提供了一种单一的工具,可以跨多个硬件平台(包括 FPGA)对模型进行加速。
英特尔® FPGA AI 套件为通过英特尔® FPGA 加速推理提供了工具和经优化的架构。它可以与 OpenVINO™ 工具套件交互,提供扩展性以支持自定义网络。
Open FPGA Stack (OFS)是一种开源软件和硬件基础设施,能为基于 FPGA 的自定义平台和工作负载开发提供框架。所有源代码均在 GitHub 上发布。

英特尔® FPGA 深度学习技术解决方案包含一系列产品家族和软件工具,以缩短开发时间,降低成本。以下硬件产品对于深度学习用例来说特别有价值:

英特尔 Agilex® 5 FPGA 和 SoC 是中端 FPGA,它采用了业界首款带 AI Tensor 的增强型 DSP 模块,可提供高效的 AI 和数字信号处理 (DSP) 能力。与上一代英特尔® FPGA 相比,该产品系列的结构性能平均提高了 50%,总功耗降低了 42%。3

英特尔人工智能产品组合

随着 AI 不断普及,应用程序及其所处环境的种类(从端点设备到边缘服务器,再到数据中心)将变得极其多样化。任何单一的架构、芯片或外形规格都不可能满足所有人工智能应用的要求。基础设施架构师一定要使用他们自己选择的架构。

英特尔提供的四种类型的芯片能够助力人工智能的蓬勃发展:FPGA、GPU 和 ASIC 用于加速,CPU 用于通用计算。每种架构都服务于独特的需求,这样,基础设施架构师就可以选择刚好满足其需求的架构来支持任何一种人工智能应用。计算类型非常广泛,且针对功耗和性能进行了优化,他们总能为手头的工作找到最合适的工具。