神经网络专用编程语言
摘要 | 第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页 |