程序向量化过程中动静结合的内存别名分析处理方法及装置制造方法及图纸

技术编号:23342670 阅读:66 留言:0更新日期:2020-02-15 03:39
本发明专利技术属于高性能计算并行化处理技术领域,特别涉及一种程序向量化过程中动静结合的内存别名分析处理方法及装置,包含:针对向量化过程中循环体内的所有内存引用,构建待测内存引用对集合;程序编译阶段,通过静态分析确定待测内存引用对别名状态,该待测内存引用对别名状态分为别名状态、非别名状态和不确定状态;针对不确定状态,在程序运行过程中动态检测内存引用对的别名状态,进而判定内存引用对是否存在依赖关系。本发明专利技术通过动静结合的别名分析和处理,实现向量化过程中对别名的有效预处理,并进一步通过代码多版本等生成不存在别名的多代码版本,降低依赖分析的复杂度,为程序的向量并行化提供支撑,具有较好的应用前景。

The method and device of memory alias analysis in the process of program Vectorization

【技术实现步骤摘要】
程序向量化过程中动静结合的内存别名分析处理方法及装置
本专利技术属于高性能计算并行化处理
,特别涉及一种程序向量化过程中动静结合的内存别名分析处理方法及装置。
技术介绍
并行程序是提高程序性能的有效手段,它通过多个执行部件同时执行任务来加快程序运行速度。程序并行优化是指将串行程序通过分析变换生成更高效的并行程序,是一种语句的重排序变换,程序变换需要保证其合法性,这个合法性是由依赖关系来保证的。指针是一种常用的语法特征,指针参数传递、堆空间的使用等指针操作增加了程序设计的灵活性和处理能力。同时,也给程序分析带来了困难,即,指针的指向位置难以精确确定。多个指针指向同一块内存,可以互相称之为内存的别名。当程序中存在大量的指针时,如果无法确定指针指向的内存块是否有重叠,会保守地将指针作为别名来处理。别名引起了程序语句间的大量依赖,而依赖关系决定了程序是否能够并行执行。程序开发手段的多样化,编程技巧的多样化和实际应用的复杂化,导致我们实际得到的程序往往存在大量的别名,向量化作为一种语句重排序变换,其并行性发掘不希望受别名影响,因此,精确分析别名和尽本文档来自技高网...

【技术保护点】
1.一种程序向量化过程中动静结合的内存别名分析处理方法,其特征在于,包含:/n针对向量化过程中循环体内的所有内存引用,构建待测内存引用对集合;/n程序编译阶段,通过静态分析确定待测内存引用对别名状态,该待测内存引用对别名状态分为别名状态、非别名状态和不确定状态;/n针对不确定状态,在程序运行过程中动态检测内存引用对的别名状态;并针对程序编译阶段和运行过程中别名状态的内存引用对,判定该内存引用对存在依赖关系,针对非别名状态的内存引用对,则判定该内存引用对无依赖关系。/n

【技术特征摘要】
1.一种程序向量化过程中动静结合的内存别名分析处理方法,其特征在于,包含:
针对向量化过程中循环体内的所有内存引用,构建待测内存引用对集合;
程序编译阶段,通过静态分析确定待测内存引用对别名状态,该待测内存引用对别名状态分为别名状态、非别名状态和不确定状态;
针对不确定状态,在程序运行过程中动态检测内存引用对的别名状态;并针对程序编译阶段和运行过程中别名状态的内存引用对,判定该内存引用对存在依赖关系,针对非别名状态的内存引用对,则判定该内存引用对无依赖关系。


2.根据权利要求1所述的程序向量化过程中动静结合的内存别名分析处理方法,其特征在于,收集向量化过程中循环体内的所有内存引用,将其两两组合,得到待测内存引用对,其中,两两组合中,至少包含指针引用和内存写操作。


3.根据权利要求1或2所述的程序向量化过程中动静结合的内存别名分析处理方法,其特征在于,收集循环体内的内存引用,该内存引用包含指针和内存写操作。


4.根据权利要求1所述的程序向量化过程中动静结合的内存别名分析处理方法,其特征在于,动态检测内存引用对的别名状态中,通过判定内存引用指针对应内存块是否重叠,以实现在程序运行过程中对待测内存引用对的别名状态检测。


5.根据权利要求4所述的程序向量化过程中动静结合的内存别名分析处理方法,其特征在于,动态检测中,针对别名状态和非别名状态生成对应的代码版本;针对别名版本和别名状态的内存引用对,判定该内存引用对存在依赖关系,针对非别名版本和非别名状态的内存引用对,则判定该内存引用对无依赖关系。


6.根据权利要求...

【专利技术属性】
技术研发人员:徐金龙陶小涵刘晓楠李亚朋李颖颖黄亮明
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:河南;41

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

1