包括延迟预测器的系统及计算机实现的方法技术方案

技术编号:38482519 阅读:11 留言:0更新日期:2023-08-15 16:59
本公开涉及包括延迟预测器的系统及计算机实现的方法。一种包括延迟预测器的系统,该延迟预测器被配置成将转换器

【技术实现步骤摘要】
包括延迟预测器的系统及计算机实现的方法


[0001]本公开总体上属于计算机实现的深度学习架构领域。

技术介绍

[0002]静态程序分析领域旨在通过自动化工具分析程序代码,而不执行程序代码。静态程序分析可以被看作是自动化的代码审查过程。
[0003]编写有效的代码是软件开发中的主要问题之一,它需要对给定的编程语言有很好的理解,以及经验。例如,具有关于实现的近似计算复杂度的即时反馈将是对软件开发人员有价值的工具。
[0004]因此,通常希望提供分析程序代码的更好的技术。

技术实现思路

[0005]根据第一方面,本公开提供了一种包括延迟预测器的系统,所述延迟预测器被配置成将转换器

编码器的输出转换成用于源代码的代码段的延迟预测。
[0006]根据另一方面,本公开提供了一种计算机实现的方法,方法包括将转换器

编码器的输出转换成用于源代码的代码段的延迟预测。
[0007]在从属权利要求、下面的描述和附图中阐述了进一步的方面。
附图说明
[0008]参照附图通过实例的方式说明实施方式,其中:
[0009]图1示意性地示出了用于使用转换器

编码器进行基于代码的运行时间估计的系统的示例;
[0010]图2示意性地描述了用于基于代码的运行时间估计的系统,它根据DNN的源代码表示来估计DNN的延迟;
[0011]图3示出了图2的代码解析器22的实施例;
[0012]图4示出了使用转换

编码器35、分词器33和延迟预测头37的基于代码的运行时间估计的训练阶段的示例;
[0013]图5示意性地描述了用于使用转换器

编码器进行基于代码的运行时间估计的方法的实施例;
[0014]图6示意性地描述了在实施例中描述的用于使用转换器

编码器训练基于代码的运行时间估计的方法的实施例;
[0015]图7示出了在由用于使用实施例的转换器

编码器的基于代码的运行时间估计的系统来预测的延迟与实验中测量的延迟之间的比较;以及
[0016]图8示意性地描述了在实施例中描述的用于使用转换器

编码器实现基于代码的运行时间估计的系统的设备的实施例。
具体实施方式
[0017]在参考图1详细描述实施方式之前,进行通常性说明。
[0018]以下更详细描述的实施例公开了一种包括延迟预测器的系统,所述延迟预测器被配置成将转换器

编码器的输出转换成用于源代码的代码段的延迟预测。
[0019]延迟预测器可以例如被实现为延迟预测器的软件程序,或被配置成执行延迟预测的电路。同样,转换器

编码器可以例如被实现为软件过程或被配置成充当转换器

编码器的电路。
[0020]该系统可以例如被实现为软件工具。例如,软件工具可以是集成开发环境(IDE)的一部分。
[0021]该系统可以例如使用根据自然语言处理的方法来估计编写的源代码的运行时间。
[0022]该系统并不依赖于代码的编译或解释。
[0023]该系统可以进一步包括代码分割,该代码分割被配置成将源代码分割成所述代码段。该代码分割可以例如被实现为用于分割代码的软件程序,或被配置为执行分割代码的电路。
[0024]该代码分割可以例如依赖于语言和基于规则来完成,或基于经训练的系统来完成。例如,代码分割可以由解析器执行。由代码分割生成的代码段可以例如是源代码的更小和独立的段。代码分割可以例如被配置成使得这些较小的无用数据是源代码中有意义且独立的段。
[0025]所述系统可以进一步包括分词器(tokenizer),所述分词器被配置成对代码段进行标记(tokenize)。分词器可以例如被实现为用于标记的软件过程,或者被配置为执行标记的电路。
[0026]分词器可以被配置成将代码段转换成表示短字符序列的向量序列。
[0027]该系统可以进一步包括对分词器的输出进行操作的转换器

编码器。
[0028]在训练阶段,转换器

编码器可以学习以捕获语法,以及给定代码段内的所有算法依赖性和数据依赖性。以这种方式,转换器

编码器可以被配置成充当用于基于该语言编写源代码的编程语言的语言模型。
[0029]由延迟预测器生成的延迟预测可以例如提供用于由代码分割生成的相应代码段的在线运行时间预测。
[0030]延迟预测器可以例如被配置为根据DNN的源代码表示来预测DNN的延迟。
[0031]该系统可以进一步包括代码解析器,被配置成根据DNN的源代码表示来提取API调用的集合。该代码解析器可以例如被实现为用于解析代码的软件程序,或者实现为被配置成执行代码解析的电路。
[0032]该代码解析器还可以被配置成根据DNN的源代码表示来提取API调用集合的调用序列。
[0033]该调用序列可以例如由邻接矩阵表示。
[0034]该延迟预测器可以包括GCN,被配置成集成代码段并且基于所述代码段估计DNN的延迟。该GCN可以例如被实现作为软件过程或被配置成充当GCN的电路。
[0035]该GCN可以使用由解析器确定的调用序列和特征矩阵两者来计算所述DNN的延迟的估计。
[0036]电路可以包括用于GPU加速的深度学习的处理器、存储器(RAM、ROM等)或图形处理单元(GPU)。电路可以进一步包括存储装置、输入装置(鼠标、键盘、相机等)、输出装置(显示器(例如,液晶、(有机)发光二极管等)、扬声器等、(无线)接口等,因为它通常用于电子设备(计算机、智能手机等)。电路还可以包括用于执行指示功能的电子元件。
[0037]实施例还公开了一种计算机实现的方法,该方法包括将转换器

编码器的输出转换成用于源代码(11,21)的代码段的延迟的预测。
[0038]该计算机实现的方法可以包括指令,当在处理器上执行时,所述指令执行实施例中描述的处理步骤。
[0039]实施例还公开了一种包括指令的机器可读记录介质,当在处理器上执行时,所述指令执行实施例中描述的处理步骤。
[0040]基于代码的运行时间估计
[0041]实施例公开了一种用于基于代码的运行时间估计的系统和相应的计算机实现方法,其使用根据自然语言处理的方法来估计编写的源代码的运行时间。具体是,该方法不依赖于代码的编译或解释。这样做的好处是,即使代码仍在开发中而因此无法编译或执行,该方法也可以生成运行时间估计。
[0042]该系统可以例如被实现为软件工具。例如,软件工具可以是集成开发环境(IDE)的一部分。
[0043]图1示意性地示出了用于使用转换器

编码器进行基于代码的运行时间估计的系统的示例。源代码11被传递到代码分割1本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种包括延迟预测器的系统,所述延迟预测器被配置成将转换器

编码器的输出转换成用于源代码的代码段的延迟预测。2.根据权利要求1所述的系统,包括代码分割,所述代码分割被配置成将所述源代码分成所述代码段。3.根据权利要求1所述的系统,进一步包括分词器,所述分词器被配置成标记所述代码段。4.根据权利要求3所述的系统,其中,所述分词器被配置成将所述代码段转换成表示短字符序列的向量序列。5.根据权利要求3所述的系统,进一步包括对所述分词器的输出进行操作的转换器

编码器。6.根据权利要求1所述的系统,其中,所述延迟预测器被配置成根据深度神经网络DNN的源代码表示来预测所述DNN的延迟。7.根据权利要求1所述的系统,包括代码解析器,所述代码解析器被配置成根据DNN的源代码表示来提取API调用集合。8.根据权利要求7所述的系统,其中,所述代码解析器进一...

【专利技术属性】
技术研发人员:卢卡斯
申请(专利权)人:索尼集团公司
类型:发明
国别省市:

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

1