全新开源工具,助力FPGA上轻松实现二值化神经网络

神经网络技术起源于上世纪五、六十年代,当时叫感知机,拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果,早期感知机的推动者是ronsenblatt。后来又发展到多层感知机,而多层感知机在摆脱早期离散传输函数的束缚,在训练算法上使用werbos发明的反向传播bp算法,这个就是现在大家常数的神经网络nn,而目前存在的神经网络最常见的有:ann,rnn,以及cnn。cnn是一种多层神经网络,擅长处理图像特别是大图像的相关机器学习问题,它可以通过一系列方法,成功将数据量庞大的图像识别问题不断将维,最终使其能够被训练。
gunness开源工具
一个叫做gunness的全新的开源工具,可以帮助用户通过sdsoc 开发环境很轻松的将二值化神经网络(bnns)实现在zynq soc芯片和zynq ultrascale+ mpsoc芯片上。guinness基于gui工具而开发,内部实现利用深度学习框架来训练一个二值的cnn。关于这部分内容在今年ieee的国际并行和分布式处理的workshop上有一篇论文对此进行了较为全面的介绍(论文名为“on-chip memory based binarized convolutional deep neural network applying batch normalization free technique on an fpga”),论文中,作者haruyoshi yonekawa和hiroki nakahara描述了一个他们实现的系统:他们通过在xilinx zcu102 eval 套件上实现一个用于运行vgg-16 benchmark的二值化cnn逻辑系统,其中zcu102套件其实是基于zynq ultrascale+ mpsoc芯片而搭建的。在后来比利时 ghent的fpl2017中作者nakahara就guinness工具再次进行了介绍。
根据ieee中发表的这篇paper所述,在zynq上实现的cnn相比较与在arm cortex-a57处理器上运行cnn,运行速度加快了136.8倍,并且功率有效性也提高了44.7倍之多。与在nvidia maxwell gpu上运行同样的cnn相比较,基于zynq实现的bnn速度加快了4.9倍之多,功耗效率也增长了3.8倍。
不过,对于我们这些游离爱好者来说最值得庆幸的是整个guinness工具可以在github上access到(https://github.com/hirokinakahara/guinness)。
图:xilinx zcu102 zynq ultrascale+ mpsoc eval kit
目前的比较火的概念莫过于机器学习,深度学习,人工智能这三方面了,而这些技术的实现都离不开神经网络的训练,可以说当前技术的热点非神经网络莫属。但是神经网络算法往往较为复杂,软件实现速度往往无法达到需求,专用芯片设计又功能单一且成本高,而通过fpga实现的话,不仅避免的单用途高成本的投入,同时得到了用户期望的运算速度,一举两得。也相信在以后fpga将会为神经网络的研究实现方面有更大的发挥空间。

OPPO发布全球最轻最薄双目智能眼镜
怎样在Arduino上接入SD卡模块
单片机自关机电路原理图
iPhone12系列或迎来销量上的大突破
OPPO R11即将来临,搭载骁龙660,性能突飞猛进!
全新开源工具,助力FPGA上轻松实现二值化神经网络
黑蚂蚁智能电话机器人的功能有哪些
ZIGBEE应用系统设计瓶颈的突破和解决方案
神波05P加强型蓄电池修复仪
世界最大规模源网荷友好互动系统如何实现再扩容?
「论坛活动」AGV应用潜入深水区,科聪如何赋能客户轻松应对?
特斯拉没有做足工作防止滥用自动驾驶系统?特斯拉发布车祸新声明
TMS320DM365的特点及基于高速网络摄像机系统的设计
宁德时代动力电池份额还有增长空间?
【节能学院】能耗监测管理系统在舜通大厦及轨道交通R3线控制中心大楼项目的研究与应用
无人机反制系统的技术优势都有哪些
NI模块化平台方案,助力国产飞机翱翔蓝天
智慧教育综合管理系统的结构组成及应用特点分析
中国铁塔正式对5G共享室内微站标准化设计进行国内公开比选
i.MX RT1024:移植MODBUS TCP协议栈教程