人工智能时代FPGA应用的可能性
0赞
FPGA 技术的起源
现场可编程门阵列(FPGA)已经存在了几十年。这些器件具有多组逻辑块、编程单元及互连单元。FPGA 是一种通用工具,可以针对多种用途进行定制。与传统芯片相比,FPGA可以针对不同目的反复重新配置。为了指定 FPGA 的配置,开发人员使用硬件描述语言 (HDL),例如 Verilog 和 VHDL。
现代FPGA的工作方式与专用集成电路(ASIC)非常相似:如果重新编程正确,FPGA可以像常规ASIC一样满足特定应用的要求。在数据处理加速方面,FPGA 的性能优于图形处理单元 (GPU)。
英特尔最近发表了一项研究,他们将两代英特尔FPGA与NVIDIA的GPU进行了比较。该实验的主要目标是了解未来一代FPGA是否可以与用于加速AI应用的GPU竞争。
英特尔在其论文中得出结论,经过测试的FPGA人工智能加速器之一英特尔Stratix 10的性能可以优于传统GPU。当使用紧凑数据类型而不是标准的 32 位浮点数据 (FP32) 时,这成为可能。为了保持适当的计算精度,必须简化计算。
但是,这种潜力是否足以使FPGA成为AI应用加速问题的正确答案?让我们在下一节中深入挖掘。
人工智能应用真的需要FPGA吗?
在回答这个问题之前,让我们仔细看看AI相关技术中的数据处理问题。基于人工智能的解决方案在多个领域的使用正在快速增长,包括(但不限于)广告、金融、医疗保健、网络安全、执法,甚至航空航天。
总部位于科罗拉多州的市场情报公司Tractica预测,到2025年,基于人工智能的软件的收入将达到1058亿美元。但随着人工智能技术的普及,开发人员面临着两项具有挑战性的任务:
弄清楚如何更快地处理和传输数据
弄清楚如何提高基于 AI 的应用程序的整体性能
幸运的是,FPGA可能是这两个挑战的解决方案。
但是,所有基于AI的应用真的都需要FPGA吗?当然不是。FPGA的最大潜力在于深度学习领域。
需要 FPGA 技术的 AI 应用
当我们谈论现代人工智能时,我们通常会谈论三件事之一:人工智能、机器学习或特别是深度学习的一般概念。

图1.人工智能、机器学习和深度学习之间的联系
人工智能的总体概念,即机器拥有人类的智能,至少从20世纪中叶就已经存在。机器学习在很久以后才开花结果,从 1980 年代开始。
机器学习基于解析数据,从中学习,并利用这些知识做出某些预测或“训练”机器执行特定任务。对于学习,机器学习系统使用不同的算法:聚类、决策树、贝叶斯网络等。
深度学习基本上是一种机器学习方法。其中的一个重要部分是神经网络、资源匮乏和复杂的学习模型,在发明第一个 GPU 和并行任务处理之前,这些模型几乎不可能用于现实世界的任务。
使用神经网络模型的过程可以分为两个阶段:开发阶段(训练模型时)和运行时应用程序(使用训练模型执行特定任务时)。
例如,让我们考虑图像识别任务。例如,为了能够区分不同类型的路标,神经网络模型必须处理大量图片,逐步重新配置其内部参数和结构,以在训练集上达到可接受的精度。然后向经过训练的模型显示一张图片,并且必须识别其中的路标类型。查看我们的文章,了解有关人工智能图像识别过程的更多信息。
这就是FPGA的用武之地。要取得成功,推理需要灵活性和低延迟。FPGA可以解决这两个问题。FPGA 的可重新编程特性确保了人工神经网络不断发展的结构所需的灵活性。FPGA 还提供实时模型推理所需的自定义并行性和高带宽内存。
另一个优点是FPGA比标准GPU耗电量更低。
基于 FPGA 的加速即服务
基于 FPGA 的系统可以比虚拟化类似物更快地处理数据和解决复杂任务。虽然不是每个人都可以重新编程FPGA来执行特定任务,但云服务使基于FPGA的数据处理服务更接近客户。一些云提供商甚至提供一项新服务,即加速即服务(AaaS),允许其客户访问FPGA加速器。
使用 AaaS 时,您可以利用 FPGA 加速多种工作负载,包括:
训练机器学习模型
处理大数据
视频流分析
运行财务计算
加速数据库
一些FPGA制造商已经在努力实施基于云的FPGA,用于AI工作负载加速和需要密集计算的各种应用。例如,英特尔正在为名为f1实例的阿里云AaaS服务提供支持。阿里云用户也可以使用带 FPGA 的英特尔至强 CPU 加速堆栈,提供两种流行的软件开发流程,RTL 和 OpenCL。
另一家加入构建高效人工智能平台竞赛的大公司是Microsoft。他们的项目Brainwave提供了用于加速深度神经网络推理的FPGA技术。与阿里云类似,他们使用英特尔的Stratix 10 FPGA。
虽然英特尔在人工智能应用加速领域显然领先于FPGA市场,但另一家大型FPGA制造商赛灵思打算加入竞争。赛灵思宣布推出全新的 SDAccel 集成开发环境,旨在让 FPGA 开发人员更轻松地使用不同的云平台。
使用 FPGA 加速 AI 工作负载的利弊
FPGA 技术在加速 AI 相关工作负载方面显示出巨大潜力。但是,在考虑使用FPGA加速数据处理时,它也有许多缺点需要牢记。让我们来看看使用 FPGA 加速 AI 应用最重要的优缺点。
FPGA 技术的优势:
灵活性 – 能够针对多种用途重新编程是 FPGA 技术的主要优势之一。对于与AI相关的解决方案,可以重新编程单独的模块或整个电路,以适应特定数据处理算法的要求。
并行性 – FPGA 可以处理多个工作负载,同时将应用性能保持在较高水平,并且可以通过在多个程序之间切换来适应不断变化的工作负载。
减少延迟 – FPGA 具有比常规 GPU 更大的内存带宽,从而减少延迟并允许其实时处理大量数据。
能源效率 – 机器学习和深度学习是资源匮乏的解决方案。但是,通过使用FPGA,可以以低功耗确保机器学习的高水平应用性能。
FPGA技术的缺点:
编程 – FPGA 的灵活性是以重新编程电路的难度为代价的。市场上没有足够的经验丰富的程序员。
实现复杂性 – 虽然使用 FPGA 加速深度学习看起来很有希望,但只有少数公司尝试在现实生活中实现它。对于大多数 AI 解决方案开发人员来说,更常见的 GPU 和 CPU 串联可能看起来问题不大。
费用 – 前两个缺点不可避免地使得使用 FPGA 加速基于 AI 的应用程序成为一种昂贵的解决方案。对于小型项目,对电路进行多次重新编程的成本相当高。
缺乏库 – 开箱即用地支持 FPGA 的机器学习库很少甚至没有。然而,有一个很有前途的项目,LeFlow,由不列颠哥伦比亚大学的一组研究人员发起。该团队希望能够将FPGA与TensorFlow机器学习框架一起使用,使Python开发人员更容易使用FPGA来测试机器学习问题。
结论
FPGA 应该在用于大数据和机器学习的基于 GPU 和 CPU 的 AI 芯片中占有一席之地。它们在加速与AI相关的工作负载(尤其是推理)方面显示出巨大的潜力。使用 FPGA 加速机器学习和深度学习过程的主要优势在于其灵活性、自定义并行性以及针对多种用途重新编程的能力。
然而,由FPGA驱动的AI概念需要进一步发展。截至今天,只有两家主要的IT公司阿里巴巴和Microsoft为其客户提供基于FPGA的云加速。缺乏能够提供能够处理这种高级工作负载的电路的制造商也阻碍了这一概念的蓬勃发展。
作为人工智能软硬件开发公司,我们拥有一支经验丰富的程序员团队,他们掌握了嵌入式系统开发和FPGA开发的艺术。了解 FPGA 技术的所有细节后,我们很乐意帮助您找到一种利用该技术为您的项目带来好处的方法。

