神经网络专用编程语言
| 摘要 | 第5-6页 |
| ABSTRACT | 第6页 |
| 主要符号对照表 | 第12-13页 |
| 第一章 绪论 | 第13-19页 |
| 1.1 神经网络的发展历程 | 第13-15页 |
| 1.1.1 神经网络技术发展 | 第13页 |
| 1.1.2 神经网络应用的发展 | 第13-14页 |
| 1.1.3 神经网络计算平台发展 | 第14-15页 |
| 1.2 神经网络编程面临的挑战 | 第15-17页 |
| 1.3 主要研究内容和贡献 | 第17-18页 |
| 1.4 论文的组织结构 | 第18-19页 |
| 第二章 研究背景 | 第19-31页 |
| 2.1 神经网络算法 | 第19-21页 |
| 2.1.1 新的层类型 | 第19-20页 |
| 2.1.2 更复杂的网络结构 | 第20页 |
| 2.1.3 网络规模的增长 | 第20-21页 |
| 2.2 神经网络的运算平台 | 第21-26页 |
| 2.2.1 CPU | 第21页 |
| 2.2.2 GPU | 第21-22页 |
| 2.2.3 神经网络专用处理器(ASICs) | 第22-26页 |
| 2.3 领域专用语言(DSL) | 第26页 |
| 2.4 神经网络编程 | 第26-29页 |
| 2.4.1 神经网络框架 | 第26-27页 |
| 2.4.2 神经网络专用编程语言与编译器 | 第27-29页 |
| 2.5 本章小结 | 第29-31页 |
| 第三章 NNL:一种神经网络专用编程语言 | 第31-43页 |
| 3.1 语言特性 | 第31-32页 |
| 3.1.1 神经网络的函数抽象 | 第31-32页 |
| 3.2 语法和语义 | 第32-39页 |
| 3.2.1 template | 第33-34页 |
| 3.2.2 block | 第34-36页 |
| 3.2.3 gaph | 第36-37页 |
| 3.2.4 topo | 第37-38页 |
| 3.2.5 NNL程序中的时序定义 | 第38-39页 |
| 3.3 NNL代码示例 | 第39-41页 |
| 3.3.1 block示例 | 第39-40页 |
| 3.3.2 全连接层 | 第40-41页 |
| 3.4 本章小结 | 第41-43页 |
| 第四章 神经网络专用编程语言的编译 | 第43-55页 |
| 4.1 NNL编译器简述 | 第43-44页 |
| 4.2 展开图生成 | 第44-48页 |
| 4.2.1 语法图的递归展开 | 第44页 |
| 4.2.2 节点信息的推断 | 第44-46页 |
| 4.2.3 反向连接补全 | 第46-47页 |
| 4.2.4 时序展开 | 第47-48页 |
| 4.3 优化过程 | 第48-50页 |
| 4.3.1 block融合 | 第49页 |
| 4.3.2 block拆分 | 第49-50页 |
| 4.4 代码生成 | 第50-53页 |
| 4.4.1 核函数的生成 | 第50-53页 |
| 4.4.2 执行图的分析与代码生成 | 第53页 |
| 4.5 本章小结 | 第53-55页 |
| 第五章 实验 | 第55-61页 |
| 5.1 实验方法 | 第55-57页 |
| 5.1.1 测试基准集 | 第55-56页 |
| 5.1.2 测试平台 | 第56页 |
| 5.1.3 实验的对照基准 | 第56-57页 |
| 5.2 实验结果评估 | 第57-58页 |
| 5.3 本章小结 | 第58-61页 |
| 第六章 总结与展望 | 第61-63页 |
| 6.1 本文的工作总结 | 第61页 |
| 6.2 未来的工作 | 第61-63页 |
| 参考文献 | 第63-67页 |
| 致谢 | 第67-69页 |
| 在读期间发表的学术论文与取得的研究成果 | 第69页 |