一文了解二值神经网络性能提升1000倍是真是假

电子说

1.4w人已加入

描述

在很多大型计算数据中心需要完成超大规模的数据处理,这意味着需要大量的计算,因此对于系统性能的要求则不断提升,最开始我们不断提升处理器的运行频率、增加处理器核心数量、采用更多的进程服务,但是这些方法会带来一些其他的问题,比如功耗的增加需要配备更大成本更高的电源、散热量显著增加则需要设置更大更好的散热片或者风扇,这些问题无疑增加了成本。因此最好的方式就是采用FPGA实现硬件加速,然而很多软件工程师对于硬件开发语言VHDL/Verilog不熟悉无法实现开发流程上的衔接,因此Xilinx推出了全新的SDSoC开发环境,软件工程使用C/C++语言就可以实现FPGA的硬件加速。

神经网络

图1:Xilinx SDSoC从软件到硬件的开发流程

SDSoC提供给用户的是一个可以用来完成整个Zynq SoC和MPSoC开发的基于Eclipse的软件环境,这个环境对那些已经在使用DSP芯片、视频SoC 和CPU处理器的嵌入式开发人员来说是在熟悉不过的。SDSoC的核心技术则是界首创的全系统优化编译器,这个编译器,不仅可以针对基于ARM的处理器系统,也可以针对片内的可编程逻辑。SDSoC开发环境旨在为系统架构师以及软件开发团队提供一个可以使用C / C ++来快速配置,并同步生成构建系统所需的各类软硬件架构的可能。软硬件统一的编译器,可以从系统视角出发,带来最佳的系统构建与连接,优化的存储器接口和软件驱动等。如下图所示是采用SDSoC实现的不同实例的性能提升效果:

神经网络

不同实例带来的性能提升:

双目(摄像头)图像采集与3D显示——292倍

视频的Sobel滤波处理——30倍

二值神经网络——1000倍

对于再好的CPU处理器或者更多核心的处理器也很难带来性能上1000倍的提升,即使30倍也是一大瓶颈,因此无论我们怎样绞尽脑汁优化C/C++代码在传统处理器上性能提升的效果也是非常有限的,所以采用“Xilinx SDSoC + All Programmable SoC + C/C++”才是最佳的解决方案。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分