基于多机多卡的卷积神经网络性能优化
摘要 | 第5-6页 |
ABSTRACT | 第6-7页 |
第1章 绪论 | 第14-20页 |
1.1 论文研究的背景和意义 | 第14-15页 |
1.2 国内外研究现状 | 第15-17页 |
1.3 本文研究内容 | 第17页 |
1.4 论文的组织结构 | 第17-20页 |
第2章 卷积神经网络 | 第20-34页 |
2.1 神经网络构成要素 | 第20-22页 |
2.1.1 激活函数 | 第20-21页 |
2.1.2 代价函数 | 第21-22页 |
2.1.3 神经元连接方式 | 第22页 |
2.2 神经网络结构设计 | 第22-30页 |
2.2.1 卷积层 | 第22-23页 |
2.2.2 池化层 | 第23-24页 |
2.2.3 Softmax回归层 | 第24-25页 |
2.2.4 NIN层 | 第25-26页 |
2.2.5 Dropout层 | 第26-27页 |
2.2.6 Inception层 | 第27-29页 |
2.2.7 批量归一化层 | 第29-30页 |
2.3 卷积神经网络的训练 | 第30-33页 |
2.3.1 逐层反向传导 | 第30-31页 |
2.3.2 动量 | 第31-32页 |
2.3.3 图像数据扩展 | 第32-33页 |
2.4 本章小结 | 第33-34页 |
第3章 GPU体系结构及编程 | 第34-42页 |
3.1 GPU体系结构和CUDA程序设计 | 第34-37页 |
3.1.1 NVIDIA GPU架构综述 | 第34页 |
3.1.2 线程调度 | 第34-35页 |
3.1.3 CUDA内存存储结构 | 第35-37页 |
3.2 流与事件 | 第37-39页 |
3.3 GPGPU的编程原则 | 第39页 |
3.4 辅助分析工具 | 第39-41页 |
3.5 英伟达cuDNN深度学习库 | 第41页 |
3.6 本章小结 | 第41-42页 |
第4章 单机单卡性能优化 | 第42-58页 |
4.1 数据集扩展优化 | 第42-45页 |
4.2 卷积层性能优化 | 第45-48页 |
4.2.1 将卷积运算转化成矩阵乘法运算 | 第45-46页 |
4.2.2 转化成快速傅里叶变换 | 第46-47页 |
4.2.3 使用cudnn进行优化 | 第47-48页 |
4.3 池化层优化 | 第48页 |
4.4 Softmax层优化 | 第48-50页 |
4.5 分支与合并层 | 第50-51页 |
4.6 激活函数 | 第51-52页 |
4.7 代价函数 | 第52页 |
4.8 实验设计与实现 | 第52-56页 |
4.8.1 识别准确率 | 第53-55页 |
4.8.2 性能分析 | 第55-56页 |
4.9 本章小结 | 第56-58页 |
第5章 多机多卡性能优化 | 第58-76页 |
5.1 依赖库 | 第58页 |
5.2 并行方案 | 第58-59页 |
5.3 数据并行方案分析与设计 | 第59-65页 |
5.3.1 Purine数据并行架构简介 | 第59-60页 |
5.3.2 减少参数同步的频率 | 第60-63页 |
5.3.3 负载均衡 | 第63-64页 |
5.3.4 热启动训练方法 | 第64-65页 |
5.4 任务调度器模块 | 第65-71页 |
5.4.1 二分图抽象 | 第65-67页 |
5.4.2 自动并行性分析 | 第67-68页 |
5.4.3 减少并行开销 | 第68-70页 |
5.4.4 任务同步机制 | 第70-71页 |
5.5 迭代训练 | 第71-72页 |
5.6 实验与验证 | 第72-75页 |
5.6.1 单机多卡 | 第73-75页 |
5.6.2 多机多卡 | 第75页 |
5.7 本章小结 | 第75-76页 |
第6章 总结与展望 | 第76-78页 |
6.1 论文工作总结 | 第76-77页 |
6.2 论文工作展望 | 第77-78页 |
参考文献 | 第78-84页 |
致谢 | 第84-86页 |
在读期间发表的学术论文与取得的其他研究成果 | 第86页 |