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

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

3天内不再提示

基于FPGA的CNN加速项目案例解析

FPGA设计论坛 来源:未知 2023-08-25 12:30 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

人工智能AI)长期以来一直是科幻作家和学者的主题。将人脑的复杂性复制到计算机中的挑战催生了新一代的科学家、数学家和计算机算法开发人员。持续的研究现在已经让位于人工智能的使用,通常被称为深度学习机器学习,这些应用正越来越成为我们世界的一部分。虽然基本概念已经存在很长时间,但商业现实从未完全实现。近年来,数据的生成速度飞速发展,开发人员不得不长时间思考如何编写算法来从中提取有价值的数据和统计数据。还,另一个关键因素是高度可扩展级别的计算资源的可用性,这是云自愿提供的。例如,您口袋里的智能手机可能会使用 Google 的 Now(“OK Google”)或 Apple 的 Siri 语音命令应用程序,这些应用程序使用深度学习算法(称为(人工)神经网络)的强大功能来实现语音识别和学习能力。然而,除了与手机通话的乐趣和便利之外,还有大量工业、汽车和商业应用程序现在受益于深度学习神经网络的强大功能。称为(人工)神经网络,以实现语音识别和学习能力。然而,除了与手机通话的乐趣和便利之外,还有大量工业、汽车和商业应用程序现在受益于深度学习神经网络的强大功能。称为(人工)神经网络,以实现语音识别和学习能力。然而,除了与手机通话的乐趣和便利之外,还有大量工业、汽车和商业应用程序现在受益于深度学习神经网络的强大功能。

卷积神经网络

在查看其中一些应用程序之前,让我们先研究一下神经网络的工作原理以及它需要哪些资源。当我们一般谈论神经网络时,我们应该更准确地将它们描述为人工神经网络。作为软件算法实现,它们基于人类和动物的生物神经网络——中枢神经系统。多年来,人们构想了几种不同类型的神经网络架构,其中卷积神经网络(CNN) 得到了最广泛的采用。造成这种情况的主要原因之一是他们的架构方法使它们非常适合使用基于 GPUFPGA 设备的硬件加速器提供的并行化技术。CNN 受欢迎的另一个原因是它们适合处理具有大量空间连续性的数据,其中图像处理应用程序非常适合。空间连续性是指特定位置附近的像素共享相似的强度和颜色属性。CNN 由不同的层构成,每个层都有特定的目的,并且在它们的操作中使用了两个不同的阶段。第一部分是指令或训练阶段,它允许处理算法了解它拥有哪些数据以及每条数据之间的关系或上下文。CNN 是作为结构化和非结构化数据的学习框架创建的,计算机创建的神经元形成连接和中断网络。模式匹配是 CNN 背后的一个关键概念,


图 1:CNN 的层方法(来源:Wikipedia – credit Aphex34 1)。

更多关于 CNN 工作原理的信息可以在Cadence 1a的一篇论文中找到,以及一个有用的视频1b,该视频录制在最近的 IEEE 协会关于计算新前沿的会议上。当Microsoft 研究团队1c赢得 ImageNet 计算机视觉挑战时,CNN 对图像处理应用程序的有用性的证据获得了进一步的尊重。

CNN 的第二阶段是执行阶段。由不同的层节点组成,关于什么可能的图像可能变得越来越抽象的命题。卷积层从图像源中提取低级特征,以检测图像中的线条或边缘等特征。其他层,称为池化层,用于通过平均或“池化”图像特定区域的共同特征来减少变化。然后可以将其传递给进一步的卷积和池化层。CNN 层的数量与图像识别的准确性相关,尽管这增加了系统性能需求。如果内存带宽可用,这些层可以以并行方式运行,CNN 中计算最密集的部分是卷积层。

开发人员面临的挑战是他们如何提供足够高的计算资源来运行 CNN,以确定在应用程序的时间限制内所需的不同图像分类的数量。例如,工业自动化应用程序可能会使用计算机视觉来识别需要将零件传送到传送带上的下一个阶段。在神经网络识别出零件之前暂停该过程会破坏流程并减慢生产速度。

实现 CNN

加速部分 CNN 正在进行的“强化”学习和执行阶段将显着加速这项主要是数学任务。凭借其高内存带宽和计算能力,GPU 和 FPGA 是这项工作的潜在候选者。具有任何冯诺依曼架构所表现出的缓存瓶颈的传统微处理器可以运行算法,但将层抽象任务移交给硬件加速器。虽然 GPU 和 FPGA 都提供了显着的并行处理能力,但 GPU 固定架构的性质意味着 FPGA 具有灵活且可动态重新配置的架构更适合 CNN 加速任务。使用非常精细的方法,本质上是在硬件中实现 CNN 算法,与 GPU 的软件衍生算法方法相比,FPGA 架构有助于将延迟保持在绝对最小值,并且更具确定性。FPGA 的另一个优点是能够在设备结构中“硬化”功能块,例如 DSP。这种方法进一步加强了网络的确定性。就资源使用而言,FPGA 非常高效,因此每个 CNN 层都可以在 FPGA 结构内构建,并且它自己的内存靠近它。


图 2:图像处理 CNN 概述(来源:Cadence 2)。

图 2 突出显示了为工业图像处理应用程序设计的 CNN 的关键组件块,中间的两个块代表 CNN 的核心。

使用 C 语言的OpenCL 2a并行编程扩展来补充基于 FPGA 的 CNN 加速应用程序的开发。适用于卷积神经网络的 FPGA 器件的一个示例是英特尔可编程解决方案集团 (PSG)的Arria 10系列器件,其正式名称为Altera

为了帮助开发人员开展基于 FPGA 的 CNN 加速项目,英特尔 PSG 提供了 CNN 参考设计。这使用 OpenCL 内核来实现每个 CNN 层。数据使用通道和管道从一层传递到下一层,该功能允许数据在 OpenCL 内核之间传递,而无需消耗外部内存带宽。卷积层是使用 FPGA 中的 DSP 模块和逻辑实现的。硬化块包括浮点功能,可进一步提高设备吞吐量,而不必影响可用内存带宽。

图 3 所示的框图突出显示了可以使用 FPGA 作为加速处理单元的示例图像处理和分类系统。


图 3:使用 FPGA 进行加速的图像分类系统框图(来源:FPGA 上的深度学习,过去、现在和未来3)。

英特尔 PSG 还在其网站4上提供了许多有关将 FPGA 卷积神经网络用于工业、医疗和汽车应用的主题的有用文档和视频。为深度学习应用程序选择框架是关键的第一步。为了帮助开发人员,有越来越多的工具,例如OpenANN (openann.github.io),这是一个用于人工神经网络的开源库,以及诸如deeplearning.net和Embedded-vision.com等信息丰富的社区站点。包括对使用 OpenCL 的支持的流行深度学习设计框架包括Caffe(caffe.berkeleyvision.org),基于 C++ 和基于 Lua 的 Torch。DeepCL 是另一个完全支持 OpenCL 的框架,尽管它尚未获得前两者的用户群。

结论

工业市场热衷于利用深度学习神经网络可以为许多制造和自动化控制应用带来的特性。由于德国的工业 4.0 等举措以及更广泛的工业物联网概念,这一重点得到了进一步的推动。与高质量的视觉相机、CPU 和 FPGA 解决方案以及相关控制相结合,卷积神经网络可用于自动执行大量制造过程检查,从而提高产品质量、可靠性和工厂安全性。

凭借其动态可配置的逻辑结构、高内存带宽和功率效率,FPGA 非常适合加速 CNN 的卷积层和池化层。在大量社区驱动的开源框架和并行代码库(如 OpenCL)的支持下,未来在此类应用中使用 FPGA 是安全的。FPGA 提供了一种高度可扩展和灵活的解决方案,可以满足许多工业部门的不同应用需求。




有你想看的精彩



至芯科技FPGA就业培训班——助你步入成功之路、8月12号西安中心开课、欢迎咨询!
在FPGA上优化实现复数浮点计算
如何通过RTL分析、SDC约束和综合向导更快推出FPGA设计





扫码加微信邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!


点个在看你最好看






原文标题:基于FPGA的CNN加速项目案例解析

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

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

    关注

    1664

    文章

    22502

    浏览量

    639096

原文标题:基于FPGA的CNN加速项目案例解析

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    FPGA实现CNN卷积层的高效窗口生成模块设计与验证

    卷积神经网络(CNN)可以分为卷积层、池化层、激活层、全链接层结构,本篇要实现的,就是CNN的卷积层中的window窗。
    的头像 发表于 04-15 10:35 143次阅读
    <b class='flag-5'>FPGA</b>实现<b class='flag-5'>CNN</b>卷积层的高效窗口生成模块设计与验证

    基于openEuler平台的CPU、GPU与FPGA异构加速实战

    随着 AI、视频处理、加密和高性能计算需求的增长,单一 CPU 已无法满足低延迟、高吞吐量的计算需求。openEuler 作为面向企业和云端的开源操作系统,在 多样算力支持 方面表现出色,能够高效调度 CPU、GPU、FPGA 及 AI 加速器,实现异构计算协同。
    的头像 发表于 04-08 11:02 642次阅读
    基于openEuler平台的CPU、GPU与<b class='flag-5'>FPGA</b>异构<b class='flag-5'>加速</b>实战

    深入解析IGLOO2 FPGA与SmartFusion2 SoC FPGA:特性、参数与应用

    深入解析IGLOO2 FPGA与SmartFusion2 SoC FPGA:特性、参数与应用 在当今的电子设计领域,现场可编程门阵列(FPGA)和片上系统(SoC)
    的头像 发表于 04-07 16:45 137次阅读

    深入解析IGLOO2 FPGA与SmartFusion2 SoC FPGA:性能、规格与应用考量

    深入解析IGLOO2 FPGA与SmartFusion2 SoC FPGA:性能、规格与应用考量 在当今电子设计领域,FPGA(现场可编程门阵列)和SoC
    的头像 发表于 04-07 12:05 172次阅读

    深入解析IGLOO2 FPGA与SmartFusion2 SoC FPGA:性能、特性与应用

    深入解析IGLOO2 FPGA与SmartFusion2 SoC FPGA:性能、特性与应用 在当今电子科技飞速发展的时代,现场可编程门阵列(FPGA)和片上系统(SoC)
    的头像 发表于 04-07 11:55 212次阅读

    深入解析IGLOO2 FPGA和SmartFusion2 SoC FPGA:特性、参数与应用

    深入解析IGLOO2 FPGA和SmartFusion2 SoC FPGA:特性、参数与应用 在当今电子技术飞速发展的时代,FPGA(现场可编程门阵列)和SoC
    的头像 发表于 04-07 11:55 202次阅读

    赛灵思FPGA电源解决方案全解析

    赛灵思FPGA电源解决方案全解析 在当今的电子设计领域,现场可编程门阵列(FPGA)凭借其出色的设计灵活性和较低的工程成本,在众多应用和终端市场中占据了重要地位。然而,FPGA的电源设
    的头像 发表于 04-02 15:45 200次阅读

    Atmel AT17LVxxxA FPGA配置EEPROM:特性、应用与技术解析

    Atmel AT17LVxxxA FPGA配置EEPROM:特性、应用与技术解析FPGA(现场可编程门阵列)的应用中,配置存储器是至关重要的一部分,它负责存储FPGA的配置程序,确
    的头像 发表于 03-29 17:05 931次阅读

    嵌入式和FPGA的区别

    。 在当今智能化时代,嵌入式系统和FPGA技术都是电子系统设计中的重要组成部分,但许多工程师和技术爱好者常常对两者的区别和应用场景感到困惑。本文将深入解析嵌入式系统和FPGA的核心差异,帮助您在
    发表于 11-19 06:55

    CNN卷积神经网络设计原理及在MCU200T上仿真测试

    CNN算法简介 我们硬件加速器的模型为Lenet-5的变型,网络粗略分共有7层,细分共有13层。包括卷积,最大池化层,激活层,扁平层,全连接层。下面是各层作用介绍: 卷积层:提取特征。“不全
    发表于 10-29 07:49

    构建CNN网络模型并优化的一般化建议

    通过实践,本文总结了构建CNN网络模型并优化的一般化建议,这些建议将会在构建高准确率轻量级CNN神经网络模型方面提供帮助。 1)避免单层神经网络:我们清楚神经网络本身是需要不断抽象出更高级别的纹理
    发表于 10-28 08:02

    【高云GW5AT-LV60 开发套件试用体验】基于开发板进行深度学习实践,并尽量实现皮肤病理图片的识别,第四阶段

    的原始视频数据。 处理: 在FPGA上实现的CNN加速器对视频流进行实时处理。例如: 目标检测: 识别出视频中的人、车、物体等,并在其周围画上框。 图像分割: 将视频中的不同区域(如天空、建筑
    发表于 07-12 07:58

    基于FPGA的压缩算法加速实现

    本设计中,计划实现对文件的压缩及解压,同时优化压缩中所涉及的信号处理和计算密集型功能,实现对其的加速处理。本设计的最终目标是证明在充分并行化的硬件体系结构 FPGA 上实现该算法时,可以大大提高该算
    的头像 发表于 07-10 11:09 2587次阅读
    基于<b class='flag-5'>FPGA</b>的压缩算法<b class='flag-5'>加速</b>实现

    突破交付瓶颈:FPGA项目加速交付的“致胜密码”

    能导致成本超支、客户满意度下降,甚至影响企业的市场竞争力。瑞苏盈科瑞苏盈科的设计服务可让您立即获得一支技术精湛的工程团队,该团队可在FPGA或SoC项目的任何阶段介
    的头像 发表于 06-27 10:13 1075次阅读
    突破交付瓶颈:<b class='flag-5'>FPGA</b><b class='flag-5'>项目</b><b class='flag-5'>加速</b>交付的“致胜密码”

    【高云GW5AT-LV60 开发套件试用体验】基于开发板进行深度学习实践,并尽量实现皮肤病理图片的识别

    收到开发板已经有一段时间了,最初申请的时候写的是希望能够实现基于fpga的图像识别相关的项目,最初对这个还是有些模糊的,不过这几天折腾下来,似乎有点思路了,但是毕竟基础还是有点薄弱,所以废话不多
    发表于 06-11 22:35