x
x

如何使用FPGA加速机器学习算法

发布时间:2016-5-25 09:26    发布者:eechina
关键词: FPGA , 机器学习
作者:haoxingheng

当前,AI因为其CNN(卷积神经网络)算法出色的表现在图像识别领域占有举足轻重的地位。基本的CNN算法需要大量的计算和数据重用,非常适合使用FPGA来实现。上个月,Ralph Wittig(Xilinx CTO Office的卓越工程师) 在2016年OpenPower峰会上发表了约20分钟时长的演讲并讨论了包括清华大学在内的中国各大学研究CNN的一些成果。

在这项研究中出现了一些和CNN算法实现能耗相关的几个有趣的结论:

①限定使用片上Memory;
②使用更小的乘法器;
③进行定点匹配:相对于32位定点或浮点计算,将定点计算结果精度降为16位。如果使用动态量化,8位计算同样能够产生很好的结果。

在演讲中Wittig还提到了CNN相关的两款产品:CAPI-compatible Alpha DataADM-PCIE-8K5 PCIe加速卡和Auviz Systems提供的AuvizDNN(深度神经网络)开发库。

ADM-PCIE-8K5 PCIe加速卡

Alpha DataADM-PCIE-8K5 PCIe加速卡用于X86和IBM Power8/9数据中心和云服务,加速卡基于Xilinx Kintex UltraScale KU115 FPGA,支持Xilinx SDAcess基于OpenCL、C/C++的开发和基于Vivado HLx的HDL、HLS设计流程。

Alpha DataADM-PCIE-8K5 PCIe加速卡

Alpha DataADM-PCIE-8K5 PCIe加速卡

图1 Alpha DataADM-PCIE-8K5 PCIe加速卡

Alpha DataADM-PCIE-8K5 PCIe加速卡片上带32GB DDR4-2400内存(其中16GB含ECC),双通道SFP+支持双通道10G以太网接入。提供包括高性能PCIe/DMA在内的板级支持包(BSP) 、OpenPOWER架构的CAPI、FPGA参考设计、即插即用的O/S驱动和成熟的API等设计资源。

AuvizDNN开发库

深度学习技术使用大量的已知数据来找出一组权重和偏置值来匹配预期结果。处理被称之为训练,训练的结果是大量的模型,这一事实促使工程师们寻求使用GPU之类的专用硬件来进行训练和分类计算。

随着未来数据量的巨幅增长,机器学习将会搬到云端完成。这样就急需一种既可以加速算法,又不会大规模增加功耗的处理平台,在这种情况下,FPGA开始登场。

随着一些列的先进开发环境投入使用,软件开发工程师将他们的设计在Xilinx FPGA上实现变得更加容易。Auviz Systems开发的AuvizDNN库为用户提供优化的函数接口,用户可以针对不同的应用创建自定义的CNN。这些函数可以方便的通过Xilinx SDAcess这样的集成开发环境调用。在创建对象和数据池后,就会调用函数创建每一个卷积层、然后是致密层,最后是 softmax层,如下图2所示。

实现CNN的函数调用顺序

实现CNN的函数调用顺序

图2 实现CNN的函数调用顺序
本文地址:https://www.eechina.com/thread-166350-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • AOE | 时钟与时序(3/7):什么是时钟相位?
  • AOE | 时钟与时序(6/7):稳定性与精度的区别是什么?
  • AOE | 时钟与时序(4/7):频率与相位之间的关系是怎样的?
  • 初学者在电源电路设计中常犯的错误(以及如何避免)
  • 贸泽电子(Mouser)专区

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表