[发明专利]一种基于Arm架构的NumPy运算加速优化方法在审
申请号: | 202110062369.5 | 申请日: | 2021-01-18 |
公开(公告)号: | CN112783503A | 公开(公告)日: | 2021-05-11 |
发明(设计)人: | 张文毅;梁嘉迪;杜云飞;卢宇彤 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 张金福 |
地址: | 510260 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 arm 架构 numpy 运算 加速 优化 方法 | ||
1.一种基于Arm架构的NumPy运算加速优化方法,其特征在于,包括以下步骤:
S1:配置Arm架构环境,获取NumPy源代码;
S2:对NumPy源代码中待优化函数进行类型判断:若待优化函数为数值计算类函数,则执行S3步骤;若待优化函数为非数值计算类函数,则跳转执行S4步骤;
S3:对待优化函数进行循环体优化;
S4:对待优化函数进行多线程处理;
S5:将完成函数优化的NumPy源代码进行编译优化。
2.根据权利要求1所述的基于Arm架构的NumPy运算加速优化方法,其特征在于,所述数值计算类函数包括线性代数函数、超越函数、算术函数、统计函数;所述非数值计算类函数包括数组创建函数、数组形状处理函数、字符串函数、位运算函数、条件筛选函数。
3.根据权利要求1所述的基于Arm架构的NumPy运算加速优化方法,其特征在于,所述S3步骤中,对待优化函数进行循环体优化的具体步骤包括对循环体内部语句的SIMD改写优化,以及对循环体本身进行优化。
4.根据权利要求3所述的基于Arm架构的NumPy运算加速优化方法,其特征在于,在对循环体本身进行优化时,根据循环体的特性对循环体本身进行拆分、合并和展开操作;其中:
对时间复杂度大于或等于O(N2)的循环体进行拆分操作,将循环体拆分为若干小循环;
对时间复杂度小于O(N2)的循环体进行进行合并操作,将待优化函数上下流中的若干循环体合并至一个循环体;
对循环之间存在循环依赖或访问冲突的循环体采用循环展开操作。
5.根据权利要求4所述的基于Arm架构的NumPy运算加速优化方法,其特征在于,对于时间复杂度大于或等于O(N2)的循环体,将循环体中内层的循环语句作为单独的整体,得到其对应的计算结果,然后将所述计算结果作为原循环体外层循环的输入,并另起一个新的循环在原程序的后方,实现循环体的拆分操作;
对于时间复杂度小于O(N2)的循环体,将有依赖关系的变量所在的循环进行合并,位于原程序前方的循环体作为合并后的循环体的内循环,位于原程序后方的循环体作为合并后的循环体的外循环,实现循环体的合并操作。
6.根据权利要求4所述的基于Arm架构的NumPy运算加速优化方法,其特征在于,对于循环之间存在循环依赖或访问冲突的循环体,采用手工循环展开操作;其具体步骤如下:将待处理循环体的循环内容进行手动改写,在一次循环体内完成大于或等于两次的操作。
7.根据权利要求1所述的基于Arm架构的NumPy运算加速优化方法,其特征在于,所述S4步骤中,对待优化函数进行多线程处理的具体步骤包括使用OpenMP进行多线程改写、合理化并行执行的任务大小、避免不必要的共享写入。
8.根据权利要求7所述的基于Arm架构的NumPy运算加速优化方法,其特征在于,所述Arm架构中的一个计算节点包括128个核心;在所述S4步骤中,对待优化函数使用OpenMP进行多线程改写时,在需要多线程处理的语句前添加调用指令,使其能将所控制的语句分发到各核心上实行;
对待优化函数进行合理化并行执行的任务大小时,对计算节点的任务大小进行线性化划分,然后对划分的任务进行实测,选取出合理的任务细粒度划分下的运行时间最短的任务大小作为核心的最小任务大小;
对待优化函数进行避免不必要的共享写入时,通过OpenMP代码中使用reduction子句替代直接写入共享变量,在循环过程中写入线程私有变量。
9.根据权利要求1所述的基于Arm架构的NumPy运算加速优化方法,其特征在于,所述S5步骤中,对完成函数优化的NumPy源代码进行编译优化的具体步骤包括自动向量化处理、选择编译优化选项。
10.根据权利要求9所述的基于Arm架构的NumPy运算加速优化方法,其特征在于,对完成函数优化的NumPy源代码进行自动向量化处理时,设定Arm架构中的编译器自动采用NeonIntrinsics对程序的编译过程进行优化;
对完成函数优化的NumPy源代码进行选择编译优化选项处理时,对Arm架构中的编译器设置O2优化选项,执行不包含时间和空间这种的优化,且不进行循环打开和函数内联。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110062369.5/1.html,转载请声明来源钻瓜专利网。
- 上一篇:纺织辊单列十字路径移位机架
- 下一篇:导航方法和装置