ARM嵌入式DNN性能优化:基于PerfNet与OpenBLAS的深度学习加速

需积分: 10 0 下载量 7 浏览量 更新于2024-07-17 收藏 1.91MB PDF 举报
ARM嵌入式系统DNN性能优化的研究主要关注于AI与计算的融合,特别是在深度学习应用中,特别是针对服务器与嵌入式终端的场景。研究者张先轶来自PerfXLab澎峰科技,他们采用了PerfNet框架,这是一个基于MXNet的高性能深度学习框架,适用于x86、ARM、POWER等不同架构的设备。性能优化的核心是 PerfDNN 库,它支持低精度计算,使得模型能够在资源有限的嵌入式设备上运行得更高效。 在性能优化策略上,作者提到了将卷积层(Convlayer)和全连接层(FClayer)的计算任务转化为BLAS(Basic Linear Algebra Subprograms)操作,这利用了BLAS库的强大矩阵处理能力。BLAS是专门为数值计算设计的一组函数,包括BLAS1级(向量-向量)、BLAS2级(矩阵-向量)和BLAS3级(矩阵-矩阵)运算,它们能有效提升矩阵计算的效率。2011年,OpenBLAS起源于GotoBLAS2,作为全球顶级的开源矩阵计算库,它在2016年获得了中国计算机学会科技进步二等奖,并逐渐成为主流Linux发行版和OpenHPC套件的一部分。 OpenBLAS支持多种处理器架构,如Intel、AMD、ARM(包括AArch64)、MIPS、龙芯以及IBM POWER,同时也兼容多种操作系统,包括Linux、Windows、MacOSX和FreeBSD,甚至对于移动平台如Android也提供了支持。性能测试部分,文章提到了Intel SandyBridge和龙芯3A处理器上的OpenBLAS表现,以及GEMM(矩阵乘法)的优化策略,比如通过ijk三重循环实现基础版本,以及N方向分块来提高Cache利用率,从而进一步提升矩阵运算的性能。 这份报告深入探讨了如何利用BLAS库和OpenBLAS技术,针对ARM嵌入式系统进行DNN性能优化,以适应大规模数据和复杂计算任务的需求,为嵌入式设备上的深度学习应用提供高效且可扩展的解决方案。