CN116166550A - 处理器性能预测系统、方法以及相关设备 - Google Patents

处理器性能预测系统、方法以及相关设备 Download PDF

Info

Publication number
CN116166550A
CN116166550A CN202310131269.2A CN202310131269A CN116166550A CN 116166550 A CN116166550 A CN 116166550A CN 202310131269 A CN202310131269 A CN 202310131269A CN 116166550 A CN116166550 A CN 116166550A
Authority
CN
China
Prior art keywords
characterization
instruction
processor
parameters
token
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310131269.2A
Other languages
English (en)
Inventor
陈然
赵铭明
张宇洋
胡守博
吕文龙
陈志堂
陈宣奇
何桃海
盛伟华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202310131269.2A priority Critical patent/CN116166550A/zh
Publication of CN116166550A publication Critical patent/CN116166550A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Biomedical Technology (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开一种处理器性能预测系统、方法以及相关设备,涉及计算机领域,该处理器性能预测系统包括第一获取模块、预训练模块、第二获取模块以及性能预测模块,第一获取模块用于获取第一指令流,并处理第一指令流得到指令基本块;预训练模块用于将指令基本块输入至预训练模型,以基于预训练模型的参数对指令基本块进行特征提取,得到切片表征向量;第二获取模块用于获取第一配置参数;性能预测模块,用于获取切片表征向量和第一配置参数,将切片表征向量和第一配置参数输入至预测模型,以基于预测模型的参数预测处理器的性能,输出性能指标值,其中,预测模型的参数的部分或全部为预先训练好的预测模型的参数。可以提高预测准确性以及预测效率。

Description

处理器性能预测系统、方法以及相关设备
技术领域
本申请实施例涉及计算机领域,尤其涉及一种处理器性能预测系统、方法以及相关设备。
背景技术
在对处理器的性能进行预测时,传统的性能预测分析依赖专家对指令集和微架构的了解和经验。构建性能预测模型需要对处理器实现细节有充分的了解,对于不同的微架构,往往需要重写指令表和资源利用率图表以及对微体系结构优化进行建模,在这些过程当中,对处理器性能的预测往往是需要花费较长时间和较多的精力,导致处理器性能预测效率低,且预测结果往往容易出错。
发明内容
有鉴于此,本申请提供一种处理器性能预测系统、方法以及相关设备,可以提高预测的准确性与效率。
第一方面提供一种处理器性能预测系统,包括:第一获取模块、预训练模块、第二获取模块以及性能预测模块,第一获取模块用于获取第一指令流,并处理第一指令流得到指令基本块,其中第一指令流为目标程序在处理器上运行时处理器执行的指令序列;预训练模块用于将指令基本块输入至预训练模型,以基于预训练模型的参数对指令基本块进行特征提取,得到切片表征向量;第二获取模块用于获取第一配置参数,其中第一配置参数为处理器的硬件架构配置参数;性能预测模块用于获取切片表征向量和第一配置参数,将切片表征向量和第一配置参数输入至预测模型,以基于预测模型的参数预测处理器的性能,输出性能指标值,其中,预测模型的参数的部分或全部为预先训练好的预测模型的参数。
在本申请实施例中,通预训练模块对指令序列进行预处理,并将所得到的表征向量输入至性能预测模型进行预测,提高了预测的效率以及预测的准确性。性能预测模块以汇编指令序列和硬件配置参数作为输入,采用机器学习算法预测处理器性能,预测的准确性高、预测效率高。
可选地,预训练模型包括:变换器模型和表征聚合网络,变换器模型用于基于变换器模型的参数对指令基本块进行特征提取,得到表征向量;表征聚合网络用于基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量。可提高预测效率以及准确性。
可选地,基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量包括:获取各个指令基本块之间的跳转关系;将跳转关系和表征向量输入至表征聚合网络,基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量。根据跳转关系预先推理表征向量得到切片表征向量,所得的切片表征向量包括更多任务场景下的表征信息,如处理器执行指令序列时的行为信息。以在后续基于该切片表征向量与第一配置参数下进行性能预测时,可以提高预测准确性以及预测效率。
可选地,将跳转关系和表征向量输入至表征聚合网络,基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量包括:根据跳转关系确定各个表征向量之间的关系,根据各个表征向量之间的关系以及各个表征向量构建跳转顺序图;将跳转顺序图输入至表征聚合网络,以基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量。可以提高预测准确性以及预测效率。
可选地,还包括:指令编码器,用于对指令基本块的指令序列进行编码得到对应的令牌,其中令牌对应唯一标识。
第二方面提供一种处理器性能预测方法,该方法包括:获取第一指令流和第一配置参数,其中第一指令流为第一指令流为目标程序在处理器上运行时处理器所执行的指令序列,第一配置参数为处理器的硬件配置参数;对第一指令流进行处理得到指令基本块;将指令基本块输入至预训练模型,以基于预训练模型的参数对指令基本块进行特征提取,得到切片表征向量;将切片表征向量和第一配置参数输入至预测模型,以基于预测模型的参数预测处理器的性能,输出性能指标值,其中预测模型的参数的部分或全部为预先训练好的预测模型的参数。
可选地,预训练模型包括:变换器模型和表征聚合网络,则基于预训练模型的参数对指令基本块进行特征提取,得到切片表征向量包括:基于变换器模型的参数对指令基本块进行特征提取,得到表征向量;基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量。
可选地,基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量包括:获取各个指令基本块之间的跳转关系;将跳转关系和表征向量输入至表征聚合网络,基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量。
可选地,将跳转关系和表征向量输入至表征聚合网络,基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量包括:根据跳转关系确定各个表征向量之间的关系,根据各个表征向量之间的关系以及各个表征向量构建跳转顺序图;将跳转顺序图输入至表征聚合网络,以基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量。
可选地,在将指令基本块输入至预训练模型之前还包括:对指令基本块中的指令序列进行编码得到对应的令牌,其中令牌对应唯一标识;存储令牌与对应标识至汇编查找表;则将指令基本块输入至预训练模型包括:获取标识,基于汇编查找表确定标识对应的令牌;根据令牌获得指令基本块;将获得的指令基本块输入至预训练模型。
第三方面提供一种电子设备,包括存储器和处理器,其中,存储器用于存储计算机可读指令;处理器用于读取所述计算机可读指令并实现如上任一项处理器性能预测方法。
第四方面提供一种计算机存储介质,计算机可读介质存储有程序代码,当计算机程序代码在计算机上运行时,使得计算机执行如上任一项处理器性能预测方法。
第五方面提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上任一项处理器性能预测方法。
上述第二方面、第三方面、第四方面和第五方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
附图说明
图1为本申请实施例提供的一种处理器性能预测系统结构示意图。
图2为本申请实施例提供的对指令基本块进行编码得到对应的令牌示例图。
图3为本申请实施例提供的一种预训练模块结构示意图。
图4为本申请实施例提供的表征聚合网络聚合的示意图。
图5为本申请实施例提供的任务场景A和B之间的迁移学习示意图。
图6为本申请实施例提供的一种处理器性能预测方法流程示意图。
图7为本申请实施例提供的电子设备结构示意图。
具体实施方式
在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
在本申请实施例中,“示例性”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性”或者“例如”等词旨在以具体方式呈现相关概念。
构建准确的预测模型来预测处理器性能在芯片设计早期至关重要,但在构建时会遇到如下难点:难点一,预测准确性低,现代的指令集处理器包含繁杂的硬件优化,使得构建准确的预测模型变得复杂。指令的执行序列在高负载流水线,无序和超标量执行单元需要特定的优化,这种非线性的性能预测问题往往高度复杂。难点二,预测效率低,为获得稳定准确的处理器性能预测,在真实的处理器性能预测(估计)过程中,往往需要进行多次沙盒模拟,然而多次沙盒模拟导致预测效率低,且多次沙盒模拟在现实场景中是不切实际的。难点三,部署难,逐指令解析的性能预测建在不同的硬件架构间难以实现快速迁移部署。如,由于指令集不同,在ARM(Advanced RISC Machine)架构上部署的性能建模方案(预测模型)无法迁移到英特尔X86(Intel X86)架构平台上。
现有技术中LLVM-MCA(Low Level Virtual Machine Machine Code Analyzer)性能分析工具使用LLVM编译器中的信息来静态测量特定处理器中代码的性能。该方案基于LLVM(一种调度模型)来评估代码在指定处理器上的性能,然而LLVM-MCA目前只能用于LLVM编译器所支持的乱序执行处理器,在不受支持的处理器上无法使用。目前来看,将LLVM-MCA迁移至未受LLVM编译器支持的处理器成本较高。
鉴于此,本申请提供一种处理器性能预测系统、方法以及相关设备,以数据驱动建模处理器性能预测系统,具体地,通过构建以汇编指令序列和硬件配置参数作为输入,处理器性能指标IPC作为输出的数据集,然后采用机器学习算法构建出处理器性能预测系统。本申请提供的处理器性能预测系统预测的准确性高、预测效率高且具有良好的可移植性。本申请提供的处理器性能预测系统通过变换器模型对指令序列进行预处理,并将所得到的表征向量输入至性能预测模型进行预测,提高了预测的效率以及预测的准确性。变换器模型通过多头注意力(Multi-Head Attention)机制对汇编指令序列进行预处理,进一步提高预测的效率以及预测的准确性。基于该处理器性能系统所做出的性能预测可以得到比传统分析模型更快的推理速度和更准确的性能预测。
请参阅图1,示例性介绍本申请实施例提供的一种处理器性能预测系统100结构,用于预测处理器的性能,可预测处理器在不同任务场景当中的性能指标。如图1所示,处理器性能预测系统100包括第一获取模块10、预训练模块20、第二获取模块30以及性能预测模块40。其中第一获取模块10和第二获取模块30用于获取输入至处理器性能预测系统100的数据,预训练模块20和性能预测模块40用于进行处理器性能预测,实现预测模型推理。
第一获取模块10用于获取第一指令流,并处理第一指令流得到指令基本块。
其中第一指令流为目标程序在处理器上运行时处理器所执行的指令序列(汇编指令序列)。目标程序为用户要预测的任务场景所对应的程序,执行该第一指令流的处理器所对应的硬件配置参数为用户要预测的硬件配置参数。例如,当用户想要对特定任务场景A在一组特定硬件配置参数B下的处理器性能进行预测时,目标程序为该特定任务场景A所对应的程序,处理器C的硬件配置参数为该组特定硬件配置参数B。在处理器C运行该目标程序时,处理器C所执行的汇编指令序列即为第一指令流。
其中任务场景可以为高性能计算、在电子设备上运行应用程序(Application,App)业务等。以任务场景为在手机上运行App1为例,则手机的处理器运行App1(目标程序)时所产生的汇编指令流即为第一指令流。
其中指令基本块为根据一定规则对汇编指令流进行裁切所得到的汇编指令片段。处理第一指令流所得到的指令基本块的数量为大于1的整数,本申请对此不作具体限定。
在本申请实施例中,第一获取模块10可提取不同种类的指令集,如精简指令集和复杂指令集,精简指令集例如为ARM或单字长定点指令平均执行速度(MillionInstructions Per Second,MIPS)等,复杂指令集例如为Intel X86等。也即上述第一指令流的汇编指令可以属于精简指令集,或属于复杂指令集,本申请对此不作具体限定。第一获取模块10所提取出的指令序列包括但不限如下信息:数据移动指令、算术/逻辑指令、控制流指令、寄存器地址、内存地址以及各类指令的操作码。
在本申请实施例中,第一获取模块10的主要功能是负责从汇编指令流中提取出指令基本块。具体地,第一获取模块10获取任务场景的目标程序运行时所产生的汇编指令流,并将所获得的汇编指令流根据跳转指令进行裁切,得到指令基本块。第一获取模块10还可以根据其他规则进行裁切,本申请对此不作具体限定。
在一些实施例中,处理器性能预测系统100还可以包括指令编码器(图未示)。指令编码器用于对指令基本块的指令序列逐条编码得到对应的令牌(token),为令牌分配唯一标识。具体地,针对上述第一获取模块10提取出的每一指令基本块,指令编码器对指令基本块进行编码得到对应的令牌,为每一个令牌分配唯一标识,该唯一标识可以为唯一的数字ID(Identity document)等。在汇编查找表中记录令牌以及其对应的唯一标识(如数字ID),每一个令牌都对应汇编查找表当中的一个数字ID。如,对某一指令基本块编码得到n个令牌,为n个令牌分别分配n个唯一数字ID。
在一些实施例中,将上述指令编码器设置在第一获取模块10中,即第一获取模块10还包括指令编码器的功能。则第一获取模块10根据一定规则(如跳转指令)将第一指令流裁切得到指令基本块后,再将裁切得到的指令基本块进行编码作为预训练模块的输入。具体地,第一获取模块10通过指令编码器对每一指令基本块中的每行指令序列进行编码得到对应的令牌,为每一令牌分配对应的数字ID,并输出该数字ID至预训练模块20。预训练模块20可以基于该数字ID在汇编查找表中确定对应的令牌,进而根据该令牌获得对应的指令基本块。
请参阅图2,示例性介绍本申请实施例提供的对指令基本块进行编码得到对应的令牌。如图2所示,将裁切得到的指令基本块中的一行指令序列“add x20,x20,#0x1”编码成令牌:‘<CLS>’,‘add’,‘<SRCS>’,‘x20’,‘CONST’,‘<DSTS>’,‘x20’,‘<SEP>’。再将令牌‘<CLS>’,‘add’,‘<SRCS>’,‘x20’,‘CONST’,‘<DSTS>’,‘x20’,‘<SEP>’编码成对应的数字标识“0,13,1,212,9,3,212,2”。
预训练模块20用于将指令基本块输入至预训练模型,以基于预训练模型的参数对指令基本块进行特征提取,得到切片表征向量。
在本申请实施例中,预训练模块20主要功能在于提取第一指令流的切片表征向量。所提取的切片表征向量包括任务场景(即目标程序所对应的任务场景)的表征信息,切片表征向量将作为先验知识输入到性能预测模块40当中。
请参阅图3,示例性介绍本申请提供的预训练模块20结构。预训练模块20包括预训练模型,该预训练模型包括变换器模型21和表征聚合网络22。变换器模型21用于基于变换器模型21的参数对指令基本块进行特征提取,得到表征向量。表征聚合网络22用于基于表征聚合网络22的参数对表征向量进行聚合,得到切片表征向量。
预训练模块20获取第一获取模块10所处理得到的指令基本块,将该指令基本块作为变换器模型21的输入。变换器模型21基于变换器模型21的参数为每一指令基本块生成对应的表征信息,并将所生成的表征信息输出至表征聚合网络22。表征聚合网络22基于表征聚合网络22的参数将变换器模型21所生成的表征信息生成对应的切片表征向量。
示例性地,变换器模型21获得n个指令基本块,基于变换器模型21的参数为每一指令基本块生成对应的表征信息,得到n个表征向量。表征聚合网络22基于表征聚合网络22的参数将该n个表征向量生成1个切片表征向量。
其中,变换器模型21是一种采用注意力机制的深度学习模型。示例性地,变换器模型21可以采用Transformer网络,包括但不限于如下类型:Transformer、FeatureTokenizer-Transformer(FT-Transformer)等。其中,Transformer由编码器(Encoder)和解码器(Decoder)两个部分组成,编码器和解码器的相关内容可以参考现有技术,在此不再赘述。
在本申请实施例中,变换器模型21可以使用多头注意力(Multi-Head Attention)机制。变换器模型21中的多头注意力机制通过对输入的指令基本块进行线性映射得到询问(Query)、键值(Key)和价值(Value)三个特征向量,多头注意力机制利用多个询问(Query)、键值(Key)和价值(Value)三个特征向量来平行地计算,以从指令基本块中选取出多个信息。每个注意力关注输入信息的不同部分,然后再进行拼接,最终得到表征向量。
其中,表征聚合网络22可以采用图卷积网络(Graph Convolutional Networks,GCN)结构,示例性地,表征聚合网络22包括但不限于如下类型:消息传递图神经网络(Message Passing GCN)、GCN、面向边缘的图卷积网络(EDGE-oriented GraphConvolutional Network,Edge-GCN)。
在本申请实施例中,基于表征聚合网络22的参数对表征向量进行聚合,得到切片表征向量包括:获取各个指令基本块之间的跳转关系,将跳转关系和表征向量输入至表征聚合网络22,基于表征聚合网络22的参数对表征向量进行聚合,得到切片表征向量。表征聚合网络22根据跳转关系将表征向量采用GCN网络进行表征聚合。
具体地,根据第一指令流可以得到各个指令基本块之间的跳转关系,然后根据跳转关系确定各个表征向量之间的关系,根据各个表征向量之间的关系以及各个表征向量构建跳转顺序图,将跳转顺序图输入至表征聚合网络,以基于表征聚合网络的参数对表征向量进行聚合,得到切片表征向量。
在一些实施例中,若第一获取模块10根据跳转指令裁切第一指令流得到各个指令基本块,则可以依据跳转指令得到各个指令基本块之间的跳转关系。
示例性地,给定一个任务场景下,该任务场景对应一个目标程序,则根据目标程序的执行可以获得各个指令基本块之间的跳转关系。预训练模块20将第一获取模块产生的n个指令基本块输入到变换器模型生成对应的n个表征向量,然后基于跳转关系构建该n个表征向量之间的关系。
请参阅图4,图4左边为M个任务所对应的M个跳转顺序图。以M个任务中左边的第一个任务进行说明,根据第一个任务的目标程序的执行可知处理器执行完指令基本块1a后跳转至指令基本块3a,则可以知道指令基本块1a与指令基本块3a的跳转关系。指令基本块1生成表征向量1,指令基本块3生成表征向量3、根据跳转关系,建立表征向量1跳转至表征向量3的关系。其他以此类推,得到第一个任务的跳转顺序图如图4的左边所示。第一个任务的跳转顺序图包括第一个任务所对应的各个表征向量以及各个表征向量之间的关系。将第一个任务的跳转顺序图输入至表征聚合网络22进行表征聚合输出一个切片表征向量。
如图4所示,在M个任务程序场景下,先根据每个任务场景的任务所产生的第一指令流中各个指令基本块之间的跳转关系以及各个指令基本块对应的表征向量构建图跳转顺序图,然后将这M个跳转顺序图输入到表征聚合网络22当中生成M个切片表征向量。
预训练模块20中的变换器模型21和表征聚合网络22均为预先训练好的。示例性介绍变换器模型21训练过程:训练数据可以通过对指令编码进行随机掩码产生,被掩码的指令即为预测目标。将被掩码的指令输入到Transformer当中进行无监督的学习,以优化目标为最大似然(Negative Log Likelihood Loss,NLL Loss)损失函数进行优化迭代,进而得到训练好的变换器模型21。
在本申请实施例中,利用Transformer对处理器性能预测进行建模,通过对指令基本块进行编码与采用多头注意力(Multi-Head Attention)机制,使得输入数据不依赖时序关系,可并行计算。通过预训练模块20对指令基本块进行处理,所得的切片表征信息对性能预测有正向收益。在表征聚合网络22完成汇编表征聚合之后,预训练模块20将聚合的切片表征向量传输到性能预测模块40,以便于用于预测任务场景下硬件性能。
第二获取模块30用于获取第一配置参数,其中第一配置参数为处理器的硬件架构配置参数。
第二获取模块30配置的作用包括从处理器的硬件架构配置参数中提取出第一配置参数,并将提取出的第一配置参数输出至性能预测模块40。处理器的硬件架构配置参数(硬件配置参数)指处理器微架构设计时所要考虑的参数,这些参数的数值(即第一配置参数)均为正整数。第二获取模块30所获得的第一配置参数由处理器的硬件架构参数决定。第一配置参数包括但不限于:寄存器数量(指令获取单元数量)、主频等。示例性给出处理器硬件架构配置参数的例子,如表1。
表1
Configureld(计算命令) btb_set@ifu btb_way@ifu, ...
XXXXXXXA 512 8 ...
XXXXXXXB 2048 8 ...
第二获取模块30从处理器性能预测系统100所要预测的处理器处获得该处理器的硬件架构配置参数(可以为excel格式),该硬件架构配置参数包括参数名称、对应的ID、数值等,而所提取出的第一配置参数包括该硬件架构配置参数中各个参数的数值。
如上述示例,用户想要对特定任务场景A在一组特定硬件配置参数B下的处理器性能进行预测时,则第二获取模块30从该组特定硬件配置参数B中获取第一配置参数。
性能预测模块40用于获取切片表征向量和第一配置参数,将切片表征向量和第一配置参数输入至预测模型,以基于预测模型的参数预测处理器性能,输出性能指标值。性能预测模块40的输入为任务场景下的硬件配置参数与切片表征信息,输出的是该任务场景下的性能指标值。
其中,性能指标值可以为每周期指令数(Instruction Per Clock Circle,IPC),每周期指令数为每个时钟周期执行的平均指令数,它是每条指令周期的乘法逆数。
其中,性能预测模块40中预测模型的参数的部分或全部为预先训练好的预测模型的参数。
在本申请实施例中,性能预测模块40中的预测模型可以采用神经网络结构,包括但不限于:多层感知机(multilayer perceptron,MLP)、Transformer、图注意力网络(GraphAttention Network,GAT)等。本申请实施例提供的性能预测模块40可以用于不同任务场景和/或不同硬件架构配置参数下的迁移学习。
在本申请实施例中,性能预测模块40采用迁移学习策略,通过在不同任务间场景的迁移,以实现在新的任务场景上进行快速预测。在本申请实施例中,性能预测模块40所采用的迁移学习策略包括但不限于如下:在任务场景/硬件架构配置参数A进行性能预测得到预测模型A1,通过性能预测模块40的迁移学习策略,可以将预测模型A1的参数的部分或全部拷贝在新预测模型B1中,该新预测模型B1用于在任务场景/硬件架构配置参数B中进行性能预测。
请参阅图5,示例性介绍在特定硬件配置参数下任务场景A和B之间的迁移学习方法。以预测模型为变换器模型(如Transformer)为例,在任务场景A下(切片表征向量a1和第一配置参数a2)完成训练,拷贝训练好的预测模型(如变换器模型a3)的参数在任务场景B下进行微调,以得到任务场景B(切片表征向量b1和第一配置参数b2)对应的训练好的预测模型(如变换器模型b3)。或,在任务场景A下完成训练,获得训练好的预测模型(如变换器模型a3)的参数。将训练好的预测模型的参数的部分在任务场景B下进行微调,以得到任务场景B对应的训练好的预测模型(如变换器模型b3)。
在本申请实施例中,性能预测模块40采用迁移学习策略并引入预训练模块20预训练得到的切片表征信息,可以在不同的硬件架构及业务场景下进行快速部署。基于Transformer的可迁移性能预测建模方法是端到端的推理框架,可移植性强。
本申请提供的处理器性能预测系统100用于提供处理器性能预测服务,通过分析汇编指令序列和硬件架构配置参数预测处理器在任务场景当中的性能指标。申请提供的处理器性能预测系统100可以集成在处理器性能分析软件中,或实现为处理器性能分析软件。
下面说明本申请提供的性能预测系统的工作流程:当架构师需要对某个特定任务场景在一组特定硬件配置参数(该组特定硬件配置参数即为进行性能预测的处理器A的参数)下的处理器A的性能进行估计时,该性能预测系统输入对应该任务场景的第一指令流和第一配置参数并开始推理。处理器性能预测系统100将特定任务场景对应的目标程序所产生的汇编指令序列(第一指令流)发送到第一获取模块10。由第一获取模块10对汇编指令序列进行裁切得到指令基本块,并对指令基本块进行编码得到对应的令牌,为每一令牌分配对应的标识。第一获取模块10将标识输入到预训练模块20,预训练模块20根据标识获得对应的指令基本块,并基于预训练模型的参数对指令基本块提取出切片表征信息,并将切片表征信息输出至性能预测模块40。第二获取模块30从上述特定硬件配置参数中获得第一配置参数后,将获得的第一配置参数输入至性能预测模块40。性能预测模块40基于预测模型的参数对第一配置参数和切片表征信息进行预测,推断出特定任务场景下在该组特定硬件配置参数下的处理器A的性能。
在本申请实施例中,基于任务场景对应的第一指令流以及第一配置参数进行预测,可以获得更多处理器的信息,包括处理器执行汇编指令序列时的行为特征等,进而更准确地预测到处理器性能。基于预训练模块20对第一指令流提取出切片表征信息,该切片表征信息作为先验信息输入至性能预测模块40,则可以提高预测效率,且预训练模块20使用变换器模型21可以进一步地提高预测效率。进一步地,性能预测模块40采用可迁移学习策略,使得本申请的处理器性能预测系统100具有可迁移性,可预测处理器在不同任务场景当中的性能指标。
请参阅图6,示例性介绍本申请实施例提供的处理器性能预测方法。该处理器性能预测方法可以应用于上述处理器性能预测系统100,包括如下步骤:
步骤S601,获取第一指令流和第一配置参数,其中第一指令流为目标程序在处理器上运行时处理器所执行的指令序列,第一配置参数为处理器的硬件配置参数。
其中第一指令流和第一配置参数的相关内容可以参考上述,在此不再赘述。由上述第一获取模块10获取第一指令流,由上述第二获取模块30获取第一配置参数。
步骤S602,对第一指令流进行处理得到指令基本块。
其中指令基本块的相关内容可以参考上述,在此不再赘述。由上述第一获取模块10对第一指令流进行处理得到指令基本块。
步骤S603,将指令基本块输入至预训练模型,以基于预训练模型的参数对指令基本块进行特征提取,得到切片表征向量。
其中预训练模型的相关内容可以参考上述,在此不再赘述。由上述预训练模块20将指令基本块输入至预训练模型,以基于预训练模型的参数对指令基本块进行特征提取,得到切片表征向量。
在本申请实施例中,预训练模型包括:变换器模型21和表征聚合网络22,则基于预训练模型的参数对指令基本块进行特征提取,得到切片表征向量包括:基于变换器模型21的参数对指令基本块进行特征提取,得到表征向量;基于表征聚合网络22的参数对表征向量进行聚合,得到切片表征向量。
其中变换器模型21和表征聚合网络22的相关内容可以参考上述,在此不再赘述。
在本申请实施例中,基于表征聚合网络22的参数对表征向量进行聚合,得到切片表征向量包括:获取各个指令基本块之间的跳转关系;将跳转关系和表征向量输入至表征聚合网络22,基于表征聚合网络22的参数对表征向量进行聚合,得到切片表征向量。
在本申请实施例中,所述将所述跳转关系和所述表征向量输入至所述表征聚合网络,基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量包括:根据所述跳转关系确定各个所述表征向量之间的关系,根据各个所述表征向量之间的关系以及各个所述表征向量构建跳转顺序图;将所述跳转顺序图输入至所述表征聚合网络,以基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量。
在本申请实施例中,在将指令基本块输入至预训练模型之前还包括:对所述指令基本块中的指令序列进行编码得到对应的令牌,其中所述令牌对应唯一标识;存储所述令牌与对应标识至汇编查找表;则所述将所述指令基本块输入至预训练模型包括:获取标识,基于所述汇编查找表确定所述标识对应的令牌;根据所述令牌获得所述指令基本块;将获得的所述指令基本块输入至预训练模型。
步骤S604,将切片表征向量和第一配置参数输入至预测模型,以基于预测模型的参数预测处理器的性能,输出性能指标值,其中预测模型的参数的部分或全部为预先训练好的预测模型的参数。
其中预测模型的相关内容可以参考上述,在此不再赘述。由上述预训练模块20将切片表征向量和第一配置参数输入至预测模型,以基于预测模型的参数预测处理器的性能,输出性能指标值。
上述处理器性能预测方法可以运行在电子设备、如处理器上,或由上述处理器性能分析软件执行。
下面将对本申请实施例提供的处理器性能预测系统100、处理器性能预测方法所带来的测试结果进行说明。
请参阅表2,表2示例性地展示了本申请实施例在高性能计算(High PerformanceComputing,HPC)数据集上的初步测试结果。
表2
Figure BDA0004087448620000091
由表2可知,引入切片表征向量进行性能预测提高了性能预测的准确度。相比于不使用切片表征向量,使用切片表征向量进行性能预测R2指标高于基线3.79%。其中,R2指标可以用于评估模型的有效性和准确性。
请参阅表3,表3示例性地展示了本申请实施例在30个场景下进行迁移预测的初步测试结果。
表3
Figure BDA0004087448620000092
由表3可知,在20个任务场景迁移到10个任务场景和10个场任务景迁移到20个任务场景两个实验设置下,经过快速微调,在R2指标下可以达到约86%的准确率,通过迁移学习可以准确且高效的推断新场景性能。
请参阅图7,示例性介绍本申请实施例提供的电子设备700结构。该电子设备700包括:处理器701、存储器702和总线703。处理器701和存储器702之间通过总线703通信。电子设备可以是服务器或终端设备。应理解,本申请不限定电子设备中的处理器、存储器的个数。
总线703可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线704可包括在电子设备100各个部件(例如,存储器702、处理器701)之间传送信息的通路。
处理器701可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器702可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器701还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器702中存储有可执行的代码。
在该电子设备700实现为接入服务器时,处理器701执行该可执行的代码以分别实现图6所示的处理器性能预测方法。也即,存储器702上存有用于执行该处理器性能预测方法的指令。
在该电子设备700实现为元数据服务器时,处理器701执行该可执行的代码以分别实现图6所示的处理器性能预测方法。也即,存储器702上存有用于执行该处理器性能预测方法的指令。
本申请实施例还提供了一种包含指令的计算机程序产品。计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行处理器性能预测方法。
本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,指令指示计算设备执行处理器性能预测方法。
其中,本申请实施例提供的电子设备、计算机存储介质、计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器202(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。

Claims (13)

1.一种处理器性能预测系统,其特征在于,包括:
第一获取模块,用于获取第一指令流,并处理所述第一指令流得到指令基本块,其中所述第一指令流为目标程序在所述处理器上运行时所述处理器执行的指令序列;
预训练模块,用于将所述指令基本块输入至预训练模型,以基于所述预训练模型的参数对所述指令基本块进行特征提取,得到切片表征向量;
第二获取模块,用于获取第一配置参数,其中所述第一配置参数为所述处理器的硬件架构配置参数;
性能预测模块,用于获取所述切片表征向量和所述第一配置参数,将所述切片表征向量和所述第一配置参数输入至预测模型,以基于所述预测模型的参数预测所述处理器的性能,输出性能指标值,其中,所述预测模型的参数的部分或全部为预先训练好的预测模型的参数。
2.如权利要求1所述处理器性能预测系统,其特征在于,所述预训练模型包括:
变换器模型,用于基于所述变换器模型的参数对所述指令基本块进行特征提取,得到表征向量;
表征聚合网络,用于基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量。
3.如权利要求2所述处理器性能预测系统,其特征在于,所述基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量包括:
获取各个指令基本块之间的跳转关系;
将所述跳转关系和所述表征向量输入至所述表征聚合网络,基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量。
4.如权利要求3所述处理器性能预测系统,其特征在于,所述将所述跳转关系和所述表征向量输入至所述表征聚合网络,基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量包括:
根据所述跳转关系确定各个所述表征向量之间的关系,根据各个所述表征向量之间的关系以及各个所述表征向量构建跳转顺序图;
将所述跳转顺序图输入至所述表征聚合网络,以基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量。
5.如权利要求1至4中任一项所述处理器性能预测系统,其特征在于,还包括:
指令编码器,用于对所述指令基本块的指令序列进行编码得到对应的令牌,其中所述令牌对应唯一标识。
6.一种处理器性能预测方法,其特征在于,所述方法包括:
获取第一指令流和第一配置参数,其中所述第一指令流为所述第一指令流为目标程序在所述处理器上运行时所述处理器所执行的指令序列,所述第一配置参数为所述处理器的硬件配置参数;
对所述第一指令流进行处理得到指令基本块;
将所述指令基本块输入至预训练模型,以基于所述预训练模型的参数对所述指令基本块进行特征提取,得到切片表征向量;
将所述切片表征向量和所述第一配置参数输入至预测模型,以基于所述预测模型的参数预测所述处理器的性能,输出性能指标值,其中所述预测模型的参数的部分或全部为预先训练好的预测模型的参数。
7.如权利要求6所述处理器性能预测方法,其特征在于,所述预训练模型包括:变换器模型和表征聚合网络,则所述基于所述预训练模型的参数对所述指令基本块进行特征提取,得到切片表征向量包括:
基于所述变换器模型的参数对所述指令基本块进行特征提取,得到表征向量;
基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量。
8.如权利要求7所述处理器性能预测方法,其特征在于,所述基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量包括:
获取各个指令基本块之间的跳转关系;
将所述跳转关系和所述表征向量输入至所述表征聚合网络,基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量。
9.如权利要求8所述处理器性能预测方法,其特征在于,所述将所述跳转关系和所述表征向量输入至所述表征聚合网络,基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量包括:
根据所述跳转关系确定各个所述表征向量之间的关系,根据各个所述表征向量之间的关系以及各个所述表征向量构建跳转顺序图;
将所述跳转顺序图输入至所述表征聚合网络,以基于所述表征聚合网络的参数对所述表征向量进行聚合,得到切片表征向量。
10.如权利要求6至9中任一项所述处理器性能预测方法,其特征在于,在将所述指令基本块输入至预训练模型之前还包括:
对所述指令基本块中的指令序列进行编码得到对应的令牌,其中所述令牌对应唯一标识;
存储所述令牌与对应标识至汇编查找表;
则所述将所述指令基本块输入至预训练模型包括:
获取标识,基于所述汇编查找表确定所述标识对应的令牌;
根据所述令牌获得所述指令基本块;
将获得的所述指令基本块输入至预训练模型。
11.一种电子设备,其特征在于,包括存储器和处理器,其中,所述存储器用于存储计算机可读指令;所述处理器用于读取所述计算机可读指令并实现如权利要求6至10中任一项所述处理器性能预测方法。
12.一种计算机存储介质,其特征在于,存储有计算机可读指令,且所述计算机可读指令在被处理器执行时实现如权利要求6至10中任一项所述处理器性能预测方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品中包含计算机可读指令,当该计算机可读指令被处理器执行时实现权利要求6至10中任一项所述处理器性能预测方法。
CN202310131269.2A 2023-02-10 2023-02-10 处理器性能预测系统、方法以及相关设备 Pending CN116166550A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310131269.2A CN116166550A (zh) 2023-02-10 2023-02-10 处理器性能预测系统、方法以及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310131269.2A CN116166550A (zh) 2023-02-10 2023-02-10 处理器性能预测系统、方法以及相关设备

Publications (1)

Publication Number Publication Date
CN116166550A true CN116166550A (zh) 2023-05-26

Family

ID=86410922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310131269.2A Pending CN116166550A (zh) 2023-02-10 2023-02-10 处理器性能预测系统、方法以及相关设备

Country Status (1)

Country Link
CN (1) CN116166550A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116627433A (zh) * 2023-07-18 2023-08-22 鹏城实验室 Ai处理器实时的参数预测方法、系统、设备及介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116627433A (zh) * 2023-07-18 2023-08-22 鹏城实验室 Ai处理器实时的参数预测方法、系统、设备及介质
CN116627433B (zh) * 2023-07-18 2024-01-09 鹏城实验室 Ai处理器实时的参数预测方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
US10671933B2 (en) Method and apparatus for evaluating predictive model
US9715663B2 (en) Predicting application performance on hardware accelerators
Poovey et al. A benchmark characterization of the EEMBC benchmark suite
CN111258767B (zh) 复杂系统仿真应用的云计算资源智能分配方法与装置
CN110929860B (zh) 一种卷积加速运算方法、装置、存储介质及终端设备
US9436512B2 (en) Energy efficient job scheduling in heterogeneous chip multiprocessors based on dynamic program behavior using prim model
US20150310335A1 (en) Determining a performance prediction model for a target data analytics application
US9886274B2 (en) Branch synthetic generation across multiple microarchitecture generations
CN104778079A (zh) 用于调度、执行的装置和方法以及分布式系统
US11579680B2 (en) Methods and devices for power management based on synthetic machine learning benchmarks
CN116501505B (zh) 负载任务的数据流生成方法、装置、设备及介质
CN112433853B (zh) 一种面向超级计算机数据并行应用的异构感知数据划分方法
CN116166550A (zh) 处理器性能预测系统、方法以及相关设备
CN114428748A (zh) 一种用于真实业务场景的模拟测试方法及系统
US10831638B2 (en) Automated analytics for improving reuse of application solutions
Li et al. Inference latency prediction at the edge
CN109947559B (zh) 优化MapReduce计算的方法、装置、设备和计算机存储介质
US9769025B2 (en) Predicting the performance of a multi-stage communications network under load from multiple communicating servers
CN108564135B (zh) 构建骨架程序并实现高性能计算程序运行时间预测的方法
CN112131468A (zh) 推荐系统中的数据处理方法、装置
Nouri et al. Maximal software execution time: a regression-based approach
CN111813887B (zh) 基于人工智能的现金流数据分析方法、装置、设备及介质
CN111061513B (zh) 加速计算设备建模的方法、电子设备及可读存储介质
WO2024087844A1 (zh) 图神经网络的训练方法、训练系统及异常账号识别方法
Beltran et al. Towards Efficient and Scalable Training of Differentially Private Deep Learning

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination