《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 业界动态 > 如何使用FPGA加速机器学习算法

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

2016-05-27
作者: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设计流程。

1.png

  图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所示。

2.png

  图2 实现CNN的函数调用顺序


本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。