System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 代码向量化的错误检测方法、装置及设备制造方法及图纸_技高网

代码向量化的错误检测方法、装置及设备制造方法及图纸

技术编号:40007080 阅读:5 留言:0更新日期:2024-01-16 14:41
本申请提供一种代码向量化的错误检测方法、装置及设备,涉及计算机领域,该方法包括:计算设备对待向量化代码进行向量化分析,确定待向量化代码无法成功向量化,则对待向量化代码进行分析,获得导致待向量化失败的因素,该因素包括具体的代码因素和/或工具因素,然后计算设备确定与因素相匹配的修改策略,使操作人员能够根据修改策略中的代码修改方式对待向量化代码进行修改,使待向量化代码能够成功向量化。从而避免操作人员对导致向量化失败的原因进行人工分析,减少了对待向量化代码进行人工分析导致的人力消耗和时间消耗,提高了代码向量化的整体效率。

【技术实现步骤摘要】

本申请涉及计算机领域,尤其涉及一种代码向量化的错误检测方法、装置及设备


技术介绍

1、计算机将常规的标量代码转换成向量代码后,能够基于向量代码对批量的数据进行同样的操作来提高数据处理效率。例如,编译器采用自动向量化的方式对代码进行向量化。由于代码错误或编译环境错误,向量化过程会出现错误,但是用户无法根据报错信息确定向量化失败的具体原因。用户需要消耗人力成本和时间成本对代码或编译环境进行分析,确定导致代码向量化失败的具体原因,再根据具体原因对代码或编译环境进行修改,以使代码能够成功向量化。因此,代码的自动向量化存在效率较低的问题。


技术实现思路

1、本申请实施例提供一种代码向量化的错误检测方法、装置及设备,能够解决代码的自动向量化较低的问题。

2、第一方面,提供一种代码向量化的错误检测方法。该代码向量化的错误检测方法包括:计算设备在对待向量化(vectorization)代码进行向量化但待向量化代码出现无法向量化的问题时,计算设备确定导致待向量化代码无法向量化的因素,然后根据因素确定修改策略。上述因素包括代码因素和/或工具因素,修改策略用于指示使待向量化代码能够向量化的代码修改方式,以使计算设备能够使用代码修改方式修改待向量化代码,进而能够实现修改后的待向量化代码的向量化。

3、由此,计算设备在执行代码向量化前对待向量化代码进行分析后,确定导致待向量化代码无法向量化的代码因素和/或工具因素,相对于仅示出报错类型但不示出向量化失败的具体原因的报错方式,计算设备能够输出与代码因素和/或工具因素匹配的修改策略。其中,修改策略包含使待向量化代码能够向量化的代码修改方式。因此,操作人员无需对待向量化代码进行人工分析来确定向量化失败的具体原因,而是根据代码修改方式对待向量化代码进行修改,使修改后的待向量化代码能够实现向量化,从而减少了对待向量化代码进行人工分析导致的人力消耗和时间消耗,提高了代码向量化的整体效率。

4、可选地,上述代码因素包括代码结构因素和代码开销因素。代码结构因素用于指示待向量化代码中导致待向量化代码无法向量化的错误代码。代码开销因素用于指示向量代码中部分代码的开销大于预设开销。上述工具因素用于指示运行向量代码的环境因素,例如执行代码向量化的编译器的编译器属性因素。编译器属性因素包括编译器的版本和/或类型。计算设备确定待向量化代码中的错误代码后,能够根据具体的错误代码确定适用于该版本和/或类型的编译器的修改策略。从而能够确定使待向量化代码能够向量化的代码修改方式,且保证了输出的代码修改方式的正确性。

5、例如,代码结构因素包括循环条件的左值或右值是循环不变量、变量步长是循环不变量和冲突的变量不是别名等,代码开销因素包括待向量化代码中可简化的指令。

6、一种可能的实现方式中,计算设备根据修改规则集合中与因素匹配的修改规则确定修改策略。其中,修改规则包括因素与修改策略的关联关系。

7、可选地,计算设备利用分类模型确定与修改规则关联的修改策略。例如,分类模型为决策树(decision tree)模型,因素为输入决策树的特征,修改规则为决策树的决策规则,修改策略为决策树输出的分类结果。计算设备将因素输入决策树,使决策树在决策规则集合中确定与输入的因素匹配的决策规则,并确定该决策规则对应的结果节点,该结果节点包含的分类结果即为本实施例中的修改策略。由于决策树算法较为简单,时间复杂度较小,利用决策树实现因素与修改规则的匹配,提高了代码向量化的错误检测的整体效率。

8、一种可能的实现方式中,计算设备可以使用静态分析的方式确定待向量化代码能否成功向量化。例如,计算设备将待向量化代码转换为中间代码,对中间代码进行静态分析,得到静态分析结果。其中,中间代码是一种结构简单、含义明确的记号系统,这种记号系统复杂性介于源程序语言和机器语言之间,容易将它翻译成目标代码。另外,还可以在中间代码一级进行与机器无关的优化,例如代码向量化。

9、可选地,上述静态分析结果包括第一分析结果和第二分析结果。第一分析结果用于指示待向量化代码包含导致待向量化代码无法向量化的代码错误类型。例如,代码错误性包括循环条件无法计算、变量步长无法计算和/或内存冲突等。第二分析结果用于指示向量代码的开销大于或等于待向量化代码的开销。

10、一种可能的实现方式中,上述静态分析结果还可以包括代码错误类型的相关代码。相关代码是指待向量化代码与代码错误类型相关的代码。例如,代码错误类型为循环条件无法计算时,相关代码是待向量化代码中所有循环体的循环条件部分的代码。计算设备获取相关代码后,对相关代码进行静态分析,能够确定导致待向量化代码无法向量化的代码结构因素。

11、第二方面,提供一种代码向量化的错误检测装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的代码向量化的错误检测方法的各个模块。

12、需要说明的是,第二方面所述的代码向量化的错误检测装置可以是终端设备或网络设备,也可以是可设置于终端设备或网络设备中的芯片(系统)或其他部件或组件,还可以是包含终端设备或网络设备的装置,本申请对此不做限定。

13、此外,第二方面所述的代码向量化的错误检测装置的技术效果可以参考第一方面所述的代码向量化的错误检测方法的技术效果,此处不再赘述。

14、第三方面,提供了一种计算设备,包括存储器和处理器,所述存储器用于存储一组计算机指令,当所述处理器执行所述一组计算机指令时,用于执行第一方面中任一种可能设计中的代码向量化的错误检测方法的操作步骤。

15、此外,第三方面所述的计算设备的技术效果可以参考第一方面所述的代码向量化的错误检测方法的技术效果,此处不再赘述。

16、第四方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算机中运行时,使得计算机执行如第一方面中任意一种可能的实现方式中所述方法的操作步骤。

17、第五方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面中任意一种可能的实现方式中所述方法的操作步骤。

18、本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。

本文档来自技高网...

【技术保护点】

1.一种代码向量化的错误检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述代码因素包括代码结构因素和代码开销因素,所述工具因素包括编译器属性因素,所述代码结构因素用于指示所述待向量化代码中导致所述待向量化代码无法向量化的错误代码,所述代码开销因素用于指示向量代码中部分代码的开销大于预设开销,所述编译器属性因素包括所述编译器的版本和/或类型。

3.根据权利要求1或2所述的方法,其特征在于,根据所述因素确定修改策略,包括:

4.根据权利要求3所述的方法,其特征在于,所述修改规则为决策树的决策规则,根据修改规则集合中与所述因素匹配的修改规则确定所述修改策略,包括:

5.根据权利要求1所述的方法,其特征在于,确定待向量化代码无法向量化,包括:

6.根据权利要求5所述的方法,其特征在于,所述静态分析结果包括第一分析结果和第二分析结果,所述第一分析结果用于指示所述待向量化代码包含导致所述待向量化代码无法向量化的代码错误类型,所述第二分析结果用于指示向量代码的开销大于或等于所述待向量化代码的开销。p>

7.根据权利要求6所述的方法,其特征在于,所述静态分析结果还包括导致所述待向量化代码无法向量化的代码错误类型的相关代码,根据所述静态分析结果确定代码结构因素,包括:

8.一种代码向量化的错误检测装置,其特征在于,所述装置包括:

9.根据权利要求8所述的装置,其特征在于,所述代码因素包括代码结构因素和代码开销因素,所述工具因素包括编译器属性因素,所述代码结构因素用于指示所述待向量化代码中导致所述待向量化代码无法向量化的错误代码,所述代码开销因素用于指示向量代码中部分代码的开销大于预设开销,所述编译器属性因素包括所述编译器的版本和/或类型。

10.根据权利要求8或9所述的装置,其特征在于,所述策略模块具体用于:

11.根据权利要求10所述的装置,其特征在于,所述修改规则为决策树的决策规则,所述策略模块具体用于:

12.根据权利要求8所述的装置,其特征在于,所述分析模块具体用于:

13.根据权利要求12所述的装置,其特征在于,所述静态分析结果包括第一分析结果和第二分析结果,所述第一分析结果用于指示所述待向量化代码包含导致所述待向量化代码无法向量化的代码错误类型,所述第二分析结果用于指示向量代码的开销大于或等于所述待向量化代码的开销。

14.根据权利要求13所述的装置,其特征在于,所述静态分析结果还包括导致所述待向量化代码无法向量化的代码错误类型的相关代码,所述分析模块具体用于:

15.一种计算设备,其特征在于,所述计算设备包括存储器和至少一个处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1至7中任一所述的方法的操作步骤。

...

【技术特征摘要】

1.一种代码向量化的错误检测方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述代码因素包括代码结构因素和代码开销因素,所述工具因素包括编译器属性因素,所述代码结构因素用于指示所述待向量化代码中导致所述待向量化代码无法向量化的错误代码,所述代码开销因素用于指示向量代码中部分代码的开销大于预设开销,所述编译器属性因素包括所述编译器的版本和/或类型。

3.根据权利要求1或2所述的方法,其特征在于,根据所述因素确定修改策略,包括:

4.根据权利要求3所述的方法,其特征在于,所述修改规则为决策树的决策规则,根据修改规则集合中与所述因素匹配的修改规则确定所述修改策略,包括:

5.根据权利要求1所述的方法,其特征在于,确定待向量化代码无法向量化,包括:

6.根据权利要求5所述的方法,其特征在于,所述静态分析结果包括第一分析结果和第二分析结果,所述第一分析结果用于指示所述待向量化代码包含导致所述待向量化代码无法向量化的代码错误类型,所述第二分析结果用于指示向量代码的开销大于或等于所述待向量化代码的开销。

7.根据权利要求6所述的方法,其特征在于,所述静态分析结果还包括导致所述待向量化代码无法向量化的代码错误类型的相关代码,根据所述静态分析结果确定代码结构因素,包括:

8.一种代码向量化的错误检测装置,其特征在于,所述装置包括:<...

【专利技术属性】
技术研发人员:干力雄张汝涛侯凯龚良旭
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1