微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 云中的机器学习:FPGA上的深度神经网络

云中的机器学习:FPGA上的深度神经网络

时间:06-04 来源:互联网 点击:

加法。通过流水线处理,第一个输出的时延略有增加,但每个周期我们都可获得一个输出。

使用AuvizDNN在FPGA上实现的完整CNN就像从C/C++程序中调用一连串函数。在建立对象和数据容器后,首先通过函数调用来创建每个卷积层,然后创建致密层,最后是创建softmax层,如图 4 所示。

AuvizDNN是Auviz Systems公司提供的一种函数库,用于在FPGA上实现CNN。该函数库提供轻松实现CNN所需的所有对象、类和函数。用户只需要提供所需的参数来创建不同的层。例如,图5中的代码片段显示了如何创建AlexNet中的第一层。

AuvizDNN提供配置函数,用以创建CNN的任何类型和配置参数。AlexNet仅用于演示说明。CNN 实现内容作为完整比特流载入FPGA并从C/C++程序中调用,这使开发人员无需运行实现软件即可使用AuvizDNN。

FPGA具有大量的查找表(LUT)、DSP模块和片上存储器,因此是实现深度CNN的最佳选择。在数据中心,单位功耗性能比原始性能更为重要。数据中心需要高性能,但功耗要在数据中心服务器要求限值之内。

像赛灵思Kintex UltraScale 这样的FPGA器件可提供高于14张图像/秒/瓦特的性能,使其成为数据中心应用的理想选择。图6介绍了使用不同类型的FPGA所能实现的性能。

一切始于C/C++
卷积神经网络备受青睐,并大规模部署用于处理图像识别、自然语言处理等众多任务。随着CNN从高性能计算应用(HPC)向数据中心迁移,需要采用高效方法来实现它们。

FPGA可高效实现CNN。FPGA的具有出色的单位功耗性能,因此非常适用于数据中心。

AuvizDNN函数库可用来在FPGA上实现CNN。AuvizDNN能降低FPGA的使用复杂性,并提供用户可从其C/C++程序中调用的简单函数,用以在FPGA上实现加速。使用AuvizDNN时,可在AuvizDNN 库中调用函数,因此实现FPGA加速与编写C/C++程序没有太大区别。


图 1 – AlexNet是一种图像识别基准,包含五个卷积层(蓝框)和三个致密层(黄)。


图 2 – AlexNet中的卷积层执行3D卷积、激活和子采样。


图 3 – 图表展示了AlexNet中涉及的计算复杂性和数据传输数量。


图 4 - 实现CNN时的函数调用顺序。



图 5 – 使用AuvizDNN创建AlexNet的L1的代码片段。


图 6 – AlexNets的性能因FPGA类型不同而不同。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top