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

FPGA---用FPGA加速机器学习应用(XILINX) & 内含与CPU,GPU比较 (2017xilinx的宣讲)_第1张图片FPGA---用FPGA加速机器学习应用(XILINX) & 内含与CPU,GPU比较 (2017xilinx的宣讲)_第2张图片

1 大量的控制逻辑

2 大量的caches

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

2 GPU

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

FPGA---用FPGA加速机器学习应用(XILINX) & 内含与CPU,GPU比较 (2017xilinx的宣讲)_第3张图片FPGA---用FPGA加速机器学习应用(XILINX) & 内含与CPU,GPU比较 (2017xilinx的宣讲)_第4张图片
黄色:控制
红色:cache
绿色:alu


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

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

3 FPGA

 

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

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

蓝色: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
 

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

 

3- 深度学习 落地

1 深度学习:

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

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

2 深度学习 挑战

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

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

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

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

3 memory bandwidth 缩小方法

1 让神经网络稀疏

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

 

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

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

 

 

4- FPGA优势

 

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

 

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

功耗GPU:2ghz 
FPGA: 500 m hz

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

 

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

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

 

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

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

c matlab实现之后如何转化?

matlab有workflow支持xilinx的 zynq

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

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

 

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

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

matconvnet

 

xilinx本身的开发工具

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

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

 

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

关于SDSoc

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

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

工具自动完成

 

xilinx深度学习开发板

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

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

 

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

1 caffe 的prototxt

caffe model

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

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

 

 

 

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

并行的运算单元

边上是buffer提供更好的性能

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

 

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

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

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

y表示使用了这个层

 

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

ssd
googlenet
fcn
vgg
alexnet

这些网络在此做出的实现

googlenet举例子,121优化到370帧

 

下图是一些开发版

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

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

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

 

现有的demo:

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

sony摄像头,双目摄像头

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

上述同时运行

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

 

 

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

2 FPGA 适合机器学习

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

 

 

一些可参考资源

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

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(altera开发板,FPGA)