[发明专利]一种多维循环自动向量化分块因子分块方法及装置有效
| 申请号: | 202010706144.4 | 申请日: | 2020-07-21 |
| 公开(公告)号: | CN111857727B | 公开(公告)日: | 2021-07-13 |
| 发明(设计)人: | 刘松;伍卫国;柴晓菲;屈彬;马洁 | 申请(专利权)人: | 西安交通大学 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41 |
| 代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 陈翠兰 |
| 地址: | 710049 *** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 多维 循环 动向 量化 分块 因子 方法 装置 | ||
1.一种多维循环自动向量化分块因子分块方法,其特征在于,包括以下步骤:
步骤1)、识别获取已进行常规分块的循环代码的可向量化循环层,可向量化循环层是满足编译器自动向量化条件的循环层,满足编译器自动向量化条件包括迭代次数可数、所有数据共享相同的控制流和无条件分支;
步骤2)、为可向量化循环层选择分块因子;
步骤3)、以优化程序并行性和局部性为目标,通过数学规划的方法计算和调整其他循环层的分块因子,将可向量化循环层的分块因子调整为最佳分块因子,实现多维循环自动向量化分块因子分块,具体的,设可向量化循环层访问的数组最后一维的长度为W,向量因子为V,遍历所有的分块因子J,V≤J≤W,并计算对应的可向量化数据的数目值,取使得可向量化数据的数目值最大的分块因子作为最佳分块因子。
2.根据权利要求1所述的一种多维循环自动向量化分块因子分块方法,其特征在于,可向量化循环层包括嵌套循环中的最内层循环和单层循环。
3.根据权利要求1所述的一种多维循环自动向量化分块因子分块方法,其特征在于,分块因子J的大小使得循环体中所有可向量化数据的数目最大。
4.根据权利要求3所述的一种多维循环自动向量化分块因子分块方法,其特征在于,可向量化数据的数目为所有可向量化数据块中的数据个数。
5.根据权利要求3所述的一种多维循环自动向量化分块因子分块方法,其特征在于,可向量化数据块为内存中连续的向量因子大小的数据,其第一个数据的地址对齐于向量寄存器。
6.根据权利要求1所述的一种多维循环自动向量化分块因子分块方法,其特征在于,向量因子为向量寄存器可容纳的最大操作数数目。
7.根据权利要求1所述的一种多维循环自动向量化分块因子分块方法,其特征在于,可向量化数据的数目计算具体步骤为:
1)、初始化使可向量化数据的数目归零;
2)、从可向量化数据块数组第0行第0列开始,向右遍历数组元素,每当碰到一对相邻的地址对齐线时,若它们之间的所有元素位于同一个分块内,则使可向量化数据的数目NUM_VEC累加向量因子;
3)、重复步骤2)继续遍历剩下的行,直至所有的行都被遍历完毕,即可得到可向量化数据的数目。
8.一种多维循环自动向量化分块因子分块装置,其特征在于,包括可向量化循环层识别模块、分块因子选择模块和多维向量化分块因子分块模块,其中,可向量化循环层识别模块用于识别获取已进行常规分块的循环代码的可向量化循环层,可向量化循环层满足编译器自动向量化条件的循环层,满足编译器自动向量化条件包括迭代次数可数、所有数据共享相同的控制流和无条件分支;分块因子选择模块用于为可向量化循环层选择分块因子;多维向量化分块因子分块模块用于以优化程序并行性和局部性为目标,通过数学规划的方法计算和调整其他循环层的分块因子,将可向量化循环层的分块因子调整为最佳分块因子,实现多维循环自动向量化分块因子分块,具体是设可向量化循环层访问的数组最后一维的长度为W,向量因子为V,遍历所有的分块因子J,V≤J≤W,并计算对应的可向量化数据的数目值,取使得可向量化数据的数目值最大的分块因子作为最佳分块因子。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010706144.4/1.html,转载请声明来源钻瓜专利网。





