- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PYNQ 中实现SoftMax函数加速器
引言
Xilinx 推出的ZYNQ 系列FPGA 中嵌入了一颗双核ARM ,既能发挥FPGA 的定
制特性,也能发挥处理器的通用特性,而且两个部分之间接口丰富、官方文档
齐全,可玩性极高。同时相应的开发板也很多。传统的 ZYNQ 开发板
(Zedboard 等)需要结合vivado 和SDK 两大工具分别对PL 、PS 端进行硬件和
软件开发。
图1 PYNQ 开发板实物图
PYNQ 是Xilinx 一项旨在使用Python 和一些lib 让SoC 开发更加简单的开发板。
传统的ZYNQ 开发板也能使其变为PYNQ 开发板,当引入Python 后就可以使用
一些Python 中强大的第三方库了例如Numpy 、Matplotlib 等。
1. SoftMax 函数介绍及计算方案介绍
SoftMax 函数是神经网络中的一种输出层函数,计算输出层的值,主要用于神
经网络最后一层。其表达式如下图所示
= ∑
=1
设计中的关键问题是 自然指数的计算问题,传统的方案有:
1. 查表法:同等规格定点数下精度极高,但若要在较大范围上计算需要消
耗大量资源。
2. CORDIC :利用迭代特性,资源复用,占用资源极小,常用于计算器中,
但在大规模计算中需要进行流水线化改造,且需要想办法克服最大旋转
角度限制的问题。
3. 泰勒级数展开:也即多项式拟合,该法较为灵活,多项式次数越高精度
越高,划分区间越细精度越高,是较为常用的方法。
此次,针对指数计算的特性,设计了一种原理简单的计算方案,并且通过
了板级测试。根据其计算特性称其为基底查表法(ノ∀`*),其基本原理如下图
所示:
Cal exp(1.23)
Base split ROM_1
exp(0)
1 3 exp(1)
2 ...
exp(9)
ROM_2
ROM_1 ROM_2 ROM_3 exp(0.0)
原创力文档


文档评论(0)