面向双SIMD部件的代码循环展开处理方法及系统技术方案

技术编号:43286540 阅读:33 留言:0更新日期:2024-11-12 16:08
本发明专利技术涉及计算机编译技术领域,特别涉及一种面向双SIMD部件的代码循环展开处理方法及系统,利用编译器对目标程序自动向量化并生成向量语句;针对双SIMD部件自动向量化优化需求,识别并标记向量语句中含有SIMD语句的循环体;在遍历标记的循环体时,若目标平台支持双SIMD部件的流水执行,则在目标平台上对循环体执行指定次数的循环展开。本发明专利技术通过添加编译选项的方式来实现面向双SIMD部件的循环展开,避免人工修改程序,提高双SIMD部件的使用效率,既满足了自动循环展开特定循环次数的要求,又不影响非向量化循环体的代码特征,提升代码性能,在数字信号处理、大数据、人工智能、高性能计算等领域具有较好的应用前景。

【技术实现步骤摘要】

本专利技术涉及计算机编译,特别涉及一种面向双simd部件的代码循环展开处理方法及系统。


技术介绍

1、simd部件指的是一套专用的多媒体扩展指令集。该指令集采用单指令多数据(single instruction multipledata,简称simd)扩展技术,可同时对多个数据进行相同的操作,称为simd扩展部件。simd扩展部件能够对多媒体程序中的数据进行并行处理,提升了多媒体程序的运行速度。双simd部件在国产申威处理器上的实现借鉴了cpu设计时的流水线(pipeline)技术。流水线技术是指程序在执行时候多条指令重叠进行操作的一种准并行处理实现技术。即将一个时序过程,分解成若干个子过程,每个过程都能有效的与其他子过程同时执行。在国产申威处理器上有两套simd扩展部件,并且可以以流水线的方式执行。

2、自动向量化是一种重要的编译优化方法,它利用simd扩展部件提供的数据并行处理能力,有效提升程序性能,在数字信号处理、大数据、人工智能、高性能计算等众多应用场景中发挥着重要的作用。现在主流编译器如gcc、llvm、icc等都支持自动向量化优化。本文档来自技高网...

【技术保护点】

1.一种面向双SIMD部件的代码循环展开处理方法,用于目标程序代码的编译优化,其特征在于,包含:

2.根据权利要求1所述的面向双SIMD部件的代码循环展开处理方法,其特征在于,利用编译器对目标程序自动向量化并生成向量语句,包含:

3.根据权利要求1或2所述的面向双SIMD部件的代码循环展开处理方法,其特征在于,识别并标记向量语句中含有SIMD语句的循环体,包含:

4.根据权利要求3所述的面向双SIMD部件的代码循环展开处理方法,其特征在于,判断向量语句中是否使用指定语句,还包含:

5.根据权利要求1所述的面向双SIMD部件的代码循环展开处理...

【技术特征摘要】

1.一种面向双simd部件的代码循环展开处理方法,用于目标程序代码的编译优化,其特征在于,包含:

2.根据权利要求1所述的面向双simd部件的代码循环展开处理方法,其特征在于,利用编译器对目标程序自动向量化并生成向量语句,包含:

3.根据权利要求1或2所述的面向双simd部件的代码循环展开处理方法,其特征在于,识别并标记向量语句中含有simd语句的循环体,包含:

4.根据权利要求3所述的面向双simd部件的代码循环展开处理方法,其特征在于,判断向量语句中是否使用指定语句,还包含:

5.根据权利要求1所述的面向双simd部件的代码循环展开处理方法,其特征在于,在目标平台上对循环体执行指定次数的循环展开...

【专利技术属性】
技术研发人员:单征姚金阳赵博李颖颖钱宏徐金龙刘丽丽刘文博付炫钰
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1