全连接神经网络在FPGA上的实现与优化
摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第1章 绪论 | 第15-23页 |
1.1 研究背景 | 第15-18页 |
1.1.1 人工神经网络 | 第15-16页 |
1.1.2 全连接神经网络的发展与应用 | 第16-17页 |
1.1.3 搭载神经网络的硬件平台 | 第17-18页 |
1.2 全连接神经网络在FPGA上面临的挑战 | 第18-19页 |
1.3 本文的主要工作与目标 | 第19-20页 |
1.3.1 全连接神经网络的算法实现与优化 | 第19-20页 |
1.3.2 系统特征分析与优化 | 第20页 |
1.4 论文结构 | 第20-23页 |
第2章 相关工作 | 第23-29页 |
2.1 FPGA架构 | 第23页 |
2.2 FPGA编程方式的发展 | 第23-24页 |
2.3 人工神经网络模型 | 第24-26页 |
2.3.1 从感知机到多隐层神经网络 | 第24页 |
2.3.2 全连接神经网络 | 第24-25页 |
2.3.3 卷积神经网络 | 第25页 |
2.3.4 循环神经网络 | 第25-26页 |
2.4 研究现状 | 第26-28页 |
2.4.1 利用硬件描述语言实现的网络 | 第26-27页 |
2.4.2 利用OpenCL实现的网络 | 第27-28页 |
2.5 本章小结 | 第28-29页 |
第3章 全连接神经网络的算法实现与优化 | 第29-51页 |
3.1 OpenCL编程框架 | 第29-30页 |
3.2 FPGA异构平台的架构 | 第30-32页 |
3.3 OpenCL在FPGA系统上的开发模型 | 第32-35页 |
3.3.1 平台模型 | 第32页 |
3.3.2 执行模型 | 第32-33页 |
3.3.3 内存模型 | 第33-35页 |
3.3.4 编程模型 | 第35页 |
3.4 全连接操作算法分析 | 第35页 |
3.5 全连接层算法实现与优化 | 第35-42页 |
3.5.1 Merge Bias | 第35-36页 |
3.5.2 分组设计 | 第36-37页 |
3.5.3 数据复用设计 | 第37-42页 |
3.6 激活函数算法分析 | 第42-45页 |
3.6.1 Sigmoid函数与tanh函数 | 第42-44页 |
3.6.2 ReLU函数 | 第44-45页 |
3.7 激活函数的实现与优化 | 第45-48页 |
3.7.1 Sigmoid函数与实现方法 | 第45页 |
3.7.2 泰勒级数法 | 第45页 |
3.7.3 查表法 | 第45-46页 |
3.7.4 分段函数逼近法 | 第46-47页 |
3.7.5 差分查表法 | 第47-48页 |
3.8 本章小结 | 第48-51页 |
第4章 系统特征分析与优化 | 第51-65页 |
4.1 FPGA的访存机制 | 第51-53页 |
4.1.1 全局访存 | 第51-52页 |
4.1.2 本地存储 | 第52页 |
4.1.3 访存聚合 | 第52页 |
4.1.4 流式访存 | 第52-53页 |
4.2 数据传输优化 | 第53-54页 |
4.2.1 DMA技术 | 第53-54页 |
4.2.2 避免冗余数据传输 | 第54页 |
4.2.3 提高计算比重 | 第54页 |
4.3 存储访问优化 | 第54-57页 |
4.3.1 全局访存优化 | 第54-56页 |
4.3.2 全局存储的配置模式 | 第56-57页 |
4.3.3 本地访存优化 | 第57页 |
4.4 数据处理优化 | 第57-63页 |
4.4.1 多流水线机制 | 第57-58页 |
4.4.2 向量化 | 第58-60页 |
4.4.3 流水线复制 | 第60页 |
4.4.4 循环展开 | 第60-61页 |
4.4.5 平衡树 | 第61-63页 |
4.4.6 浮点数精度截取 | 第63页 |
4.4.7 半精设计 | 第63页 |
4.5 本章小结 | 第63-65页 |
第5章 实验验证 | 第65-73页 |
5.1 实验环境 | 第65页 |
5.1.1 硬件平台 | 第65页 |
5.1.2 神经网络模型 | 第65页 |
5.2 算法设计与优化 | 第65-67页 |
5.2.1 分组划分 | 第65-67页 |
5.2.2 数据复用 | 第67页 |
5.2.3 激活函数优化 | 第67页 |
5.3 系统优化 | 第67-69页 |
5.3.1 数据传输优化 | 第67-68页 |
5.3.2 存储访问优化 | 第68页 |
5.3.3 循环展开和向量化 | 第68-69页 |
5.3.4 半精策略与流水线复制 | 第69页 |
5.4 对比 | 第69-70页 |
5.5 本章小结 | 第70-73页 |
第6章 总结与展望 | 第73-77页 |
6.1 工作总结 | 第73-74页 |
6.2 工作展望 | 第74-77页 |
参考文献 | 第77-81页 |
致谢 | 第81-83页 |
在读期间发表的学术论文与取得的研究成果 | 第83-85页 |
在读期间参与的科研项目 | 第85页 |