基于FPGA轻松玩转AI

启动人工智能应用从来没有像现在这样容易!受益于像Xilinx Zynq UltraScale+ MPSoC 这样的FPGA,AI现在也可以离线使用或在边缘部署、使用.可用于开发和部署用于实时推理的机器学习应用,因此将AI集成到应用中变得轻而易举。图像检测或分类、模式或语音识别推动了制造业、医疗、汽车和金融服务等产业的升级。

--

快速开启基于AIFPGA应用

人工智能正在占据越来越多的应用和生活场景,例如图像检测和分类,翻译和推荐系统等等。基于机器学习技术的应用数量庞大且还在不断增长。采用瑞苏盈科结合FPGA和ARM处理器的核心板模块,在离线和边缘使用AI前所未有的容易。

人工智能(AI)历史悠久,自1955年便被公认为一门学科。人工智能是计算机模仿人类智能、从经验中学习、适应新信息并执行类似人类活动的能力。人工智能的应用包括专家系统、自然语言处理(NLP)、语音识别和机器视觉。

AI的复兴

在经历了几波乐观和失望之后,人们对人工智能产生了新的兴趣,而且越来越感兴趣。在过去15年左右的时间里,成千上万的人工智能初创公司成立了,而且速度在不断增长。这背后有几个驱动因素:可能最重要的一个是现在可以以承担得起的价格获得巨大的计算能力。不仅硬件更快,而且现在每个人都可以访问云中的超级计算机。这使得运行人工智能所需的硬件平台变得大众化,使得初创企业得以大量涌现。

undefined

图1:一种具有2个隐含层的前馈人工神经网络的简化视图

人工神经网络(图1)现在扩展到几十到几百个隐藏层节点(图2)。即使是有10000个隐藏层的网络也已经实现了。这种进化正在增加神经网络的抽象能力,并使新的应用成为可能。如今,神经网络可以在数万个CPU或GPU核上进行训练,大大加快了开发广义学习模型的过程。

undefined

图2: ImageNet识别挑战获胜者展示了在新的神经网络架构中不断增加的隐藏层

人们对人工智能兴趣增加的另一个原因是近年来机器学习方面的突破性进展。这有助于吸引科技投资和初创企业的兴趣,进一步加速人工智能的发展和完善。

机器如何学习

人工神经网络是一种受人脑启发的计算模型。它由一个简单的处理单元相互连接的网络组成,这些网络可以通过修改它们的连接来学习经验(图1)。所谓的深度神经网络(DNN -具有许多隐藏层的神经网络)目前为许多大型计算问题提供了最佳解决方案。

目前应用最广泛的深度学习系统是卷积神经网络(Convolutional Neural Network, CNNs)。这些系统使用前馈的人工神经元网络将输入特征映射到输出,他们使用反向馈入系统进行学习(即训练),并产生一组权重来校准CNN(反向传播,图3)。

undefined

图3:神经网络需要经过训练来学习如何解决问题或挑战

机器学习中计算强度最大的过程是训练神经网络。对于一个最先进的网络来说,它可能需要数天到数周的时间,需要数十亿的浮点计算和大量的训练数据(GByte到数百GByte),直到网络达到所需的精度。幸运的是,这个步骤在大多数情况下都不需要时间限制,并且可以转移到云上。

当网络接受训练时,它可以被输入一个新的、未标记的数据集,并根据它之前学习的数据对数据进行分类。这一步称为推断,是开发应用的实际目标。

告诉我你看到了什么

输入的分类可以在云中进行,也可以在边缘(大部分是离线)进行。虽然通过神经网络处理数据通常需要专用加速器(FPGA、GPU、DSP或ASIC),但额外的任务最好由CPU处理,CPU可以用传统的编程语言编程。这就是带有集成CPU(所谓的片上系统(SoC))的FPGA的优势所在,尤其是在边缘。SoC将推理加速器(FPGA阵列)和CPU组合在一块芯片中。CPU运行控制算法和数据流管理。同时,与基于GPU或ASIC的解决方案相比,FPGA提供了许多优势,其中包括易于集成多个接口和传感器,以及适应新神经网络架构的灵活性(图4)。

undefined

图4:人工智能推理应用的不同技术的比较

FPGA固有的可重构性也使其能够利用不断演化的神经网络拓扑、更新的传感器类型和配置,以及更新的软件算法。使用SoC可以在需要时保证低而确定的延迟,例如,用于实时对象检测。同时,SoC也非常节能。从FPGA中获得最佳性能的主要挑战是在不失去精度的情况下将浮点模型有效地映射到定点FPGA实现(图5),这就是供应商工具的作用所在。

undefined

-

图5:将浮点模型有效映射到定点FPGA实现的过程称为压缩

选择合适的工具

现在有很多工具可以帮助我们降低实现第一个AI项目的门槛。例如,Vitis AI开发工具为用户提供了在FPGA上开发和部署用于实时推理的机器学习应用程序的工具。它们支持许多常见的机器学习框架,如Caffe和TensorFlow,PyTorch支持也将很快推出。它们使最先进的神经网络能够有效适应FPGA,用于嵌入式人工智能应用(图5)。

undefined

6核心板模块

结合标准的核心板模块(SoM),人工智能应用可以比以往更快地实现(图7)。

undefined

7:已被业界证实的人工智能应用解决方案,基于Xilinx Zynq UltraScale+ MPSoC

为了展示这种组合的性能和快速上市能力,信迈科技在短短几天内开发了一个基于人工智能的图像识别系统。这些图像是用一个连接到火星ST3底板的标准USB摄像头拍摄的。如需更高的性能,可使用底板上的MIPI接口。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/610850.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

产品推荐 | iWare基于Xilinx Zynq 7000系列 SODIMM SOM 开发套件

01 产品概述 iWave的Zyng 7000 SoC开发套件包含Xilinx的Z7020基于SoC的SODIMMSOM和PicoITX外形尺寸载体卡。SOM配备512MBDDR3RAM和8GBeMMC闪存支持,千兆以太网PHY和内置的802.11n适用于PS的Wi-Fi/BLE4.0Zynq 7020开发套件载板支持多种板上连接器,可通过…

Hive的简单学习二

一Hive 库的基本操作 1.1 建库 1.默认路径是/user/hive/warehouse 例如 我输入命令 create database text1 则text1出现在 warehouse目录下 2.指定位置创建数据库 create database text2 location /bigdata29/bigdata29db 后面的路径是hdfs的路径 3.最终写法 加上if n…

React状态管理比较原理

一、React状态管理库 按照23年下载使用顺序依次是: ReduxZustandMobXRecoilJotaiValtio 二、各状态管理库简要概述 Redux:Redux 是一个行业标准的状态管理库,它利用 flux 架构来创建不可变的数据存储。 优点 提供可预测的、一致的状态…

python毕业设计django游泳馆管理系统-flask

游泳馆管理系统具有信息管理功能的选择。游泳馆管理系统采用python技术,基于mysql开发,实现了首页,教练信息,培训信息,交流版块,活动公告,个人中心,后台管理等内容进行管理&#xff…

数据治理项目——深铁集团数据治理规划

目录 一、前言 二、数据治理内容与主要措施 2.1 实施背景 2.2 主要举措 2.2.1 制定数据战略目标 2.2.2 绘制数据治理蓝图 2.2.3 绘制数据治理制度 2.2.4 梳理数据资产目录 三、 应用效果 3.1 数据资产可视化管理 3.2 数据标准治理 3.3 集团大数据平台优化建设 一、…

hbase基础shell用法

HBase中用create命令创建表,具体如下: create student,Sname,Ssex,Sage,Sdept,course 此时,即创建了一个“student”表,属性有:Sname,Ssex,Sage,Sdept,course。因为HBase的表中会有一个系统默认的属性作为行键&#x…

HWOD:最长回文子串

一、知识点 1、两层遍历&#xff0c;第一层i从0到n&#xff0c;第二层j从n到i 2、每一次的遍历&#xff0c;i确定子串的左边界l&#xff0c;j确定子串的右边界r 3、判断l和r界定的子串是否回文&#xff1a;while(l<r){如果下标为l和r的元素不相等&#xff0c;就break;l;r…

React + three.js 3D模型骨骼绑定

系列文章目录 React 使用 three.js 加载 gltf 3D模型 | three.js 入门React three.js 3D模型骨骼绑定React three.js 3D模型面部表情控制 项目代码(github)&#xff1a;https://github.com/couchette/simple-react-three-skeleton-demo 项目代码(gitcode)&#xff1a;https:…

WEB漏洞-文件上传之WAF绕过及安全修复

#上传参数解析&#xff1a; Content-disposition&#xff1a;一般不可更改 Name&#xff1a;表单参数值&#xff0c;不能更改&#xff08;更改需要达到统一&#xff09; Filename&#xff1a;文件名&#xff0c;可以更改 Content-type&#xff1a;文件MIME&#xff0c;视情…

4.11Qt

完善网络聊天室客户端实现 工程文件 QT core gui network 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpSocket> #include<QMessageBox>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEcl…

Linux 函数学习 poll

1、Linux poll 函数 int poll(struct pollfd *fds, nfds_t nfds, int timeout); fds&#xff1a; 需要轮询的fd集合 nfds&#xff1a;需要轮询的fds数量 timeout&#xff1a;超时时间 返回值&#xff1a;0 超时&#xff0c;<0 发生异常&#xff0c;> 0 存在数据变化 …

ETL中如何运用好MQ消息集成

一、ETL的主要作用 ETL&#xff08;Extract, Transform, Load&#xff09;是数据仓库中的关键环节&#xff0c;其主要作用是将数据从源系统中抽取出来&#xff0c;经过转换和清洗后加载到数据仓库中。具体而言&#xff1a; Extract&#xff08;抽取&#xff09;&#xff1a;从…