论文部分内容阅读
随着智能时代的到来,深度学习在图像识别、网络搜索、在线导航等领域发挥着越来越重要的作用。面向深度学习的专用神经网络处理器(简称IPU)设计了专有的运算部件,因此在处理图像识别等关键智能应用上可达CPU百倍的能效。但是,编程困难仍然是神经网络处理器走向推广应用的壁垒。 本文为专用的神经网络处理器实现了一个高效、易用的编程框架,主要工作包括以下几个方面: 1.调研了业界开展的深度学习硬件加速器研究,并对比了开源社区中被广泛使用的深度学习编程框架,以及这些编程框架常用的优化方法。 2.实现了面向神经网络处理器的编程框架。以MXNet作为研究基础,完成了神经网络处理器设备支持、引擎调度、内存管理、网络模型基本操作的扩展。 3.建立了神经网络处理器执行时间的评估模型。依据对该性能模型的分析,提出了“层融合”优化和访存优化。“层融合”优化减少了处理器的启动次数和多个操作中间结果的载入载出。访存优化实现了在多个Batch间共享网络模型参数,减少数据拷贝,并由编程框架确定了最佳的BatchSize,使得预测所有图片需要的Batch数量减少,总的硬件启动开销降低。 在寒武纪神经网络处理器平台上对本文的编程框架进行功能验证和性能评估,实现了AlexNet、CaffeNet、VGG、GoogleNet、ResNet等典型的卷积神经网络模型。对比CPU上的Top1和Top5准确率,证实了本文实现的编程框架可以正确的运行在神经网络处理器上。并且经过“层融合”优化和访存优化后神经网络在IPU上的执行时间相对于优化前有10%到40%的加速比提升,有效提升了神经网络处理器的执行效率,充分发挥了IPU的性能。