如何使用FPGA加速机器学习算法?
出处:维库电子市场网 发布于:2016-05-26 14:10:48
当前,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 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 实现CNN的函数调用顺序
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 深入解析嵌入式 OPENAMP 框架:开启异核通信新时代2025/7/22 16:27:29
- 一文快速了解OPENWRT基础知识2025/7/14 16:59:04
- 独立 ADC 优势大揭秘:为何不可替代?2025/7/7 16:21:04
- 深入剖析:嵌入式中 RS485、RS422 和 RS232 的特点差异2025/7/5 15:07:54
- 揭秘嵌入式 MCU:浮点数据处理难点及应对策略2025/6/20 15:19:07