FPGA---用FPGA加速机器学习应用(XILINX) & 内含与CPU,GPU比较 (2017xilinx的宣讲)

https://www.bilibili.com/video/av23770632

 

1- 开发语言

起初是verilog/VHDL硬件语言
现在是c/c++/opencl
基于模型的 matlab/simulink

2- CPU, GPU, FPGA比较

1 CPU

冯诺依曼架构:
intel的CPU,
X86的CPU, 
ARM的CPU

1 大量的控制逻辑

2 大量的caches

3 ALU 运算单元alu不多,并行计算能力差1 CPU

2 GPU

绿色是计算单元 几千个cuda core PS:貌似是


黄色:控制
红色:cache
绿色:alu


1 有限的控制功能 GPU在控制方面很弱,
2 高吞吐率
3 在并行计算很强

cache很少:需要放数据高,很大的DDR

3 FPGA

 

蓝色:DSP,硬件运算单元, 多的有几千个
绿色:BRAM, 由他得到数据给DSP运算, 取代了去DDR里面取数
浅蓝色: CLD ps:貌似是  查找表,触发器
1 边上有很多IO,可编程(高低速都有)
2 许多存储单元(片内取数,无需去DDR) (有利于深度学习)

 

4 SOC with FPGA

黄色: 是传统的FPGA
上面部分: cpu, ddr的存储器, 外设(处理器的子系统,有多核arm处理器)
上面处理器 通过片内高速总线与 下面的FPGA互联, 
其实是放在 一个带 上面的soc, 
带ARM的FPGA, or是带可编程加速单元(FPGA)的ARM
 

 

3- 深度学习 落地

1 深度学习:

1 训练 FPGA极极少用于训练,高性能的GPU完成
2 推演 FPGA用于这部分

2 深度学习 挑战

1 计算大 2  存储带宽大 3 功耗大

全连接,数据量大,memory bandwidth intensive 需要65000,000个数据的搬运, 需要大内存DDR 或者 放在片内

3 memory bandwidth 缩小方法

1 让神经网络稀疏

 

2  量化, 浮点变整数 float32 ->int8

 

 

4- FPGA优势

 

 

卷积是独立的,映射到dsp,并行计算
数据搬运:如果放在DDR取数速度慢,虽然计算得快,取数比较慢。解决办法:放在片内的单元

功耗GPU:2ghz 
FPGA: 500 m hz

 

机器学习比较:与英伟达的tegra设备

 

5- 软件算法实现之后 转化为硬件语言

c matlab实现之后如何转化?

matlab有workflow支持xilinx的 zynq

底层编译器,把c转化为硬件语言

 

已有用matlab写了很多网络的实现

matconvnet

 

xilinx本身的开发工具

HLx,输入是c/c++,opencl编写的程序,通过HLx编译生成RTL
生成IP挂到底层的。。。没听清

 

关于SDSoc

1 面向的是基于linx的嵌入式操作系统
c/c++
2 profiling找出算法中哪个部分占用cpu资源比较多,标记函数,硬件加速

工具自动完成

 

xilinx深度学习开发板

优化好了底层,只需调用即可,同时保持了底层的性能

 

1 caffe 的prototxt

caffe model

底层已经帮我们实现了,底层的库可以理解为硬件的设计

2 分析网络结构,调度器把相应的指令换成硬件设计

 

 

 

并行的运算单元

边上是buffer提供更好的性能

开发软件的人不用关心下面硬件的设计

 

下图是xilinx的开发板帮我们做好的

relu激活函数
全连接层
softmax
带孔卷积
nms
最大池化 
l2正则化 
batch 批处理
卷积层

y表示使用了这个层

 

ssd
googlenet
fcn
vgg
alexnet

这些网络在此做出的实现

googlenet举例子,121优化到370帧

 

下图是一些开发版

zcu102  开发板
支持opencv,深度学习的算法: 
xFopencv xFdnn

下面是xilinx测试好的即插即用的设备(可插4个sensor)
sony IMX274 等

 

现有的demo:

1光流 +2深度视觉+3行人检测

sony摄像头,双目摄像头

1光流算法
2立体摄像头 立体匹配算法,产生深度图像
3训练好的model放在sd卡,做行人检测

上述同时运行

 

 

2 FPGA 适合机器学习

3 基于模型的设计  &  设计好的库,提高开发效率

 

 

一些可参考资源

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机视觉-Archer

图像分割没有团队的同学可加群

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值