0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在 FPGA 上实施 AI/ML 的选项

李晶 2022-12-28 09:51 次阅读

现场可编程门阵列 (FPGA) 以加速人工智能/机器学习应用而闻名,但它是如何在 FPGA 中实现的,有哪些不同的方法?让我们探索工程师的设计空间。

人工智能 (AI) 是云和边缘应用程序中的热门话题。在许多情况下,人工智能可以实现更安全、更高效和安全的系统。人工智能已经存在很长时间了,它于 1956 年由约翰·麦卡锡 (John McCarthy) 在第一次人工智能会议召开时首次使用。虽然几十年来进行了大量研究,但仅在最近 5 到 10 年,人工智能系统才从实验室和研究转移到产品路线图和产品中。

在云和边缘环境中,部署最广泛的 AI 形式之一是机器学习 (ML)。机器学习是对计算机算法的研究,它允许计算机程序通过经验自动改进。这方面的一个例子是为 ML 网络提供带有标签的图像数据集。机器学习算法识别图像的特征和元素,以便在输入新的未标记的、以前未见过的图像时,ML 算法确定图像包含任何已学习特征和元素的可能性。可以训练此类 ML 算法来检测图像中的对象、处理语音中的关键字以及分析传感器数据的异常情况。典型应用包括视觉引导机器人、车辆自主操作以及工业和安全关键系统的预测。

因此,ML 学习算法分为两个要素,第一个是针对训练数据集对网络进行训练。第二个是训练网络领域的部署,这些元素分别称为训练和推理。训练准确的模型需要一个带标签的大型数据集,并且通常在基于云的 GPU 上执行以加速训练过程。设计工程师可以跨从 MCU 到 GPU 和 FPGA 的一系列技术部署训练有素的网络。

在 FPGA 中嵌入 AI

几个非常流行的框架——Caffe、TensorFlow。和 Pytorch——帮助训练和部署 AI/ML 系统。这些框架用于网络定义、训练和推理。

许多基于边缘的人工智能系统的关键要素之一是能够在确定的时间范围内执行推理。例如,自动驾驶汽车必须快速检测车辆、障碍物和行人以防止碰撞。这需要一个既响应又确定的解决方案,响应是因为传感器数据必须以最小延迟快速处理,确定是因为每个输入的响应时间必须相同并且不依赖于系统操作条件或资源使用,例如,使用共享 DDR 内存会减慢响应时间。

由于响应性和确定性的要求,基于边缘的解决方案的开发人员通常以 FPGA 或基于异构 SoC 的解决方案为目标。这些为开发人员提供了可编程逻辑,是实现机器学习网络的理想选择,因为它的并行特性支持响应式应用程序和非常确定的解决方案。

在可编程逻辑中实现 ML 推理时,可以采用两种方法。在使用浮点数学开发和训练神经网络时,无论采用哪种方法,FPGA 或异构 SoC 中的实现通常都使用定点实现。从浮点数到定点数的转换过程称为量化,推理精度会略有下降;然而,对于大多数应用程序,可以使用量化的权重和激活来执行额外的训练以恢复准确性。

第一种方法直接在可编程逻辑中实现神经网络。为推理训练的权重被加载到网络中。这可以在运行时或在设计的编译/综合期间实现。

这些神经网络的一个例子是 AMD-Xilinx FINN 网络,它可用于在 FPGA 中实现量化神经网络。这些量化神经网络被实现为具有二进制权重和两位激活的量化神经网络。

有了量化神经网络,神经网络可以在 FPGA 中实现,资源更少,因为不需要外部 DDR 或 SoC 支持。使该方法成为空间、组件和成本非常宝贵的受限开发的理想选择。虽然它需要更多的专业知识才能集成到整体解决方案中,但它可能非常有效。可能使用此类方法的典型示例可能是工业机械的预测,例如轴承磨损或振动等。

在 FPGA 逻辑中使用神经网络直接实现的替代方法是使用高度专业化的神经网络加速器。神经网络加速器在可编程逻辑中实现,并与具有高带宽链路的 DDR 存储器以及异构 SoC 中的专用处理器紧密耦合

在使用神经网络加速器的应用程序中,它们由软件应用程序提供网络和权重/激活和偏差。因此,这使得 ML 推理更容易集成到整个应用程序中。神经网络加速器的一个例子是 AMD-Xilinx 深度学习单元,它可以与 Pytorch、Caffe 和 TensorFlow 中定义的网络一起工作,并为应用程序执行所有量化、再训练和程序生成。这样可以更轻松地集成到正在开发的应用程序中。这种方法的典型应用是基于视觉的高性能应用,例如视觉引导机器人、智能城市解决方案,当然还有提高汽车 SAE 自主水平。

最高的准确性和性能来自于使用专门的神经网络加速器,并且易于集成通常提供更好的整体解决方案。因此,这种方法被多家供应商用于他们的 AI 解决方案。这种方法更容易与更高级别的软件框架和抽象堆栈集成,这是利用整体性能的关键,因为 AI 通常只是整体解决方案的一小部分(但很重要)。

最后的想法

很多时候,选择哪种解决方案取决于最终应用,即使 AI 可能是主要的营销元素。在现实世界中,人工智能通常只是整个解决方案的一小部分,因为传感器接口、预处理、执行器驱动和构成解决方案的其他元素也会有自己的限制和要求。

可编程逻辑使开发人员能够构建具有响应性和确定性的 AI/ML 解决方案。通过将这些解决方案与行业标准框架相结合,开发人员可以使云和边缘 AI/ML 应用程序更安全、更高效、更安全。

审核编辑黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1627

    文章

    21685

    浏览量

    602324
收藏 人收藏

    评论

    相关推荐

    新思科技Foundation IP:AI芯片低功耗设计必选项

           人工智能(AI)近年来已广泛应用,并迅速成为一项具有变革性的技术。AI依托于机器学习(ML)算法,而这些算法需要强大的计算能力。传统,开发者们依赖图形处理器(GPU)来
    的头像 发表于 11-29 11:46 297次阅读
    新思科技Foundation IP:<b class='flag-5'>AI</b>芯片低功耗设计必<b class='flag-5'>选项</b>

    芯科科技前沿的MCU+AI/ML开发工具解决方案

    人工智能(AI)和机器学习(ML)是使系统能够从数据中学习,进行推断并随着时间的推移提高其性能的关键技术。这些技术通常用于大型数据中心和功能强大的GPU,但是将它们部署资源有限的设备(如微控制器MCU)
    的头像 发表于 08-20 11:38 619次阅读

    使用PYNQ训练和实现BNN

    使用 PYNQ 可以轻松 FPGA 实现加速 AI/ML,而无需编写一行 HDL!让我们看看如何做到这一点。
    的头像 发表于 08-05 17:15 464次阅读
    使用PYNQ训练和实现BNN

    FPGA集群实现高级并行编程

    今天我们看的这篇论文介绍了FPGA集群实现高级并行编程的研究,其主要目标是为非FPGA专家提供一个成熟且易于使用的环境,以便在多个并行运行的设备
    的头像 发表于 07-24 14:54 1162次阅读

    使用 Renesas RA8M1 MCU 快速地部署强大高效的 AIML 功能

    作者:Kenton Williston 人工智能 (AI)、机器学习 (ML) 和其他计算密集型工作负载物联网 (IoT) 网络边缘的兴起,给微控制器 (MCU) 带来了额外的处理负载。处理这些
    的头像 发表于 05-05 10:14 571次阅读
    使用 Renesas RA8M1 MCU 快速地部署强大高效的 <b class='flag-5'>AI</b> 和 <b class='flag-5'>ML</b> 功能

    基于 Renesas 的 RA8M1 实现 AIML 部署

    作者:Kenton Williston 人工智能 (AI)、机器学习 (ML) 和其他计算密集型工作负载物联网 (IoT) 网络边缘的兴起,给微控制器 (MCU) 带来了额外的处理负载。处理这些
    的头像 发表于 04-23 15:04 1178次阅读
    基于 Renesas 的 RA8M1 实现 <b class='flag-5'>AI</b> 和 <b class='flag-5'>ML</b> 部署

    新型的FPGA器件将支持多样化AI/ML创新进程

    的来临,而是包括GPU、FPGA和NPU等一众数据处理加速器时代的来临,就像GPU以更高的计算密度和能效胜出CPU一样,各种加速器件不同的AI/ML应用或者细分市场中将各具优势,未来
    的头像 发表于 04-02 15:25 313次阅读
    新型的<b class='flag-5'>FPGA</b>器件将支持多样化<b class='flag-5'>AI</b>/<b class='flag-5'>ML</b>创新进程

    为何高端FPGA都非常重视软件

    它们适用于AI推理加速任务,声称的TOPS / FLOPS性能功能以及片互连,例如FPGA路由资源和片上网络(NOC)。第二部分,我们研究了内存架构,封装内集成架构和高速串行IO功
    发表于 03-23 16:48

    是德科技推出AI数据中心测试平台旨在加速AI/ML网络验证和优化的创新

    2024年2月29日,是德科技(Keysight Technologies,Inc.)宣布,针对人工智能(AI)和机器学习(ML)基础设施生态系统,推出了 AI数据中心测试平台,旨在加速AI
    的头像 发表于 02-29 09:32 602次阅读
    是德科技推出<b class='flag-5'>AI</b>数据中心测试平台旨在加速<b class='flag-5'>AI</b>/<b class='flag-5'>ML</b>网络验证和优化的创新

    FPGAFPGA设计PCB的步骤详解

    FPGA(Zynq™ UltraScale+™ MPSoC) 的 Ubuntu 22.04 桌面映像安装了各种 EE 设计应用程序(包括 KiCad),并用它设计 PCB。
    的头像 发表于 02-26 09:04 1939次阅读
    <b class='flag-5'>在</b><b class='flag-5'>FPGA</b><b class='flag-5'>上</b>为<b class='flag-5'>FPGA</b>设计PCB的步骤详解

    国际最新AI算力评测标准SPEC ML即将发布,浪潮信息连任SPEC ML主席

    国际权威标准性能评估组织SPEC第35届年会日前美国举行。会上,SPEC组织确定新一年工作计划,为推动AI算力产业的更快发展,国际最新AI算力评测标准SPEC ML即将发布,该标准由
    的头像 发表于 02-24 19:07 3600次阅读
    国际最新<b class='flag-5'>AI</b>算力评测标准SPEC <b class='flag-5'>ML</b>即将发布,浪潮信息连任SPEC <b class='flag-5'>ML</b>主席

    时序电路为什么FPGA综合成了latch?

    有朋友提问,下面的代码为什么DC里可以综合成DFF,而在FPGA却综合成了latch。
    的头像 发表于 02-20 16:12 778次阅读
    时序电路为什么<b class='flag-5'>在</b><b class='flag-5'>FPGA</b><b class='flag-5'>上</b>综合成了latch?

    【国产FPGA+OMAPL138开发板体验】(原创)5.FPGAAI加速源代码

    if; end process; end architecture Behavioral; 本人写的这个程序极度简化了FPGA实现AI加速器的过程,例如并行处理、流水线
    发表于 02-12 16:18

    Supermicro推新AI存储方案,助力AIML应用加速

    Supermicro首席执行官梁见后先生高瞻远瞩地指出:针对AIML应用的加速处理,我们推荐配置以每机柜20 PB高速闪存为主,配备四个NVIDIA HGX H100系列优化版8-GPU气冷服务器或者八个同款液冷服务器。
    的头像 发表于 02-03 14:46 608次阅读

    深入探讨工业AI/ML技术的发展趋势及相关解决方案

    芯科科技已经创建了一套完整的硬件和软件解决方案,可支持开发用于工业市场的工业AI/ML解决方案。具体来说,我们的Sub-GHz、蓝牙和802.15.4产品内置了硬件加速功能,可优化边缘的AI/
    的头像 发表于 01-29 09:42 468次阅读