CN108664368B - 处理器性能指标评估方法及设备 - Google Patents
处理器性能指标评估方法及设备 Download PDFInfo
- Publication number
- CN108664368B CN108664368B CN201710203276.3A CN201710203276A CN108664368B CN 108664368 B CN108664368 B CN 108664368B CN 201710203276 A CN201710203276 A CN 201710203276A CN 108664368 B CN108664368 B CN 108664368B
- Authority
- CN
- China
- Prior art keywords
- vector
- column vector
- segment
- model
- optimal value
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种处理器性能指标评估及设备。该方法包括:获取测试程序中的指令流,将指令流划分为多个不等长片段;计算每个不等长片段的特征指标向量,并根据每个不等长片段的特征指标向量构造特征矩阵;计算特征矩阵的每一行的平均值,得到列向量;统计每个不等长片段的运行总时间,得到运行时间向量;根据特征矩阵、列向量、运行时间向量和最优化变量列向量,构建最优化模型;根据最优化模型确定测试程序的特征指标。本申请实施例通过获取测试程序中的指令流,并将指令流划分为多个不等长片段,从测试程序中挑选出具有代表性片段的自由度较高,相比于将指令流划分为多个等长片段,提高了仿真器运行代表性片段得到的CPU指标的精确度。
Description
技术领域
本申请涉及通信技术,尤其涉及一种处理器性能指标评估方法及设备。
背景技术
在处理器体系架构设计与开发中,需要在某种体系架构的仿真器里运行测试程序,仿真器是能够模拟中央处理器(Central Processing Unit,CPU)运行得到CPU指标的软件或硬件,根据CPU指标可以找到当前处理器体系架构的瓶颈,进而对当前处理器体系架构进行改进。
但是每次对体系架构做改动后,都要重新运行测试程序来采集新架构下的数据,导致测试周期较长,因此,现有技术从精简测试程序的角度出发,来缩短测试周期,具体地,从测试程序中挑选出具有代表性的片段,仿真器运行选择出的代表性片段,用代表性片段的运行结果代替测试程序的运行结果。
但是,现有技术中从测试程序中挑选出具有代表性片段的自由度低,导致仿真器运行代表性片段得到的CPU指标的精确度较低。
发明内容
本申请实施例提供一种处理器性能指标评估方法及设备,以提高仿真器运行代表性片段得到的CPU指标的精确度。
第一方面,本申请提供一种处理器性能指标评估方法,包括:
获取测试程序中的指令流,并将该指令流划分为多个不等长片段,该不等长片段包括该指令流中的指令;
计算每个不等长片段的特征指标向量,并根据该每个不等长片段的特征指标向量构造特征矩阵;
计算该特征矩阵的每一行的平均值,得到列向量;
统计该每个不等长片段的运行总时间,得到运行时间向量;
根据该特征矩阵、该列向量、该运行时间向量和最优化变量列向量,构建最优化模型;
求解该最优化模型,得到该最优化变量列向量的解向量;
根据该最优化变量列向量的解向量中非零值的位置,从该多个不等长片段中选择出目标片段;
通过仿真器运行该目标片段,得到该目标片段对应的特征指标;
根据该目标片段对应的特征指标和该最优化变量列向量的解向量中的非零值,确定该测试程序的特征指标。
在一种可能的设计中,将该指令流划分为多个不等长片段,包括:
将该指令流划分为等长的基本片段,每个基本片段包括的该指令流中的指令的个数相等;
将连续的不同数量的基本片段组合成该多个不等长片段。
在一种可能的设计中,该指令流包括多个不同的基本块,该特征矩阵的行数为该指令流包括的不同的基本块的个数,该特征矩阵的列数为该不等长片段的个数,该特征矩阵的每一列表示一个不等长片段的特征指标向量。
在一种可能的设计中,该每个不等长片段的运行总时间包括该仿真器运行该不等长片段所需的准备时间和该仿真器运行该不等长片段的运行时间。
在一种可能的设计中,求解该最优化模型,得到该最优化变量列向量的解向量,包括:
在该最优化模型中引入第一松弛变量和第二松弛变量,得到第一模型;
求解该第一模型,得到该最优化变量列向量的解向量。
在一种可能的设计中,求解该第一模型,得到该最优化变量列向量的解向量,包括:
采用拉格朗日乘子法,在该第一模型中引入拉格朗日乘子,建立拉格朗日函数;
求解该拉格朗日函数,得到该最优化变量列向量的解向量。
在一种可能的设计中,求解该拉格朗日函数,得到该最优化变量列向量的解向量,包括:
固定该拉格朗日函数中的该第二松弛变量和惩罚参数,采用最小二乘法计算得到该第一松弛变量的最优值;
采用最小二乘法计算得到该第二松弛变量的最优值;
采用软阈值法计算得到该最优化变量列向量的最优值;
判断该最优化变量列向量的最优值是否满足该第一模型的约束条件;
若该最优化变量列向量的最优值满足该第一模型的约束条件,则更新该拉格朗日乘子和该惩罚参数;
若该最优化变量列向量的最优值不满足该第一模型的约束条件,则将该最优化变量列向量的最优值中的最小非零值设置为0,以使该最优化变量列向量的最优值满足该第一模型的约束条件;
至少根据该第二松弛变量的最优值、该最优化变量列向量的最优值、该运行时间向量,确定该第一模型是否满足收敛条件;
若该第一模型满足收敛条件,则确定该最优化变量列向量的最优值为该最优化变量列向量的解向量。
在一种可能的设计中,至少根据该第二松弛变量的最优值、该最优化变量列向量的最优值、该运行时间向量,确定该第一模型是否满足收敛条件,包括如下至少一种:
根据该第二松弛变量、该最优化变量列向量的最优值、该运行时间向量,确定该第一模型的约束条件是否满足收敛条件;
根据该第一松弛变量、该第二松弛变量、该最优化变量列向量的最优值、该特征矩阵、该列向量、该运行时间向量,确定该第一模型的优化目标是否满足收敛条件。
第二方面,本申请提供一种主机设备,包括:处理器和通信接口;
该处理器用于获取测试程序中的指令流,并将该指令流划分为多个不等长片段,该不等长片段包括该指令流中的指令;计算每个不等长片段的特征指标向量,并根据该每个不等长片段的特征指标向量构造特征矩阵;计算该特征矩阵的每一行的平均值,得到列向量;统计该每个不等长片段的运行总时间,得到运行时间向量;根据该特征矩阵、该列向量、该运行时间向量和最优化变量列向量,构建最优化模型;求解该最优化模型,得到该最优化变量列向量的解向量;根据该最优化变量列向量的解向量中非零值的位置,从该多个不等长片段中选择出目标片段;
该通信接口与仿真器连接,该仿真器用于运行该目标片段,并得到该目标片段对应的特征指标;
该处理器通过该通信接口将该目标片段发送给该仿真器,并通过该通信接口接收该仿真器发送的该目标片段对应的特征指标;并根据该目标片段对应的特征指标和该最优化变量列向量的解向量中的非零值,确定该测试程序的特征指标。
在一种可能的设计中,该处理器具体用于将该指令流划分为等长的基本片段,每个基本片段包括的该指令流中的指令的个数相等;将连续的不同数量的基本片段组合成该多个不等长片段。
在一种可能的设计中,该指令流包括多个不同的基本块,该特征矩阵的行数为该指令流包括的不同的基本块的个数,该特征矩阵的列数为该不等长片段的个数,该特征矩阵的每一列表示一个不等长片段的特征指标向量。
在一种可能的设计中,该每个不等长片段的运行总时间包括该仿真器运行该不等长片段所需的准备时间和该仿真器运行该不等长片段的运行时间。
在一种可能的设计中,该处理器求解该最优化模型,得到该最优化变量列向量的解向量时,具体用于:
在该最优化模型中引入第一松弛变量和第二松弛变量,得到第一模型;
求解该第一模型,得到该最优化变量列向量的解向量。
在一种可能的设计中,该处理器求解该第一模型,得到该最优化变量列向量的解向量时,具体用于:
采用拉格朗日乘子法,在该第一模型中引入拉格朗日乘子,建立拉格朗日函数;
求解该拉格朗日函数,得到该最优化变量列向量的解向量。
在一种可能的设计中,该处理器求解该拉格朗日函数,得到该最优化变量列向量的解向量时,具体用于:
固定该拉格朗日函数中的该第二松弛变量和惩罚参数,采用最小二乘法计算得到该第一松弛变量的最优值;
采用最小二乘法计算得到该第二松弛变量的最优值;
采用软阈值法计算得到该最优化变量列向量的最优值;
判断该最优化变量列向量的最优值是否满足该第一模型的约束条件;
若该最优化变量列向量的最优值满足该第一模型的约束条件,则更新该拉格朗日乘子和该惩罚参数;
若该最优化变量列向量的最优值不满足该第一模型的约束条件,则将该最优化变量列向量的最优值中的最小非零值设置为0,以使该最优化变量列向量的最优值满足该第一模型的约束条件;
至少根据该第二松弛变量的最优值、该最优化变量列向量的最优值、该运行时间向量,确定该第一模型是否满足收敛条件;
若该第一模型满足收敛条件,则确定该最优化变量列向量的最优值为该最优化变量列向量的解向量。
在一种可能的设计中,该处理器至少根据该第二松弛变量的最优值、该最优化变量列向量的最优值、该运行时间向量,确定该第一模型是否满足收敛条件时,具体用于如下至少一种:
根据该第二松弛变量、该最优化变量列向量的最优值、该运行时间向量,确定该第一模型的约束条件是否满足收敛条件;
根据该第一松弛变量、该第二松弛变量、该最优化变量列向量的最优值、该特征矩阵、该列向量、该运行时间向量,确定该第一模型的优化目标是否满足收敛条件。
本申请的又一方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本申请的再一方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
可见,在以上各个方面,通过获取测试程序中的指令流,并将指令流划分为多个不等长片段,由于不等长片段可以随意选择,从测试程序中挑选出具有代表性片段的自由度较高,相比于将指令流划分为多个等长片段,提高了仿真器运行代表性片段得到的CPU指标的精确度。
附图说明
图1为本申请实施例提供的一种仿真器运行测试程序的示意图;
图2为本申请实施例提供的一种测试程序在运行过程中的阶段性特征的示意图;
图3为本申请实施例提供的一种运行测试程序的示意图;
图4为本申请实施例提供的一种片段的结构示意图;
图5为本申请实施例提供的另一种片段的结构示意图;
图6为本申请实施例提供的一种K-Means聚类的示意图;
图7为本申请实施例提供的一种计算测试程序指标方法的示意图;
图8为本申请实施例提供的一种应用场景示意图;
图9为本申请实施例提供的一种处理器性能指标评估方法的流程示意图;
图10为本申请实施例提供的一种划分多个不等长片段方法的示意图;
图11为本申请实施例提供的一种特征矩阵的结构示意图;
图12为本申请实施例提供的一种基本片段合并为多个不等长片段的示意图;
图13为本申请实施例提供的一种计算硬件模拟器运行基本片段、不等长片段、等长片段的总时间方法的示意图;
图14为本申请实施例提供的一种最优化变量列向量的系数分布的示意图;
图15为本申请实施例提供的另一种计算测试程序指标方法的示意图;
图16为本申请实施例提供的一种处理器性能指标评估方法的流程示意图;
图17为本申请实施例提供的一种主机设备的结构示意图。
具体实施方式
在处理器体系架构设计与开发中,需要在某种体系架构的仿真器里运行测试程序,仿真器是能够模拟中央处理器(Central Processing Unit,CPU)运行得到CPU指标的软件或硬件,如图1所示,CPU指标具体可以是每时钟指令数(Instruction Per Cycle,IPC),L2缓冲(Cache)命中率,能耗等,其中,处理器性能以IPC衡量,该指标主要受制于cache预测失败情况及相应的输入输出(Input/Output,I/O)等待情况,各级cache(L1/L2/L3)预测失败反映缓存预取算法性能,翻译后备缓冲器(Translation Lookaside Buffer,TLB)Cache反映页表缓存预取算法性能;所选的CPU指标旨在体现不同条件下CPU的行为特征,为CPU在该条件下的优化提供关键参考。
根据CPU指标可以找到当前处理器体系架构的瓶颈,进而对当前处理器体系架构进行改进,在改进体系架构后,将设计重新部署在仿真器中,重新用仿真器运行测试程序,收集数据,对比新旧体系结构下运行同一个测试程序的性能差异,然后重新找瓶颈,重复以上步骤,直到找到一种符合设计要求的体系架构,并最终用硬件实现。可见在用硬件部署前,大量的设计测试工作是用软件仿真器完成的。但软件仿真平台的一大缺点就是:运行相同的测试程序,其运行时间要比硬件平台的运行时间长很多。尤其在运行大型的全面的测试程序套件(如SPEC CPU 2006)时,经常要等待数周甚至数月才能得到自己所需的数据。而且每次对体系架构做改动后,都要重新运行测试程序来采集新架构下的数据,因此这种反复的运行,等待将严重影响开发效率。
但是,测试程序的运行过程有明显的阶段性特征,如图2所示,IPC、L2Cache命中率等的变化区域与变化幅度,都呈现一种阶段性特征,虽然一个测试程序运行的时间很长,但这么长的时间内通常只有不多的几种类型。如果两个片段有相近(同)的类型,那么当它们运行于同种体系结构时,会表现出相近(同)的性能参数。并且这些现象与体系结构无关。因此可以从精简测试程序的角度出发,来缩短仿真所需时间,如图3所示,从指令流中抓取一组片段例如N个片段,每个片段相比于测试程序非常小,仿真一个片段所需的时间远远小于仿真测试程序所需的时间。因此,可以从N个片段中选取出具有代表性的M个片段,M远远小于N,仿真器可仿真M个片段中的每个片段,仿真器运行每个片段后得到每个片段对应的指标值,例如,仿真器运行M个片段后得到M个片段中每个片段的指标值,然后对M个指标值进行加权平均,得到该M个片段的指标即片段总指标,用该M个片段的指标代表测试程序的指标即代码总指标,以达到节省时间的目的。
为了精简测试程序,首先要做的是收集测试程序运行过程中的基本信息,简单来说就是抓指令流。记录指令流信息的文件称为指令流文件,指令流文件的每一行都代表一条执行过的指令的相关信息,并且遵循统一的格式,包括如下:程序指针:汇编指令:操作类型(:内存地址);其中,每行的程序指针是指该行汇编指令在内存中的地址,它是一个以“0x”开头的十六进制数;汇编指令是指该条指令的二进制指令码,需要符合汇编语法要求;所有汇编指令可分为四种操作类型:算数逻辑单元操作、读内存、写内存和控制指令;如果汇编指令的操作类型是算数逻辑单元操作,则无需内存地址,如果汇编指令的操作类型是读内存操作和/或写内存操作,则需要内存地址。
指令流文件大小是固定的(这里的大小不是指文件内容所占的字节数,而是指一个指令流文件一般包含例如1亿条指令的信息),一个完整的测试程序可以被视为由多个1亿条指令组成的指令流,每个1亿条指令被称为一个片段(即Interval),换句话说,一个完整的测试程序是由多个片段组成的。测试程序的全集是所有片段,测试程序的子集是部分片段。那么精简测试程序这个问题就变成了从全集中挑选具有代表性的部分片段,也就是子集;同时要求所挑选出来的片段数越少越好,这些片段的运行结果与原始测试程序的运行结果相似度越高越好。
从上述指令流文件结构中的操作类型这项的种类可以看到,有一类指令被称为控制指令,例如跳转指令,这一类指令可以作为程序阶段性特征的一个分界点,因此,可以将指令流分为多个基本块(Basic Block,BB),如图4所示,指令流包括但不限于指令A-指令L,根据指令流中的控制指令,可以将指令流分化为多个基本块,具体可包括如下几种可能的情况:
一种可能的情况是:指令A、指令E、指令G、指令H、指令L分别是控制指令,则可以以每个控制指令为开头划分指令流。
另一种可能的情况是:指令D、指令F、指令G、指令K、指令L分别是控制指令,则可以以每个控制指令开始划分指令流为结尾划分指令流。
通过上述两种可能的情况,可以将如图4所示的指令流划分为5个基本块。此处只是示意性说明,本申请实施例不限定指令流中指令的个数,也不限定指令流中控制指令的位置,也不限定对指令流进行划分后得到的基本块的个数。因此,测试程序的每个片段都可以由基本块BB组成,通过统计每个片段中不同种类BB的执行次数,即可得到每个片段的基本块向量,假设如图4所示的5个BB是互不相同的BB,第1个BB在该片段中被执行的次数为1,第2个BB在该片段中被执行的次数为20,第3个BB在该片段中被执行的次数为0,第4个BB在该片段中被执行的次数为5,第5个BB在该片段中被执行的次数为0,如图4可知,第1个BB包含5条指令、第2个BB包含2条指令、第3个BB包含1条指令、第4个BB包含4条指令、第5个BB包含1条指令,则第1个BB中被执行的指令的个数为5,第2个BB中被执行的指令的个数为40,第3个BB中被执行的指令的个数为0,第4个BB中被执行的指令的个数为20,第5个BB中被执行的指令的个数为0。假设该片段一共包括100条指令,则第1个BB所占的比例为5%,第2个BB所占的比例为40%,第3个BB所占的比例为0%,第4个BB所占的比例为20%,第5个BB所占的比例为0%。因此,该片段前5个BB对应的基本块向量(Basic Block Vector,BBV)可以表示成为如图5所示的50。同理,可以得到与每个片段一一对应的基本块向量BBV。
现有技术提供的一种计算测试程序指标的方法包括如下步骤:
步骤1、抓取测试程序的指令流,将指令流切分成等长度的片段,计算每个片段的BBV。
步骤2、对所有片段的BBV进行K-Means聚类,K-Means聚类的示意图如图6所示,每类选择最接近中心的一个片段作为本类的代表片段。
步骤3、对代表片段仿真测试其指标。由于不同的片段类别在整个指令流中出现的比重不同,所以用每种类别的代表片段测出的指标乘以本类片段占总片段的比例,即计算加权平均来代表测试程序的指标。如图7所示,指令流包括多个片段,每个片段如图7所示的70,从多个片段中挑选出代表片段记为片段81、片段82、片段83、片段84、片段85,其中,X1表示片段81所属类的片段占整体片段的比例,X2表示片段82所属类的片段占整体片段的比例,X3表示片段83所属类的片段占整体片段的比例,X4表示片段84所属类的片段占整体片段的比例,X5表示片段85所属类的片段占整体片段的比例。C1表示片段81的测试指标,C2表示片段82的测试指标,C3表示片段83的测试指标,C4表示片段84的测试指标,C5表示片段85的测试指标,则X1×C1+X2×C2+X3×C3+X4×C4+X5×C5表示测试程序的测试指标C。但是,现有技术中从测试程序中挑选出具有代表性片段的自由度低,导致仿真器运行代表性片段得到的CPU指标的精确度较低,为了解决该问题,本申请实施例提供了一种处理器性能指标评估方法,下面结合具体场景对实施例进行说明:
图8为本申请实施例提供的一种应用场景示意图,包括主机和仿真器,主机与仿真器通信连接。主机可以是一个通用计算机、服务器或PC机等,主机里面设置有一块底板,底板上安装有CPU、内存、控制外设的芯片等,外设例如为串行口、并行口等,该底板用于计算和对通信结构进行控制,实现主机的功能。主机具体可通过USB、PCIE或其他通信接口与仿真器相连。仿真器是能够模拟CPU运行得到CPU指标(例如IPC)的软件或者硬件(硬件一般称为模拟器),一般在CPU设计阶段使用。如果CPU芯片已经设计出来,CPU芯片运行片段也可以得到CPU指标作为仿真器使用。当测试程序在主机上运行的过程中,指令流抓取程序也运行在主机上,负责抓取测试程序的二进制代码,并将该二进制代码存储在主机上。片段筛选程序在主机上运行负责挑选片段。当片段二进制代码生成后仿真器负责运行该片段,并获得CPU运行片段的指标如IPC等。然后,片段指标被仿真器发送给主机,存储在主机上。当所有的片段都在仿真器上运行得到指标后,主机负责将片段指标乘以系数相加后得到片段总指标,该片段总指标就是我们想得到的处理器指标估计值。
图9为本申请实施例提供的一种处理器性能指标评估方法的流程示意图。如图9所示,该方法具体包括如下步骤:
步骤S901、获取测试程序中的指令流,并将该指令流划分为多个不等长片段,该不等长片段包括该指令流中的指令。
本申请实施例的执行主体具体可以是如图8所示的主机,主机获取测试程序中的指令流,并将该指令流划分为多个不等长片段,一种可实现的方式是:主机将该指令流划分为等长的基本片段,每个基本片段包括的该指令流中的指令的个数相等;将连续的不同数量的基本片段组合成该多个不等长片段。如图10所示,指令流被划分为等长的基本片段,一个基本片段如图10所示的100,且每个基本片段包括的该指令流中的指令的个数相等,例如,将连续的4个基本片段组合成一个片段101,将连续的5个基本片段组合成一个片段102,将连续的6个基本片段组合成一个片段103,将连续的7个基本片段组合成一个片段104,将连续的8个基本片段组合成一个片段105,其中,片段101、片段102、片段103、片段104、片段105为多个不等长片段,不等长片段中包括的指令流中的指令的个数不等。可见,构成多个不等长片段的基本片段的个数即4、5、6、7、8成等差数列。在本申请的其他实施例中,构成多个不等长片段的基本片段的个数可以不成等差数列,而是随机的数列。
步骤S902、计算每个不等长片段的特征指标向量,并根据该每个不等长片段的特征指标向量构造特征矩阵。
在本申请实施例中,不等长片段的特征指标向量具体可以是不等长片段的基本块向量BBV,计算每个不等长片段的基本块向量的方法可分为如下几种可实现的方式:
一种可实现的方式是:与计算每个片段的基本块向量的方法一致,具体如图5所示,此处不再赘述。
另一种可实现的方式是:根据构成不等长片段的每个基本片段的基本块向量,得到不等长片段的基本块向量,每个基本片段的基本块向量的计算方法具体如图5所示,此处不再赘述,假设构成不等长片段的基本片段包括:基本片段1、基本片段2和基本片段3,此处只是示意性说明,本申请实施例并不限定构成一个不等长片段的基本片段的个数,基本片段1、基本片段2和基本片段3的基本块向量分别为BBV1、BBV2、BBV3,则由基本片段1、基本片段2和基本片段3构成的不等长片段的基本块向量为(BBV1+BBV2+BBV3)/3。
根据上述两种方式可得到图10所示的多个不等长片段例如片段101、片段102、片段103、片段104、片段105分别对应的基本块向量,此处,将片段101的基本块向量记为A1,将片段102的基本块向量记为A2,将片段103的基本块向量记为A3,将片段104的基本块向量记为A4,将片段105的基本块向量记为A5。根据每个不等长片段例如片段101、片段102、片段103、片段104、片段105分别对应的基本块向量可构造一个特征矩阵A,则A1为特征矩阵A的第1列,A2为特征矩阵A的第2列,A3为特征矩阵A的第3列,A4为特征矩阵A的第4列,A5为特征矩阵A的第5列。不是一般性,如图11所示,特征矩阵A是一个M行N列的矩阵,特征矩阵A的行数即M为指令流包括的不同的基本块的个数,特征矩阵A的列数即N为不等长片段的个数,特征矩阵A的每一列表示一个不等长片段的特征指标向量例如基本块向量BBV。
步骤S903、计算该特征矩阵的每一行的平均值,得到列向量。
假设Ai,j表示特征矩阵A的第i行第j列的元素,则1≤i≤M,1≤j≤N,Bi表示列向量B的第i个元素,1≤i≤M,则计算特征矩阵A的每一行的平均值可得到列向量B,具体的,Ai,j和Bi的关系如公式(1)所示:
即列向量B的每一个元素和特征矩阵A的每一行元素之间的关系满足公式(1)所示的关系。
步骤S904、统计每个不等长片段的运行总时间,得到运行时间向量。
在本申请实施例中,每个不等长片段的运行总时间包括该仿真器运行该不等长片段所需的准备时间和该仿真器运行该不等长片段的运行时间。如图12所示,假设每个基本片段包括2000万条指令,基本片段的总数为23个,则23个基本片段构成多个不等长片段的一种可实现的方式是:将相邻的、不重叠的2个、3个、5个、7个、2个、4个基本片段分别进行合并,得到如图12所示的6个不等长片段,此处只是示意性说明,本申请实施例不限定构成不等长片段的基本片段的个数,也不限定由基本片段组合构成的不等长片段的个数。
如图13所示,假设硬件模拟器的准备时间为25分钟,一个1亿指令的片段运行时间为5分钟,一个2000万长度的基本片段的运行时间为1分钟。如果基本片段没有合并为不等长片段,则硬件模拟器运行23个基本片段所需要的总时间为硬件模拟器运行23个基本片段所需要的准备时间23*25和硬件模拟器运行23个基本片段的运行时间23*1的和,即23*25+23*1=598分钟。如果23个基本片段合并为6个不等长片段,则硬件模拟器运行该6个不等长片段所需要的总时间为硬件模拟器运行该6个不等长片段所需要的准备时间6*25和硬件模拟器运行23个基本片段的运行时间23*1的和,即6*25+23*1=173分钟。如果采用等长的片段,每个等长片段包括1亿个指令,则硬件模拟器运行8个等长片段所需要的总时间为硬件模拟器运行8个等长片段所需要的准备时间8*25和硬件模拟器运行8个等长片段的运行时间8*5的和,即8*25+8*5=240分钟。可见,通过对基本片段进行合并构成不等长片段,硬件模拟器运行不等长片段的总时间最小。
在本申请实施例中,硬件模拟器运行不同长度片段所需要的准备时间相同,例如均为25分钟,硬件模拟器运行不同长度片段的运行时间与片段的长度相关,并且运行时间和片段长度严格成正比关系,例如,一个1亿指令的片段运行时间为5分钟,一个2000万长度的基本片段的运行时间为1分钟,可见,1亿是2000万的5倍,则硬件模拟器运行一个1亿指令的片段的运行时间例如5分钟是硬件模拟器运行一个2000万长度的基本片段的运行时间1分钟的5倍。但是,在本申请的其他实施例中,硬件模拟器运行不同长度片段所需要的准备时间可以不同,硬件模拟器运行不同长度片段的运行时间与片段的长度无关,或者,即使硬件模拟器运行不同长度片段的运行时间与片段的长度相关,但运行时间和片段长度不严格成正比关系。
通过上述方法可以计算每个不等长片段的运行总时间,得到运行时间向量,即该运行时间向量的每个值表示一个不等长片段的运行总时间,本申请实施例将该运行时间向量记为W。
步骤S905、根据该特征矩阵、该列向量、该运行时间向量和最优化变量列向量,构建最优化模型。
根据步骤S902得到的特征矩阵A、步骤S903得到的列向量B、步骤S904得到的运行时间向量W,构建最优化模型,具体地,将特征矩阵A、列向量B、运行时间向量W作为输入,设置一个最优化变量列向量X,根据模拟器的代价信息建立最优化模型,该最优化模型可通过公式(2)、(3)、(4)确定:
AX=B (3)
||X||0+λ<W,f(X)>≤c (4)
其中,公式(2)是该最优化模型的优化目标,公式(3)和公式(4)是该最优化模型的约束条件,另外,在本申请的其他实施例中,公式(2)也可以是该最优化模型的约束条件,公式(3)和公式(4)是该最优化模型的优化目标。||X||1表示最优化变量列向量X的1范数,f(X)表示逻辑函数,表示最优化变量列向量X的2范数,λ是根据模拟器实际代价特征计算得到的,例如硬件模拟器准备时间为25分钟,一个1亿指令的片段运行时间为5分钟,基本片段的长度为1000万,则λ的值为(5/25)*(1000万/1亿)=1/50。c是一个取值较小的正整数。最优化变量列向量X是未知的,其包括非零值和零值。α是一个约束参数,由于表示最优化变量列向量X的2范数,则的值可能会较大,为了避免的值过大导致公式(2)的值太大,可以采用一个约束参数α限制的值。通常情况下,将这种采用约束参数α限制的值的方法称为正则化。
上述最优化模型的优化目标可分为如下几方面:
一个方面是:X中非零系数的个数,因为,X中非零系数的个数决定了模拟器的准备时间。
另一个方面是:X中非零系数对应的片段的运行时间即λ<W,f(X)>,在本申请实施例中,λ<W,f(X)>可以分如下两种可能的情况:
一种可能的情况是:硬件模拟器运行不同长度片段所需要的准备时间相同,例如均为25分钟,硬件模拟器运行不同长度片段的运行时间与片段的长度相关,并且运行时间和片段长度严格成正比关系,例如,一个1亿指令的片段运行时间为5分钟,一个2000万长度的基本片段的运行时间为1分钟,可见,1亿是2000万的5倍,则硬件模拟器运行一个1亿指令的片段的运行时间例如5分钟是硬件模拟器运行一个2000万长度的基本片段的运行时间1分钟的5倍。
另一种可能的情况是:硬件模拟器运行不同长度片段所需要的准备时间可以不同,硬件模拟器运行不同长度片段的运行时间与片段的长度无关,或者,即使硬件模拟器运行不同长度片段的运行时间与片段的长度相关,但运行时间和片段长度不严格成正比关系。
上述最优化模型的优化目标的再一方面是:最优化变量列向量X的2范数即在线性回归中,预测误差可以被分为两个部分,第一部分来自于偏误,而第二部分来自于方差,二者中的任意一个都能致使预测产生误差。如图14所示,141表示不采用α限制的情况下得到的最优化变量列向量X的系数分布,可见141表示的X的系数分布不均匀,误差主要由2,3,6,7决定;142表示采用α限制的情况下得到的最优化变量列向量X的系数分布,可见142表示的X的系数分布比较均匀,误差结果主要由各片段误差均值决定。通过图14可知,对目标函数的正则化主要用于收缩模型的系数,从而起到减小模型方差的作用。同时,模型系数的收缩有助于降低测量的误差。
上述最优化模型的约束条件可分为如下几方面:
一个方面:AX与B接近,如最小化,但不限于此。
另一个方面:最优化变量列向量X的的非零系数和片段运行时间不能超过整数c,即||X||0+λ<W,f(X)>≤c。
步骤S906、求解该最优化模型,得到该最优化变量列向量的解向量。
根据上述最优化模型可知,最优化变量列向量X是未知的,求解该最优化模型的目的是得到最优化变量列向量X的解向量,一种求解X的可实现的方式是:在该最优化模型即公式(2)(3)(4)中引入第一松弛变量Y和第二松弛变量Z,得到第一模型,该第一模型通过公式(5)、(6)、(7)、(8)确定:
X=Y (6)
Z=f(X) (7)
||X||0+λ<W,Z>≤c (8)
其中,δ表示比例参数;公式(6)、(7)、(8)是第一模型的约束条件,公式(5)是第一模型的优化目标,通过求解公式(5)、(6)、(7)、(8)对应的第一模型,可得到最优化变量列向量X的解向量。
步骤S907、根据该最优化变量列向量的解向量中非零值的位置,从该多个不等长片段中选择出目标片段;
根据步骤S906求解得到的最优化变量列向量X的解向量,可得到选择的目标片段的编号向量D和系数向量G,例如,根据步骤S901得到的不等长片段为6个,该不等长片段的编号分别是1、2、3、4、5、6,最优化变量列向量X的解向量的维度和不等长片段的个数是一致的,即最优化变量列向量X的解向量也有6个值,其中包括非零值和零值,例如,最优化变量列向量X的解向量为{0.2,0.3,0.4,0,0,0.02},此处指示示意性说明,本申请实施例不限定最优化变量列向量X的解向量的值的个数,也不限定最优化变量列向量X的解向量的具体值。根据最优化变量列向量X的解向量{0.2,0.3,0.4,0,0,0.02}可知,第4个元素和第5个元素的值为0,表示编号为4和5的不等长片段不作为选择的目标片段,X的第1个元素、第2个元素、第3个元素、第6个元素为非零值,则表示编号为1、2、3、6的不等长片段作为选择的目标片段,则选择的目标片段的编号向量D可表示为{1,2,3,6},表示编号为1、2、3、6的不等长片段作为选择的目标片段。最优化变量列向量X的解向量的非零值可构成系数向量G,系数向量G表示为{0.2,0.3,0.4,0.02}。
步骤S908、通过仿真器运行该目标片段,得到该目标片段对应的特征指标。
根据步骤S907得到目标片段的编号向量D后,主机可以将编号为1、2、3、6的不等长片段分别发送给仿真器,由仿真器分别运行编号为1、2、3、6的不等长片段,得到编号为1、2、3、6的不等长片段分别对应的特征指标例如IPC、预测分支成功、失败率等,仿真器具体可以根据每个不等长片段的入口地址,从该入口地址开始模拟该不等长片段,得到该不等长片段的特征指标例如IPC,可选地,编号为1的片段特征指标例如IPC为C1、编号为2的片段特征指标例如IPC为C2、编号为3的片段特征指标例如IPC为C3、编号为6的片段特征指标例如IPC为C6,则C1、C2、C3、和C6构成一个特征指标向量C,即C={C1,C2,C3,C6}。
步骤S909、根据该目标片段对应的特征指标和该最优化变量列向量的解向量中的非零值,确定该测试程序的特征指标。
主机根据目标片段例如编号为1、2、3、6的不等长片段分别对应的特征指标例如{C1,C2,C3,C6}和最优化变量列向量X的解向量的非零值即系数向量G{0.2,0.3,0.4,0.02}的内积即可得到测试程序的特征指标0.2*C1+0.3*C2+0.4*C3+0.02*C6。
不失一般性,如图15所示,假设不等长片段1、2、3、4、5为从指令流中选择出的具有代表性的目标片段,从指令流中选择不等长片段1、2、3、4、5的方法可以采用本申请实施例前述步骤所述的方法,此处不再赘述。仿真器运行片段1得到的特征指标为C1、运行片段2得到的特征指标为C2、运行片段3得到的特征指标为C3、运行片段4得到的特征指标为C4、运行片段5得到的特征指标为C5,最优化变量列向量X的解向量的非零值即系数向量G为{G1,G2,G3,G4,G5},由于代表性的目标片段的特征指标与测试程序的特征指标接近,因此,可以用特征指标向量{C1,C2,C3,C4,C5}和系数向量{G1,G2,G3,G4,G5}的内积得到该测试程序的特征指标即G1*C1+G2*C2+G3*C3+G4*C4+G5*C5。
本申请实施例通过获取测试程序中的指令流,并将指令流划分为多个不等长片段,由于不等长片段可以随意选择,从测试程序中挑选出具有代表性片段的自由度较高,相比于将指令流划分为多个等长片段,提高了仿真器运行代表性片段得到的CPU指标的精确度。
图16为本申请实施例提供的一种处理器性能指标评估方法的流程示意图。在上述实施例的基础上,通过求解公式(5)、(6)、(7)、(8)对应的第一模型,得到最优化变量列向量X的解向量的过程具体如图16所示的步骤如下:
步骤1601、采用拉格朗日乘子法,在第一模型中引入拉格朗日乘子,建立拉格朗日函数。
上述实施例通过在最优化模型即公式(2)(3)(4)中引入第一松弛变量Y和第二松弛变量Z,得到了由公式(5)、(6)、(7)、(8)确定的第一模型,本申请实施例介绍通过求解公式(5)、(6)、(7)、(8)对应的第一模型,得到最优化变量列向量X的解向量的过程。具体地,采用拉格朗日乘子法,在第一模型中引入拉格朗日乘子U,建立拉格朗日函数g(X,Y,Z,U,μ),其中,X表示需要求解的最优化变量列向量,Y表示第一松弛变量,Z表示第二松弛变量,μ表示惩罚参数。拉格朗日函数g(X,Y,Z,U,μ)可通过公式(9)确定:
相应的,第一模型可转换为第二模型,第二模型如公式(10)、(11)、(12)所示:
Z=f(X) (11)
||X||0+λ<W,Z>≤c (12)
其中,公式(10)是第二模型的优化目标,公式(11)和(12)是第二模型的约束条件。此处的c可以是预设的最大时间阈值,在一次优化过程中c是固定的,在不同的优化过程中c是可变的。
步骤1602、固定拉格朗日函数中的第二松弛变量Z和惩罚参数μ。
步骤1603、采用最小二乘法计算得到第一松弛变量Y的最优值。
步骤1604、采用最小二乘法计算得到第二松弛变量Z的最优值。
步骤1605、采用软阈值法计算得到最优化变量列向量X的最优值。
步骤1606、判断最优化变量列向量的最优值是否满足第一模型的约束条件;如果最优化变量列向量的最优值不满足第一模型的约束条件,则执行步骤S1607,如果最优化变量列向量的最优值满足第一模型的约束条件,则执行步骤S1608。
判断上述步骤得到的最优化变量列向量X的最优值、第二松弛变量Z的最优值、以及运行时间向量W是否满足公式(8),即判断时间是否大于预设的最大时间阈值c,如果最优化变量列向量X的最优值、第二松弛变量Z的最优值、以及运行时间向量W不满足公式(8),则执行步骤S1607,如果最优化变量列向量X的最优值、第二松弛变量Z的最优值、以及运行时间向量W满足公式(8),则执行步骤S1608。
步骤1607、将最优化变量列向量的最优值中的最小非零值设置为0,以使最优化变量列向量的最优值满足第一模型的约束条件。
假设最优化变量列向量X的最优值{0.2,0.3,0.4,0,0,0.02},由于最优化变量列向量X的最优值、第二松弛变量Z的最优值、以及运行时间向量W不满足公式(8),则可将最优化变量列向量X的最优值{0.2,0.3,0.4,0,0,0.02}中的最小非零值即0.02设置0,得到{0.2,0.3,0.4,0,0,0},再将{0.2,0.3,0.4,0,0,0}带到公式(8),判断公式(8)是否成立,如果成立,则执行步骤1608,如果将{0.2,0.3,0.4,0,0,0}带到公式(8),公式(8)还不成立,则将{0.2,0.3,0.4,0,0,0}中的最小非零值即0.2设置0,得到{0,0.3,0.4,0,0,0},再将{0,0.3,0.4,0,0,0}带到公式(8),重复执行,直到让优化变量列向量X的最优值满足公式(8),当优化变量列向量X的最优值满足公式(8)时,优化变量列向量X的最优值可能与步骤1605得到的优化变量列向量X的最优值不同。
步骤1608、更新拉格朗日乘子U和惩罚参数μ。
具体地,根据X=Y的残差更新U,并以固定倍数增大μ。
步骤1609、至少根据第二松弛变量Z的最优值、最优化变量列向量X的最优值、运行时间向量W,确定第一模型是否满足收敛条件,如果满足收敛条件,则结束;如果不满足收敛条件,则返回到步骤S1603,重复执行步骤S1603-步骤S1609,直到满足收敛条件。
至少根据第二松弛变量的最优值Z、最优化变量列向量X的最优值、运行时间向量W,确定第一模型是否满足收敛条件可分为如下可实现的方式:
一种可实现的方式是:根据第二松弛变量Z、最优化变量列向量X的最优值、运行时间向量W,确定第一模型的约束条件是否满足收敛条件,即确定公式(6)、(7)、(8)是否收敛。
另一种可实现的方式是:根据第一松弛变量Y、第二松弛变量Z、最优化变量列向量X的最优值、特征矩阵A、列向量B、运行时间向量W,确定第一模型的优化目标是否满足收敛条件,即确定公式(5)是否收敛。
当第一模型满足收敛条件时,根据步骤1601-1609确定的最优化变量列向量X的最优值即为本申请实施例所要求的最优化变量列向量X的解向量。
本申请实施例通过获取测试程序中的指令流,将指令流中的基本片段组合构成不等长片段,降低了硬件模拟器运行不等长片段的总时间,从而降低了模拟器的占用时间,同时,还考虑到降低系数对测量误差的影响,通过降低系数方差以降低误差,提高了测试程序的测试精确度。
图17为本申请实施例提供的一种主机设备的结构示意图。如图17所示,该主机设备170包括处理器171和通信接口172,其中,处理器171用于获取测试程序中的指令流,并将该指令流划分为多个不等长片段,该不等长片段包括该指令流中的指令;计算每个不等长片段的特征指标向量,并根据该每个不等长片段的特征指标向量构造特征矩阵;计算该特征矩阵的每一行的平均值,得到列向量;统计该每个不等长片段的运行总时间,得到运行时间向量;根据该特征矩阵、该列向量、该运行时间向量和最优化变量列向量,构建最优化模型;求解该最优化模型,得到该最优化变量列向量的解向量;根据该最优化变量列向量的解向量中非零值的位置,从该多个不等长片段中选择出目标片段;通信接口172与仿真器连接,该仿真器用于运行该目标片段,并得到该目标片段对应的特征指标;处理器171通过通信接口172将该目标片段发送给该仿真器,并通过通信接口172接收该仿真器发送的该目标片段对应的特征指标;并根据该目标片段对应的特征指标和该最优化变量列向量的解向量中的非零值,确定该测试程序的特征指标。
在图17中,进一步地,处理器171具体用于将该指令流划分为等长的基本片段,每个基本片段包括的该指令流中的指令的个数相等;将连续的不同数量的基本片段组合成该多个不等长片段。
在上述实施例中,该指令流包括多个不同的基本块,该特征矩阵的行数为该指令流包括的不同的基本块的个数,该特征矩阵的列数为该不等长片段的个数,该特征矩阵的每一列表示一个不等长片段的特征指标向量。
在上述实施例中,该每个不等长片段的运行总时间包括该仿真器运行该不等长片段所需的准备时间和该仿真器运行该不等长片段的运行时间。
在上述实施例中,处理器171求解该最优化模型,得到该最优化变量列向量的解向量的一种可实现的方式是:在该最优化模型中引入第一松弛变量和第二松弛变量,得到第一模型;求解该第一模型,得到该最优化变量列向量的解向量。
在上述实施例中,处理器171求解该第一模型,得到该最优化变量列向量的解向量的一种可实现的方式是:采用拉格朗日乘子法,在该第一模型中引入拉格朗日乘子,建立拉格朗日函数;求解该拉格朗日函数,得到该最优化变量列向量的解向量。
在上述实施例中,处理器171求解该拉格朗日函数,得到该最优化变量列向量的解向量的一种可实现的方式是:固定该拉格朗日函数中的该第二松弛变量和惩罚参数,采用最小二乘法计算得到该第一松弛变量的最优值;采用最小二乘法计算得到该第二松弛变量的最优值;采用软阈值法计算得到该最优化变量列向量的最优值;判断该最优化变量列向量的最优值是否满足该第一模型的约束条件;若该最优化变量列向量的最优值满足该第一模型的约束条件,则更新该拉格朗日乘子和该惩罚参数;若该最优化变量列向量的最优值不满足该第一模型的约束条件,则将该最优化变量列向量的最优值中的最小非零值设置为0,以使该最优化变量列向量的最优值满足该第一模型的约束条件;至少根据该第二松弛变量的最优值、该最优化变量列向量的最优值、该运行时间向量,确定该第一模型是否满足收敛条件;若该第一模型满足收敛条件,则确定该最优化变量列向量的最优值为该最优化变量列向量的解向量。
在上述实施例中,处理器171至少根据该第二松弛变量的最优值、该最优化变量列向量的最优值、该运行时间向量,确定该第一模型是否满足收敛条件分为如下几种可实现的方式:
一种可实现的方式是:根据该第二松弛变量、该最优化变量列向量的最优值、该运行时间向量,确定该第一模型的约束条件是否满足收敛条件。
另一种可实现的方式是:根据该第一松弛变量、该第二松弛变量、该最优化变量列向量的最优值、该特征矩阵、该列向量、该运行时间向量,确定该第一模型的优化目标是否满足收敛条件。
图17所示实施例的主机设备可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本申请实施例中的处理器,例如中央处理器(Central Processing Unit,CPU),还可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,ASIC),或,一个或多个微处理器(digitalsingnal processor,DSP),或,一个或者多个现场可编程门阵列(Field ProgrammableGate Array,FPGA)等。存储元件可以是一个存储器,也可以是多个存储元件的统称。
Claims (16)
1.一种处理器性能指标评估方法,其特征在于,包括:
获取测试程序中的指令流,并将所述指令流划分为多个不等长片段,所述不等长片段包括所述指令流中的指令;
计算每个不等长片段的特征指标向量,并根据所述每个不等长片段的特征指标向量构造特征矩阵;
计算所述特征矩阵的每一行的平均值,得到列向量;
统计所述每个不等长片段的运行总时间,得到运行时间向量;
根据所述特征矩阵、所述列向量、所述运行时间向量和最优化变量列向量,构建最优化模型;
求解所述最优化模型,得到所述最优化变量列向量的解向量;
根据所述最优化变量列向量的解向量中非零值的位置,从所述多个不等长片段中选择出目标片段;
通过仿真器运行所述目标片段,得到所述目标片段对应的特征指标;
根据所述目标片段对应的特征指标和所述最优化变量列向量的解向量中的非零值,确定所述测试程序的特征指标。
2.根据权利要求1所述的方法,其特征在于,所述将所述指令流划分为多个不等长片段,包括:
将所述指令流划分为等长的基本片段,每个基本片段包括的所述指令流中的指令的个数相等;
将连续的不同数量的基本片段组合成所述多个不等长片段。
3.根据权利要求2所述的方法,其特征在于,所述指令流包括多个不同的基本块,所述特征矩阵的行数为所述指令流包括的不同的基本块的个数,所述特征矩阵的列数为所述不等长片段的个数,所述特征矩阵的每一列表示一个不等长片段的特征指标向量。
4.根据权利要求3所述的方法,其特征在于,所述每个不等长片段的运行总时间包括所述仿真器运行所述不等长片段所需的准备时间和所述仿真器运行所述不等长片段的运行时间。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述求解所述最优化模型,得到所述最优化变量列向量的解向量,包括:
在所述最优化模型中引入第一松弛变量和第二松弛变量,得到第一模型;
求解所述第一模型,得到所述最优化变量列向量的解向量。
6.根据权利要求5所述的方法,其特征在于,所述求解所述第一模型,得到所述最优化变量列向量的解向量,包括:
采用拉格朗日乘子法,在所述第一模型中引入拉格朗日乘子,建立拉格朗日函数;
求解所述拉格朗日函数,得到所述最优化变量列向量的解向量。
7.根据权利要求6所述的方法,其特征在于,所述求解所述拉格朗日函数,得到所述最优化变量列向量的解向量,包括:
固定所述拉格朗日函数中的所述第二松弛变量和惩罚参数,采用最小二乘法计算得到所述第一松弛变量的最优值;
采用最小二乘法计算得到所述第二松弛变量的最优值;
采用软阈值法计算得到所述最优化变量列向量的最优值;
判断所述最优化变量列向量的最优值是否满足所述第一模型的约束条件;
若所述最优化变量列向量的最优值满足所述第一模型的约束条件,则更新所述拉格朗日乘子和所述惩罚参数;
若所述最优化变量列向量的最优值不满足所述第一模型的约束条件,则将所述最优化变量列向量的最优值中的最小非零值设置为0,以使所述最优化变量列向量的最优值满足所述第一模型的约束条件;
至少根据所述第二松弛变量的最优值、所述最优化变量列向量的最优值、所述运行时间向量,确定所述第一模型是否满足收敛条件;
若所述第一模型满足收敛条件,则确定所述最优化变量列向量的最优值为所述最优化变量列向量的解向量。
8.根据权利要求7所述的方法,其特征在于,所述至少根据所述第二松弛变量的最优值、所述最优化变量列向量的最优值、所述运行时间向量,确定所述第一模型是否满足收敛条件,包括如下至少一种:
根据所述第二松弛变量、所述最优化变量列向量的最优值、所述运行时间向量,确定所述第一模型的约束条件是否满足收敛条件;
根据所述第一松弛变量、所述第二松弛变量、所述最优化变量列向量的最优值、所述特征矩阵、所述列向量、所述运行时间向量,确定所述第一模型的优化目标是否满足收敛条件。
9.一种主机设备,其特征在于,包括:处理器和通信接口;
所述处理器用于获取测试程序中的指令流,并将所述指令流划分为多个不等长片段,所述不等长片段包括所述指令流中的指令;计算每个不等长片段的特征指标向量,并根据所述每个不等长片段的特征指标向量构造特征矩阵;计算所述特征矩阵的每一行的平均值,得到列向量;统计所述每个不等长片段的运行总时间,得到运行时间向量;根据所述特征矩阵、所述列向量、所述运行时间向量和最优化变量列向量,构建最优化模型;求解所述最优化模型,得到所述最优化变量列向量的解向量;根据所述最优化变量列向量的解向量中非零值的位置,从所述多个不等长片段中选择出目标片段;
所述通信接口与仿真器连接,所述仿真器用于运行所述目标片段,并得到所述目标片段对应的特征指标;
所述处理器通过所述通信接口将所述目标片段发送给所述仿真器,并通过所述通信接口接收所述仿真器发送的所述目标片段对应的特征指标;并根据所述目标片段对应的特征指标和所述最优化变量列向量的解向量中的非零值,确定所述测试程序的特征指标。
10.根据权利要求9所述的主机设备,其特征在于,所述处理器具体用于将所述指令流划分为等长的基本片段,每个基本片段包括的所述指令流中的指令的个数相等;将连续的不同数量的基本片段组合成所述多个不等长片段。
11.根据权利要求10所述的主机设备,其特征在于,所述指令流包括多个不同的基本块,所述特征矩阵的行数为所述指令流包括的不同的基本块的个数,所述特征矩阵的列数为所述不等长片段的个数,所述特征矩阵的每一列表示一个不等长片段的特征指标向量。
12.根据权利要求11所述的主机设备,其特征在于,所述每个不等长片段的运行总时间包括所述仿真器运行所述不等长片段所需的准备时间和所述仿真器运行所述不等长片段的运行时间。
13.根据权利要求9-12任一项所述的主机设备,其特征在于,所述处理器求解所述最优化模型,得到所述最优化变量列向量的解向量时,具体用于:
在所述最优化模型中引入第一松弛变量和第二松弛变量,得到第一模型;
求解所述第一模型,得到所述最优化变量列向量的解向量。
14.根据权利要求13所述的主机设备,其特征在于,所述处理器求解所述第一模型,得到所述最优化变量列向量的解向量时,具体用于:
采用拉格朗日乘子法,在所述第一模型中引入拉格朗日乘子,建立拉格朗日函数;
求解所述拉格朗日函数,得到所述最优化变量列向量的解向量。
15.根据权利要求14所述的主机设备,其特征在于,所述处理器求解所述拉格朗日函数,得到所述最优化变量列向量的解向量时,具体用于:
固定所述拉格朗日函数中的所述第二松弛变量和惩罚参数,采用最小二乘法计算得到所述第一松弛变量的最优值;
采用最小二乘法计算得到所述第二松弛变量的最优值;
采用软阈值法计算得到所述最优化变量列向量的最优值;
判断所述最优化变量列向量的最优值是否满足所述第一模型的约束条件;
若所述最优化变量列向量的最优值满足所述第一模型的约束条件,则更新所述拉格朗日乘子和所述惩罚参数;
若所述最优化变量列向量的最优值不满足所述第一模型的约束条件,则将所述最优化变量列向量的最优值中的最小非零值设置为0,以使所述最优化变量列向量的最优值满足所述第一模型的约束条件;
至少根据所述第二松弛变量的最优值、所述最优化变量列向量的最优值、所述运行时间向量,确定所述第一模型是否满足收敛条件;
若所述第一模型满足收敛条件,则确定所述最优化变量列向量的最优值为所述最优化变量列向量的解向量。
16.根据权利要求15所述的主机设备,其特征在于,所述处理器至少根据所述第二松弛变量的最优值、所述最优化变量列向量的最优值、所述运行时间向量,确定所述第一模型是否满足收敛条件时,具体用于如下至少一种:
根据所述第二松弛变量、所述最优化变量列向量的最优值、所述运行时间向量,确定所述第一模型的约束条件是否满足收敛条件;
根据所述第一松弛变量、所述第二松弛变量、所述最优化变量列向量的最优值、所述特征矩阵、所述列向量、所述运行时间向量,确定所述第一模型的优化目标是否满足收敛条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710203276.3A CN108664368B (zh) | 2017-03-30 | 2017-03-30 | 处理器性能指标评估方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710203276.3A CN108664368B (zh) | 2017-03-30 | 2017-03-30 | 处理器性能指标评估方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108664368A CN108664368A (zh) | 2018-10-16 |
CN108664368B true CN108664368B (zh) | 2020-03-31 |
Family
ID=63786370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710203276.3A Expired - Fee Related CN108664368B (zh) | 2017-03-30 | 2017-03-30 | 处理器性能指标评估方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108664368B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115543719B (zh) * | 2022-11-24 | 2023-04-07 | 飞腾信息技术有限公司 | 基于芯片设计的组件优化方法、装置、计算机设备及介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8000953B2 (en) * | 2007-08-21 | 2011-08-16 | International Business Machines Corporation | Augmenting of automated clustering-based trace sampling methods by user-directed phase detection |
CN101916230A (zh) * | 2010-08-11 | 2010-12-15 | 中国科学技术大学苏州研究院 | 基于划分感知和线程感知的末级高速缓存的性能优化方法 |
CN102495876A (zh) * | 2011-12-02 | 2012-06-13 | 浙江大学 | 一种基于非负局部坐标分解的聚类方法 |
CN103049310B (zh) * | 2012-12-29 | 2016-12-28 | 中国科学院深圳先进技术研究院 | 一种基于采样的多核模拟并行加速方法 |
CN105589993B (zh) * | 2015-12-18 | 2019-01-15 | 中国科学院微电子研究所 | 微处理器功能验证设备及微处理器功能验证方法 |
-
2017
- 2017-03-30 CN CN201710203276.3A patent/CN108664368B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN108664368A (zh) | 2018-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wright et al. | ranger: A fast implementation of random forests for high dimensional data in C++ and R | |
US7428715B2 (en) | Hole query for functional coverage analysis | |
Wyatt et al. | Prionn: Predicting runtime and io using neural networks | |
CN109063829B (zh) | 神经网络构建方法、装置、计算机设备和存储介质 | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN110178123B (zh) | 性能指标评估方法及装置 | |
CN112818621B (zh) | 用于预测软ip部件的性能、功率和面积表现的系统和方法 | |
CN114662427B (zh) | 一种逻辑系统设计的调试方法及设备 | |
US9824169B2 (en) | Regression signature for statistical functional coverage | |
KR20220162727A (ko) | 기계 학습 작업시 개선된 메모리 압축 전달을 위한 희소성에 기초한 특징 재정렬 | |
CN114818600A (zh) | 一种芯片验证方法、装置、电子设备以及存储介质 | |
CN115952724A (zh) | 航空发动机剩余寿命预测方法、系统、设备及介质 | |
CN108664368B (zh) | 处理器性能指标评估方法及设备 | |
CN117077586B (zh) | 一种电路设计的寄存器传输级资源预测方法、装置及设备 | |
US9811617B2 (en) | Regression nearest neighbor analysis for statistical functional coverage | |
CN108008999B (zh) | 指标评估方法及装置 | |
CN116149917A (zh) | 评估处理器性能的方法及装置、计算设备、可读存储介质 | |
CN112602059A (zh) | 生成矢量谓词摘要 | |
US10409624B1 (en) | Data array compaction in an emulation system | |
KR102053864B1 (ko) | 기계학습 기반의 fpga 비트스트림 역공학 방법 및 장치 | |
CN115543719B (zh) | 基于芯片设计的组件优化方法、装置、计算机设备及介质 | |
Zhang et al. | Dimplementing first-order optimization methods: Algorithmic considerations and bespoke microcontrollers | |
US12001326B2 (en) | Fast operating system configuration option space exploration via cross-OS grafting | |
TWI774312B (zh) | 模型訓練裝置、模型訓練方法及電腦可讀取媒體 | |
Liu et al. | Separable Binary Convolutional Neural Network on Embedded Systems |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200331 |