国内刊号:51-1307/TP
国际刊号:1001-9081
发布日期:
作者:龚鸣清, 叶煌, 张鉴, 卢兴敬, 陈伟
单位:1. 中国科学院 计算机网络信息中心, 北京 100190;2. 中国科学院大学, 北京 100049;3. 北京搜狗科技发展有限公司, 北京 100084
关键词:ARMv8,单指令多数据流计算,基础线性代数子程序库,高性能计算
基金:国家重点研发计划项目(2016YFB0201100,2017YFB0202803);国家自然科学基金资助项目(11871454,91630204,61531166003);中国科学院战略性先导科技专项(B类)(XDB22020102);中国科学院信息化专项(XXH13506-204)。
针对使用ARM处理器的移动智能设备执行神经网络推理计算效率不高的问题,提出了一套基于ARMv8架构的单精度浮点通用矩阵乘法(SGEMM)算法优化方案。首先,确定ARMv8架构的处理器执行SGEMM算法的计算效率受限于向量化计算单元使用方案、指令流水线和缓存未命中的发生概率;其次,针对三点导致计算效率受限的原因实现向量指令内联汇编、数据重排和数据预取三条优化技术;最后,根据语音方向的神经网络中常见的三种矩阵模式设计测试实验,实验中使用RK3399硬件平台运行程序。实验结果表示:方阵模式下单核计算速度为10.23 GFLOPS,达到实测浮点峰值的78.2%;在细长矩阵模式下单核计算速度为6.35 GFLOPS,达到实测浮点峰值的48.1%;在连续小矩阵模式下单核计算速度为2.53 GFLOPS,达到实测浮点峰值19.2%。将优化后的SGEMM算法部署到语音识别神经网络程序中,程序的实际语音识别速度取得了显著提高。
来源:2019年第6期
《计算机应用》期刊编辑部