想用FPGA加速神经网络,这两个开源项目你必须要了解

FPGA技术江湖 2022-11-28 08:56

优秀的 Verilog/FPGA开源项目介绍(十五)- 加速神经网络的必备开源项目

之前介绍的项目《优秀的 Verilog/FPGA开源项目介绍(十四)- 使用FPGA实现LeNet-5 深度神经网络模型》最后我们分析了,纯FPGA实现神经网络的缺点,以及现在FPGA厂家的加速方案,这里引用一下:


到底纯FPGA适不适合这种大型神经网络的设计?这个问题其实我们不适合回答,但是FPGA厂商是的实际操作是很有权威性的,现在不论是Intel还是Xilinx都没有在自己传统的FPGA上推广AI,都是在基于FPGA的SoC上推广(Vitis和OpenVINO,前者Xilinx后者Intel),总结来看就是:纯 RTL 硬件设计不是AI的好选择。特别是对于大规模网络,权重和中间结果需要存储在外部存储器中。并且数据迭代器会更加复杂。设计周期长,AI相关领域迭代速度快,综上以上几点,可以很容易给你们指引一条道路。


目前主流的解决方案就是使用通用或专用处理器来做控制工作,让硬件来执行计算(加速的概念),今天就介绍两个针对以上解决方案的开源项目,这两个项目是用FPGA进行硬件加速的必备项目。

AI算法流程

在进行项目介绍前,我们先介绍一下软件架构和工具集。这个后面会影响理解。

一个完整的深度学习框架中主要分为下面几个流程:

有一些是我们不太关心的部分(对于FPGA实现应用),即数据收集等,所以上诉流程再简单分为几个主要部分,即训练(training)和推理(inference)、部署(deployment)。

训练(Training)

使用训练模型(Caffe、TensorFlow、MxNET、ONNX等)根据训练数据得到相关的参数。举个例子,我现在想要设备识别猫和狗,我首先需要收集猫和狗的图片(这些图片称为训练数据集(training dataset)),但是这些数据集在进行训练前要有标签(即每张照片是狗,那张照片是猫),选择好训练模型后,将上诉数据给训练模型进行训练,训练模型不是万能的,虽然能通过训练不断的优化参数,但是在训练完还不一定能达到你想要的识别率(比如100张图片有50张能识别),接下来就是通过优化参数,让另外50张错的也变成对的。这整个过程就称之为训练(Traning)。

推理(Inference)

这个过程比较简单,就是把上面训练好的模型,去识别不是训练集里的图片(这种图片就叫做现场数据(live data)),如果对这些现场数据的识别也非常NICE,那么证明你的网络训练的是非常好的,如果不是特别好,就需要把训练数据集增加,重复这一过程,直到现场数据也达到比较好的效果。把训练好的模型拿出来进行现场实验推理的过程,称为推理(Inference)。

部署(deployment)

部署的理解很简单,就是经过上面两个步骤的模型应用,把它放在某个硬件平台上运行,这个过程称之为部署(deployment)。

其实各大厂家推出自己的架构/工具都是基于上诉流程,不同点就是会针对自家的硬件做细节优化。

现在常见的模型推理部署框架有很多,比如:英特尔的OpenVINO,英伟达的TensorRT,谷歌的Mediapipe,Xilinx Vitis。

Intel FPGA OpenVINO

下载地址

https://software.intel.com/content/www/cn/zh/develop/tools/openvino-toolkit/choose-download.html?cid=other&source=wechat_share_oth&campid=prc_q3_iotg_ov-da&content=wksp-reg_all

官方资源

一、主页

https://software.intel.com/content/www/cn/zh/develop/tools/openvino-toolkit.html

二、源码

https://github.com/openvinotoolkit

https://gitee.com/openvinotoolkit-prc

三、文档

https://docs.openvinotoolkit.org/

四、学习

https://software.intel.com/content/www/cn/zh/develop/tools/openvino-toolkit/learn.html

视频教程

https://space.bilibili.com/38566875

免费的初级教程

https://edu.csdn.net/course/detail/27685

介绍

OpenVINO是Intel推出的用于优化和部署 AI 推理的开源工具包。

  • 提升计算机视觉、自动语音识别、自然语言处理和其他常见任务中的深度学习性能
  • 使用通过 TensorFlow、PyTorch 等流行框架训练的模型
  • 减少资源需求并在从边缘到云的一系列英特尔平台上高效部署
来源:知乎@火狐狸

上图就是OpenVINO的组成,针对第一节的 AI算法流程 理解起来不是很难。其中,模型优化器是线下模型转换,推理引擎是部署在设备上运行的AI负载。

因为OpenVINO还有针对自己CPU的架构,没有对FPGA部分过多介绍,所以一些细节会在下一个项目介绍。

视频介绍

关于OpenFPGA在FPGA方面的加速应用,可以查看下面的两个官方中文视频介绍,这里就不再赘述。

Xilinx FPGA Vitis AI

开源链接:

https://github.com/Xilinx/Vitis-Tutorials

https://github.com/Xilinx/Vitis_Libraries

官方网址:

https://china.xilinx.com/products/design-tools/vitis/vitis-platform.html

2019年10月,Xilinx正式发布了统一开发软件平台Vitis。Vitis平台无需用户深入掌握硬件专业知识,即软件和算法自动适配到Xilinx的硬件架构。Xilinx Vitis AI是针对自家硬件平台推出的针对AI模型的硬件实现。Vitis AI 提供的工具链能在数分钟内完成优化、量化和编译操作,在赛灵思器件上高效地运行预先训练好的AI模型。

介绍

上图就是Vitis AI的整体架构,主要分为AI Model Zoo、AI 优化器、AI 量化器、AI 编译器、AI 配置器、AI 库、XRT、以及核心DPU。

整个流程和上图类似,下面针对每个部分简单介绍(Intel的类似)。

AI Model Zoo

这个就是最流行框架 Pytorch、Tensorflow、Tensorflow 2 和 Caffe 的现成深度学习模型的集合,也就是我们可以简单及快速的进行AI模型的训练和优化。

AI 优化器、AI 量化器、AI 编译器

AI 优化器功能简介

这三个作用就是将训练好的模型进行优化,其中AI 优化器是在牺牲很少的精度情况下降模型的复杂度;AI 量化器的作用其实和FPGA的结构有关(FPGA无法处理浮点数据),AI 量化器就是将32 位浮点权值和激活量转换为 INT8 这样的定点数据。

AI 量化器功能简介

AI 编译器的作用就是将 AI 模型进行高级优化,主要包括指令集、数据流、层融合和指令排程等,并可尽量重复使用片上内存。

AI 编译器功能简介

AI 配置器、AI 库

AI 配置器功能简介

AI 配置器主要是辅助开发人员对AI模型的方案实施的效率和利用率进行分析的性能分析器。

AI 库功能简介

AI库主要功能就是将DPU和上层进行链接(基于带有统一 API 的 Vitis AI Runtime 构建)。

XRT、DPU

这两个是Xilinx的“王牌”了,其中DPU大家应该不陌生,是DNNDK的升级版本(DNNDK官方应该已经不维护了)。

XRT

Xilinx 运行时库 (XRT) 是 Vitis 统一软件平台和 Vitis AI 开发环境的一个重要组成部分,其可帮助开发人员继续使用熟悉的编程语言(如 C/C++、Python 以及高层次特定域框架 TensorFlow 和咖啡等)在 Xilinx 灵活应变的平台上部署。

主要功能如下图所示:

DPU

详细介绍:PG338 PG366

Xilinx深度学习处理器单元 (DPU) 是一个专门用于卷积神经网络的可编程引擎。该单元包含寄存器配置模块、数据控制器模块和卷积计算模块。在 DPU 中部署的卷积神经网络包括 VGG、ResNet、GoogLeNet、YOLO、SSD、MobileNet 以及 FPN 等。

视频介绍

总结

今天介绍了两个最重要的FPGA加速神经网络的开源项目,而且经过几年的发展越发稳定,总结一下就是,如果想用FPGA加速神经网络就快点去看看吧,这里在简单推荐一下这两个项目的入门开发板。

Intel C5P 开发板

Intel OpenVINO入门开发板

Xilinx Kria KV260开发板

最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。


- -THE END- -


往期精选 

 
 

【免费】FPGA工程师人才招聘平台

FPGA人才招聘,企业HR,看过来!

系统设计精选 | 基于FPGA的实时图像边缘检测系统设计(附代码)

基于原语的千兆以太网RGMII接口设计

时序分析理论和timequest使用_中文电子版

求职面试 | FPGA或IC面试题最新汇总篇

FPGA图像处理专题课新增Vivado部分内容,线上线下均可报名

FPGA时序分析及约束专题课新增Vivado部分内容,线上线下均可报名

资料汇总|FPGA软件安装包、书籍、源码、技术文档…(2022.09.24更新)

FPGA就业班,11月28日开班,课程内容丰富,系统性学习FPGA,高薪就业,线上线下同步!

FPGA技术江湖广发江湖帖

无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有,QQ微信双选,FPGA技术江湖打造最纯净最专业的技术交流学习平台。


FPGA技术江湖微信交流群

加群主微信,备注姓名+公司/学校+岗位/专业进群


FPGA技术江湖QQ交流群

备注姓名+公司/学校+岗位/专业进群

FPGA技术江湖 任何技术的学习就好比一个江湖,对于每一位侠客都需要不断的历练,从初入江湖的小白到归隐山林的隐世高人,需要不断的自我感悟自己修炼,让我们一起仗剑闯FPGA乃至更大的江湖。
评论
  • 百佳泰特为您整理2024年12月各大Logo的最新规格信息。——————————USB▶ 百佳泰获授权进行 USB Active Cable 认证。▶ 所有符合 USB PD 3.2 标准的产品都有资格获得USB-IF 认证——————————Bluetooth®▶ Remote UPF Testing针对所有低功耗音频(LE Audio)和网格(Mesh)规范的远程互操作性测试已开放,蓝牙会员可使用该测试,这是随时测试产品的又一绝佳途径。——————————PCI Express▶ 2025年
    百佳泰测试实验室 2024-12-20 10:33 29浏览
  • You are correct that the length of the via affects its inductance. Not only the length of the via, but also the shape and proximity of the return-current path determines the inductance.   For example, let's work with a four-layer board h
    tao180539_524066311 2024-12-18 15:56 119浏览
  • 由于该文反应热烈,受到了众多工程师的关注,衷心感谢广大优秀工程师同仁的建言献策。特针对该技术点更新一版相关内容! 再次感谢大家的宝贵建议!填充铜(Solid Copper)和网格铜(Hatched Copper)是PCB设计中两种不同的铺铜方式,它们在电气性能、热管理、加工工艺和成本方面存在一些区别:1. 电气性能:填充铜:提供连续的导电层,具有极低的电阻和最小的电压降。适合大电流应用,并能提供优秀的电磁屏蔽效果,显著提高电磁兼容性。网格铜:由于铜线之间存在间隔,电阻相对较高,电压降也
    为昕科技 2024-12-18 17:11 105浏览
  • ​本文介绍PC电脑端运行VMware环境下,同时烧录固件检测不到设备的解决方法。触觉智能Purple Pi OH鸿蒙开发板演示,搭载了瑞芯微RK3566芯片,类树莓派设计,Laval官方社区主荐,已适配全新OpenHarmony5.0 Release系统!PC端烧录固件时提示没有发现设备按照各型号烧录手册中进入loader模式的操作方法,让开发板连接到PC端。正常来说开发板烧录时会显示“发现一个LOADER设备”,异常情况下,会提示“没有发现设备”,如下图所示: 解决步骤当在烧录系统固
    Industio_触觉智能 2024-12-18 18:07 74浏览
  • 耳机虽看似一个简单的设备,但不仅只是听音乐功能,它已经成为日常生活和专业领域中不可或缺的一部分。从个人娱乐到专业录音,再到公共和私人通讯,耳机的使用无处不在。使用高质量的耳机不仅可以提供优良的声音体验,还能在长时间使用中保护使用者听力健康。耳机产品的质量,除了验证产品是否符合法规标准,也能透过全面性的测试和认证过程,确保耳机在各方面:从音质到耐用性,再到用户舒适度,都能达到或超越行业标准。这不仅保护了消费者的投资,也提升了该公司在整个行业的产品质量和信誉!客户面临到的各种困难一家耳机制造商想要透
    百佳泰测试实验室 2024-12-20 10:37 68浏览
  •         不卖关子先说感受,真本书真是相见恨晚啊。字面意思,见到太晚了,我刚毕业或者刚做电子行业就应该接触到这本书的。我自己跌跌撞撞那么多年走了多少弯路,掉过多少坑,都是血泪史啊,要是提前能看到这本书很多弯路很多坑都是可以避免的,可惜这本书是今年出的,羡慕现在的年轻人能有这么丰富完善的资料可以学习,想当年我纯靠百度和论坛搜索、求助啊,连个正经师傅都没有,从软件安装到一步一布操作纯靠自己瞎摸索,然后就是搜索各种教程视频,说出来都是泪啊。  &
    DrouSherry 2024-12-19 20:00 41浏览
  • 汽车驾驶员监控系统又称DMS,是一种集中在车辆中的技术,用于实时跟踪和评估驾驶员状态及驾驶行为。随着汽车产业智能化转型,整合AI技术的DMS逐渐成为主流,AI模型通过大量数据进行持续训练,使得驾驶监控更加高效和精准。 驾驶员监测系统主要通过传感器、摄像头收集驾驶员的面部图像,定位头部姿势、人脸特征及行为特征,并通过各种异常驾驶行为检测模型运算来识别驾驶员的当前状态。如果出现任何异常驾驶行为(如疲劳,分心,抽烟,接打电话,无安全带等),将发出声音及视觉警报。此外,驾驶员的行为数据会被记录
    启扬ARM嵌入式 2024-12-20 09:14 23浏览
  •         在上文中,我们介绍了IEEE 802.3cz[1]协议提出背景,旨在定义一套光纤以太网在车载领域的应用标准,并介绍了XMII以及PCS子层的相关机制,在本篇中,将围绕IEEE 802.3cz-MultiGBASE-AU物理层的两个可选功能进行介绍。EEE功能        节能以太网(Energy-Efficient Ethernet)是用于在网络空闲时降低设备功耗的功能,在802.3cz的定义中,链
    经纬恒润 2024-12-19 18:47 26浏览
  • //```c #include "..\..\comm\AI8051U.h"  // 包含头文件,定义了硬件寄存器和常量 #include "stdio.h"              // 标准输入输出库 #include "intrins.h"         &n
    丙丁先生 2024-12-20 10:18 31浏览
  • 在强调可移植性(portable)的年代,人称「二合一笔电」的平板笔电便成为许多消费者趋之若鹜的3C产品。说到平板笔电,不论是其双向连接设计,面板与键盘底座可分离的独特功能,再加上兼具笔电模式、平板模式、翻转模式及帐篷模式等多种使用方式,让使用者在不同的使用情境下都能随意调整,轻巧灵活的便利性也为多数消费者提供了绝佳的使用体验。然而也正是这样的独特设计,潜藏着传统笔电供货商在产品设计上容易忽视的潜在风险。平板笔电Surface Pro 7+ 的各种使用模式。图片出处:Microsoft Comm
    百佳泰测试实验室 2024-12-19 17:40 130浏览
  • By Toradex秦海1). 简介为了保证基于 IEEE 802.3 协议设计的以太网设备接口可以互相兼容互联互通,需要进行 Ethernet Compliance 一致性测试,相关的技术原理说明请参考如下文章,本文就不赘述,主要展示基于 NXP i.MX8M Mini ARM 处理器平台进行 1000M/100M/10M 以太网端口进行一致性测试的测试流程。https://www.toradex.com
    hai.qin_651820742 2024-12-19 15:20 85浏览
  • 沉寂已久的无人出租车赛道,在2024年突然升温了。前脚百度旗下萝卜快跑,宣布无人驾驶单量突破800万单;后脚特斯拉就于北京时间10月11日上午,召开了以“We,Robot”为主题的发布会,公布了无人驾驶车型Cybercab和Robovan,就连低调了好几个月的滴滴也在悄悄扩编,大手笔加码Robotaxi。不止是滴滴、百度、特斯拉,作为Robotaxi的重磅选手,文远知行与小马智行,也分别在10月份先后启动美股IPO,极氪也在近日宣布,其与Waymo合作开发的无人驾驶出行汽车将大规模量产交付,无人
    刘旷 2024-12-19 11:39 121浏览
  • 随着工业自动化和智能化的发展,电机控制系统正向更高精度、更快响应和更高稳定性的方向发展。高速光耦作为一种电气隔离与信号传输的核心器件,在现代电机控制中扮演着至关重要的角色。本文将详细介绍高速光耦在电机控制中的应用优势及其在实际工控系统中的重要性。高速光耦的基本原理及优势高速光耦是一种光电耦合器件,通过光信号传递电信号,实现输入输出端的电气隔离。这种隔离可以有效保护电路免受高压、电流浪涌等干扰。相比传统的光耦,高速光耦具备更快的响应速度,通常可以达到几百纳秒到几微秒级别的传输延迟。电气隔离:高速光
    晶台光耦 2024-12-20 10:18 42浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦