【技术实现步骤摘要】
一种多维循环自动向量化分块因子分块方法及装置
本专利技术属于编译优化领域,特别涉及一种多维循环自动向量化分块因子分块方法及装置。
技术介绍
在计算密集型应用程序中,特别是科学和工程计算应用程序,循环嵌套计算会耗费大部分的运行时间,称为亟待解决的程序热点。处理器计算程序的循环分块是一种应用广泛的循环优化技术,通过仿射变换对程序计算的嵌套循环部分进行代码转换,一方面增加程序的数据局部性,降低cache失效率;另一方面开发循环代码的粗粒度并行性,充分利用多核处理器的计算性能。分块后的循环迭代根据分块因子大小重置访存顺序,从而减小数据重用距离。因此,分块因子大小的选择对循环分块代码的性能有着重要的影响。近年来,随着SIMD扩展部件在微处理器和协处理器中的发展,向量寄存器的位数逐渐增加,使得自动向量化技术在开发嵌套循环的细粒度并行性方面得到有效提高。但是,循环分块的分块因子大小选择不仅影响处理器程序的局部性,也影响程序的自动向量化收益,现有方法在开发多维(维度大于1)循环自动向量化过程中因数据不对齐易导致向量化收益低下,出现病态规模问 ...
【技术保护点】
1.一种多维循环自动向量化分块因子分块方法,其特征在于,包括以下步骤:/n步骤1)、识别获取已进行常规分块的循环代码的可向量化循环层;/n步骤2)、为可向量化循环层选择分块因子;/n步骤3)、以优化程序并行性和局部性为目标,通过数学规划的方法计算和调整其他循环层的分块因子,将可向量化循环层的分块因子调整为最佳分块因子,实现多维循环自动向量化分块因子分块。/n
【技术特征摘要】
1.一种多维循环自动向量化分块因子分块方法,其特征在于,包括以下步骤:
步骤1)、识别获取已进行常规分块的循环代码的可向量化循环层;
步骤2)、为可向量化循环层选择分块因子;
步骤3)、以优化程序并行性和局部性为目标,通过数学规划的方法计算和调整其他循环层的分块因子,将可向量化循环层的分块因子调整为最佳分块因子,实现多维循环自动向量化分块因子分块。
2.根据权利要求1所述的一种多维循环自动向量化分块因子分块方法,其特征在于,可向量化循环层是满足编译器自动向量化条件的循环层,满足编译器自动向量化条件包括迭代次数可数、所有数据共享相同的控制流和无条件分支。
3.根据权利要求1或2所述的一种多维循环自动向量化分块因子分块方法,其特征在于,可向量化循环层包括嵌套循环中的最内层循环和单层循环。
4.根据权利要求1所述的一种多维循环自动向量化分块因子分块方法,其特征在于,分块因子J的大小使得循环体中所有可向量化数据的数目最大。
5.根据权利要求4所述的一种多维循环自动向量化分块因子分块方法,其特征在于,可向量化数据的数目为所有可向量化数据块中的数据个数。
6.根据权利要求4所述的一种多维循环自动向量化分块因子分块方法,其特征在于,可向量化数据块为内存中连续的向量因子大小的数据,其第一个数据的地址对齐于向量寄存器。
7.根据权利要求1所述的一种多维循环自动向量化分块因子分块方法,其特征在于,设可向量化循环层访问的...
【专利技术属性】
技术研发人员:刘松,伍卫国,柴晓菲,屈彬,马洁,
申请(专利权)人:西安交通大学,
类型:发明
国别省市:陕西;61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。