[发明专利]一种基于Arm架构的NumPy运算加速优化方法在审
申请号: | 202110062369.5 | 申请日: | 2021-01-18 |
公开(公告)号: | CN112783503A | 公开(公告)日: | 2021-05-11 |
发明(设计)人: | 张文毅;梁嘉迪;杜云飞;卢宇彤 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 广州粤高专利商标代理有限公司 44102 | 代理人: | 张金福 |
地址: | 510260 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 arm 架构 numpy 运算 加速 优化 方法 | ||
本发明为克服Arm平台上原生NumPy库存在计算性能低下的缺陷,提出一种基于Arm架构的NumPy运算加速优化方法,包括以下步骤:配置Arm架构环境,获取NumPy源代码;对NumPy源代码中待优化函数进行类型判断:若待优化函数为数值计算类函数,则对待优化函数进行循环体优化,再对待优化函数进行多线程处理;否则直接对待优化函数进行多线程处理;然后将完成函数优化的NumPy源代码进行编译优化。本发明对Arm架构环境中的NumPy源代码进行优化,根据NumPy源代码中的函数类型执行循环体优化、多线程处理等操作,能够有效提高了依赖于NumPy的各类Python程序运行效率。
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种基于Arm架构的NumPy运算加速优化方法。
背景技术
作为一种被广泛使用的解释型语言,Python以它的易用性、面向对象、支持众多的第三方模块等特性逐渐成为深受科学家和工程师喜爱的编程语言。其中,NumPy(NumericalPython,一种开源的数值计算扩展)模块以它强大的计算能力成为数据科学家们争相推崇的一个优质第三方库。NumPy的函数功能完备,不仅提供了有关线性代数的计算接口,还提供了有关算术运算、统计、字符串、位运算、排序等计算接口以及I/O等操作接口。尽管如此,NumPy在面对人工智能、科学计算与实际工程运用等领域日益增加的计算量时,它的运算速度无法令人满意。
对于NumPy的加速和优化依赖于平台环境。Arm作为当前计算机芯片的重要架构方式之一,相较于x86芯片架构提供了精简指令集(RISC)和低功耗等截然不同的特性,这也导致针对x86架构的软件优化方法无法直接移植到Arm处理器上。Armv8的存储体系结构主要分为CPU寄存器、多级Cache缓存和内存,计算数据由于需要与CPU计算元器件ALU(arithmetic and logic unit,算术逻辑单元)交互,故计算时都存放在CPU寄存器中,因此普遍存在运算速度慢、运算效率低的问题。
发明内容
本发明为克服上述现有技术所述的Arm平台上原生NumPy库存在计算性能低下的缺陷,提供一种基于Arm架构的NumPy运算加速优化方法。
为解决上述技术问题,本发明的技术方案如下:
一种基于Arm架构的NumPy运算加速优化方法,包括以下步骤:
S1:配置Arm架构环境,获取NumPy源代码;
S2:对NumPy源代码中待优化函数进行类型判断:若待优化函数为数值计算类函数,则执行S3步骤;若待优化函数为非数值计算类函数,则跳转执行S4步骤;
S3:对待优化函数进行循环体优化;
S4:对待优化函数进行多线程处理;
S5:将完成函数优化的NumPy源代码进行编译优化。
作为优选方案,所述数值计算类函数包括线性代数函数、超越函数、算术函数、统计函数;所述非数值计算类函数包括数组创建函数、数组形状处理函数、字符串函数、位运算函数、条件筛选函数。
作为优选方案,所述S3步骤中,对待优化函数进行循环体优化的具体步骤包括对循环体内部语句的SIMD(Single Instruction Multiple Data,单指令流多数据流)改写优化,以及对循环体本身进行优化。
作为优选方案,在对循环体本身进行优化时,根据循环体的特性对循环体本身进行拆分、合并和展开操作;其中:
对时间复杂度大于或等于O(N2)的循环体进行拆分操作,将循环体拆分为若干小循环;其中N表示循环体的问题规模;
对时间复杂度小于O(N2)的循环体进行进行合并操作,将待优化函数上下流中的若干循环体合并至一个循环体;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110062369.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:纺织辊单列十字路径移位机架
- 下一篇:导航方法和装置