CN112860534B - 硬件架构性能评估和性能优化方法及装置 - Google Patents
硬件架构性能评估和性能优化方法及装置 Download PDFInfo
- Publication number
- CN112860534B CN112860534B CN202110287759.2A CN202110287759A CN112860534B CN 112860534 B CN112860534 B CN 112860534B CN 202110287759 A CN202110287759 A CN 202110287759A CN 112860534 B CN112860534 B CN 112860534B
- Authority
- CN
- China
- Prior art keywords
- hardware architecture
- performance
- execution task
- execution
- determining
- 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.)
- Active
Links
- 238000011156 evaluation Methods 0.000 title claims abstract description 84
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000005457 optimization Methods 0.000 title claims abstract description 33
- 238000004088 simulation Methods 0.000 claims abstract description 20
- 238000012549 training Methods 0.000 claims abstract description 13
- 230000005540 biological transmission Effects 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 8
- 238000011161 development Methods 0.000 abstract description 4
- 239000011159 matrix material Substances 0.000 description 23
- 238000013461 design Methods 0.000 description 12
- 238000011773 genetically engineered mouse model Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000011176 pooling Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 235000002020 sage Nutrition 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种硬件架构性能评估和性能优化方法及装置,所述性能评估方法包括:基于硬件架构的各执行任务的运行数据,确定硬件架构的图网络;图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;将图网络输入至性能参数预测模型,得到性能参数预测模型输出的硬件架构的性能数据;基于性能数据,对硬件架构的性能进行评估;其中,性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的。本发明不仅能够快速且准确对硬件架构进行性能评估,避免传统方法中工作量大、开发周期长以及仿真时间开销大的问题,同时还能够依据性能评估结果调整硬件架构的参数,以实现对硬件架构的性能优化。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种硬件架构性能评估和性能优化方法及装置。
背景技术
目前关于硬件架构的性能分析往往都是基于硬件实现的仿真,比如system-C或HDL(Hardware Description Language)实现,此类设计方法是电路行为级别或者时钟周期(clock cycle)级别的仿真。
然而,基于硬件电路的仿真方法设计工作量大,设计周期长,仿真时间开销大等问题。实际上,在架构设计之初,实现电路级别的仿真不现实,而且也不需要精确到时钟周期级别的仿真,高效快速地评估系统的性能是关键。
发明内容
本发明提供一种硬件架构性能评估和性能优化方法及装置,用以解决现有技术中硬件架构性能评估工作量较大和周期较长的缺陷。
本发明提供一种硬件架构性能评估方法,包括:
基于硬件架构的各执行任务的运行数据,确定所述硬件架构的图网络;所述图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;
将所述图网络输入至性能参数预测模型,得到所述性能参数预测模型输出的所述硬件架构的性能数据;
基于所述性能数据,对所述硬件架构的性能进行评估;
其中,所述性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的。
根据本发明提供的一种硬件架构性能评估方法,所述基于硬件架构的各执行任务的运行数据,确定所述硬件架构的图网络,包括:
基于各执行任务的运行数据及所述硬件架构的配置信息,确定各执行任务对应的计算图;
基于各执行任务对应的计算图,确定所述硬件架构的图网络。
根据本发明提供的一种硬件架构性能评估方法,所述基于各执行任务的运行数据及所述硬件架构的配置信息,确定各执行任务对应的计算图,包括:
基于各执行任务的运行数据,确定各执行任务的算子;
基于各执行任务的算子,确定各执行任务的第一表达式;所述第一表达式用于描述各执行任务的运算操作;
基于各执行任务的第一表达式,确定各执行任务的第二表达式;所述第二表达式用于描述各执行任务的运算操作对应的执行过程;
基于各执行任务的第二表达式及所述硬件架构的配置信息,确定各执行任务对应的计算图。
根据本发明提供的一种硬件架构性能评估方法,所述样本硬件架构的运行数据包括芯片上各执行任务的运行数据,和/或仿真库中各执行任务的运行数据。
根据本发明提供的一种硬件架构性能评估方法,所述硬件架构的性能数据包括所述硬件架构的运行时间以及所述硬件架构的运行功耗。
本发明还提供一种硬件架构性能优化方法,包括:
获取硬件架构的性能评估结果;
基于所述性能评估结果,调整所述硬件架构的参数,以优化所述硬件架构的性能;
其中,所述性能评估结果是采用如上所述的硬件架构性能评估方法确定的。
本发明还提供一种硬件架构性能评估装置,包括:
确定单元,用于基于硬件架构的各执行任务的运行数据,确定所述硬件架构的图网络;所述图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;
预测单元,用于将所述图网络输入至性能参数预测模型,得到所述性能参数预测模型输出的所述硬件架构的性能数据;
评估单元,用于基于所述性能数据,对所述硬件架构的性能进行评估;
其中,所述性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的。
本发明还提供一种硬件架构性能优化装置,包括:
获取单元,用于获取硬件架构的性能评估结果;
优化单元,用于基于所述性能评估结果,调整所述硬件架构的参数,以优化所述硬件架构的性能;
其中,所述性能评估结果是采用如上所述的硬件架构性能评估方法确定的。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述硬件架构性能评估方法的步骤;和/或,所述处理器执行所述计算机程序时实现如上述任一种所述硬件架构性能优化方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述硬件架构性能评估方法的步骤;和/或所述计算机程序被处理器执行时实现如上述任一种所述硬件架构性能优化方法的步骤,。
本发明提供的硬件架构性能评估和性能优化方法及装置,基于硬件架构中各执行任务的运行数据,得到用于描述硬件架构执行过程的图网络,并采用性能参数预测模型获取硬件架构的性能数据,不仅能够快速且准确对硬件架构进行性能评估,而且避免了传统方法中基于硬件电路仿真对硬件架构进行性能评估导致工作量大、开发周期长以及仿真时间开销大的问题。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的硬件架构性能评估方法的流程示意图;
图2是本发明提供的矩阵乘的计算图;
图3是本发明提供的操作运算的计算图;
图4是本发明提供的图网络示意图;
图5是本发明提供的又一硬件架构性能评估方法的流程示意图;
图6是本发明提供的矩阵乘代码示意图;
图7是本发明提供的串行并行的计算图;
图8是本发明提供的并行度为2的计算图;
图9是本发明提供的硬件架构性能优化方法的流程示意图;
图10是本发明提供的硬件架构性能评估装置的结构示意图;
图11是本发明提供的硬件架构性能优化装置的结构示意图;
图12是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明适用于硬件新架构设计的性能评估及优化探索,实现的方法属于设计空间探索(design space exploration)的技术范畴。后摩尔时代,专用型的硬件架构层出不穷,如何在新的硬件架构设计伊始能够针对特定的任务做出性能评估是设计者的迫切需求,与此同时,设计者可以根据评估出的性能改进架构设计或者综合多种任务的性能表现优化硬件架构设计。空间探索的方法往往有直接扫描法(Direct Sweep),蒙特卡洛,多对象优化(multi-objective optimization)和遗传算法(Generic Algorithm)等方法。空间探索的实现过程中会对空间探索的参数进行精简,减少探索的空间范围,减少计算时间。
针对这样的问题,本发明提出了基于图网络的硬件架构性能评估和性能优化方法,旨在将硬件架构的执行过程抽象构建成为图,然后通过图网络的学习过程进行硬件架构的设计空间探索,最终获得硬件架构针对所处理任务的性能评估,为设计者提供优化架构的参考。下面将通过具体实施例对本发明提供的内容进行详细解释和说明。
对此,本发明提供一种硬件架构性能评估方法。图1是本发明提供的硬件架构性能评估方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤110、基于硬件架构的各执行任务的运行数据,确定硬件架构的图网络;图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;。
具体地,对于不同的任务,所需要的硬件架构不同,例如游戏和视频处理需要专门的硬件—图形处理器(GPU),信号处理则需要像数字信号处理器(DSP)等其它独立的架构,而深度学习网络则需更快、更高效的硬件。为了保证硬件架构能够高效的执行相应的任务,需要对硬件架构的性能进行评估,以供设计开发者根据性能评估结果对硬件架构进行优化。
对于待进行性能评估的硬件架构,在其上可能存在多个执行任务,以ResNet50的网络模型对应的硬件架构为例,其中包含了卷积层运算(Convolution),池化层运算(Pooling),激活层运算(Relu)等多个执行任务,每个执行任务中对应有相应的运行数据。例如,对于卷积层运算(Convolution),可以包含矩阵乘的运算相关数据信息。
根据各执行任务的运行数据,可以得到各执行任务内部操作运算之间的依赖关系,以及各执行任务之间的依赖关系,进而可以依据这些依赖关系构建图推理模型,进而得到硬件架构的图网络,该图网络是一种链接主义模型,可以表征硬件架构中各节点之间的信息传递关系以及各节点的属性(如操作实现的时钟周期、内存读写宽带等)。
步骤120、将图网络输入至性能参数预测模型,得到性能参数预测模型输出的硬件架构的性能数据;其中,性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的。
具体地,在得到包含有硬件架构各节点之间的信息传递关系以及各节点属性的图网络后,将图网络输入至性能参数预测模型中,可以得到性能参数预测模型输出的硬件架构的性能数据;其中,性能数据可以为硬件架构的运行时间,也可以为硬件架构的运行功耗,本发明实施例对此不作具体限定。
在执行步骤120之前,还可以预先训练得到性能参数预测模型,可以通过如下方式训练得到性能参数预测模型:首先收集大量样本硬件架构的运行数据,其中,样本硬件架构的运行数据可以为某一芯片上执行任务的实际运行数据,也可以为某一执行任务在进行仿真时的运行数据。随即,将样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练初始模型,从而得到性能参数预测模型。其中,初始模型可以是基于图神经网络(GraphNeural Network,GNN)构建得到的,例如多层GraphSAGE网络模型。
步骤130、基于性能数据,对硬件架构的性能进行评估。
具体地,在得到硬件架构的性能数据后,可以快速评估硬件架构的性能。例如,由性能数据获知硬件架构的运行时间过长,则可以将原硬件架构中支持矩阵乘(GeneralMatrix Multiplication,GEMM)的尺寸(size)由8×8调整为16×16。
由此可见,本发明实施例基于硬件架构中各执行任务的运行数据,得到用于表征硬件架构中各执行任务节点间的传递关系以及各执行任务节点属性的图网络,将图网络输入至性能参数预测模型,得到硬件架构的性能数据,从而能够基于性能数据准确且快速对硬件架构进行性能评估,相较于传统方法中基于硬件电路仿真对硬件架构进行性能评估的方法,本发明实施例不需要精确到时钟周期级别的仿真,不仅时间开销较小,周期较短,而且能够高效地对硬件架构进行性能评估。
本发明实施例提供的硬件架构性能评估方法,基于硬件架构中各执行任务的运行数据,得到用于描述硬件架构执行过程的图网络,并采用性能参数预测模型获取硬件架构的性能数据,不仅能够快速且准确对硬件架构进行性能评估,而且避免了传统方法中基于硬件电路仿真对硬件架构进行性能评估导致工作量大、开发周期长以及仿真时间开销大的问题。
基于上述实施例,基于硬件架构的各执行任务的运行数据,确定硬件架构的图网络,包括:
基于各执行任务的运行数据及硬件结构的配置信息,确定各执行任务对应的计算图;
基于各执行任务对应的计算图,确定硬件架构的图网络。
具体地,对于机器学习任务而言,其核心是模型的定义以及模型的参数求解方式,对这两者进行抽象之后,可以确定一个唯一的计算逻辑,将这个逻辑用图表示,称之为计算图。计算图表现为有向无环图,定义了数据的流转方式,数据的计算方式,以及各种计算之间的相互依赖关系等,即可以理解为本发明实施例中的计算图可以用于表征硬件架构的各执行任务的数据流转方式,数据的计算方式,以及各中计算之间相互依赖关系。
如图2所示,对于矩阵乘运算,节点B中的数据即用于与节点A进行矩阵乘操作,节点B中的数据也流向节点D,以供节点D进行相应的运算。此外,节点B中也携带有对应硬件架构的配置信息,如一次GEMM操作实现的时钟周期、memcpy的时钟周期、内存读写宽带等。
如图3所示,对于一个硬件架构而言,包含多个执行任务,各执行任务均有对应的计算图且各执行任务的计算图相互之间会存在依赖关系,进而构成硬件架构的图网络。如图4所示,对于复杂的执行任务,最终表示的计算图将会是一个复杂的图网络。
基于上述任一实施例,基于各执行任务的运行数据及硬件架构的配置信息,确定各执行任务对应的计算图,包括:
基于各执行任务的运行数据,确定各执行任务的算子;
基于各执行任务的算子,确定各执行任务的第一表达式;第一表达式用于描述各执行任务的运算操作;
基于各执行任务的第一表达式,确定各执行任务的第二表达式;第二表达式用于描述各执行任务的运算操作对应的执行过程;
基于各执行任务的第二表达式及硬件架构的配置信息,确定各执行任务对应的计算图。
具体地,基于各执行任务的运行数据,可以确定各执行任务的算子。如图5所示,对于执行任务workload,比如ResNet50的网络模型,通过前端的解析器(Parser)进行解析,解析之后得到workload中基本算子(Operator),该算子是抽象级别的表达,例如Convolution,Pooling及Relu等。将所得到的算子表达经过转换(Conversion)成为第一表达式,第一表达式可以用于描述各执行任务的运算操作。其中,第一表达式可以为自定义的HADL(High-level Architecture Description Language),该表达符合现有的MLIR(Multi-level Intermediate Representation)框架,采用自定义方言(Dialect)的方式实现,HADL是较高级的描述,不考虑硬件的具体实现过程。
例如,将执行任务(workload)中的抽象级别的算子Convolution转换为第一表达式中的矩阵乘(GEMM)操作,第一表达式中用于表达如下内容:计算两个矩阵乘,矩阵大小分别为32×8和8×64,数据类型为FP32,返回的结果矩阵大小为32×64,数据类型为FP32,但第一表达式中不包含硬件架构是如何根据内存分配执行上述矩阵乘运算。
在第一表达式中实现的主要是针对操作,比如操作的融合,数据重排,循环的优化等。操作可以包括内存相关的操作,比如内存级别的划分(全局内存,Cache,以及Localmemory),内存布局(Layout),内存拷贝(Memcpy),内存分配(Alloc)和释放(De-alloc),也可以包括其他控制指令比如for-loop循环,for-loop的循环可以更为简洁,比如在一个for-loop循环语句指定多层循环嵌套。
在得到第一表达式后,将第一表达式经过转换(Conversion)得到第二表达式,其中第二表达式可以为自定义的LADL(Low-level Architecture Description Language),第二表达式是针对底层硬件架构执行过程的表示,具体操作考虑到硬件的实际执行过程,比如GEMM操作,此时会考虑底层硬件单次操作支持的矩阵大小,将HADL表示的粗颗粒度(Coarse Granularity)的表示拆为细颗粒度(Fine Granularity)的表示。如果底层硬件的GEMM计算单元为8×8的矩阵大小,会将两个大矩阵的GEMM操作(32×8*8×64),拆为多次的8×8矩阵乘实现。可以理解的是,第一表达式与第二表达式的语法规范可以类似。
在得到第二表示后,基于第二表达式和硬件结构的配置信息,可以得到各执行任务对应的计算图(Computation Graph)。CG中的每个节点(Node)表示的是第一表达式中的操作,是针对硬件架构的算子级别的描述,同时Node中包含属性,属性为预先定义的该硬件架构下该操作的信息,比如一次GEMM操作实现的时钟周期,memcpy的时钟周期,内存读写带宽等;计算图的边(Edge)表示的是数据流向,体现出了数据的依赖关系。如图2所示,Node中的字母表示操作,箭头表示Node中操作的结果的流动方向。图6中的代码为与图2计算图对应的伪代码表示,首先C[i]表示矩阵A与矩阵B相乘,a%、b%与c%表示矩阵A与矩阵B相乘的具体执行过程。
图7和图8分别表示根据具体的硬件架构表示的执行过程,每个节点(node)含有该操作的硬件开销信息,根据优化的选择,可以配置为串行执行和并行执行(数据无依赖),图7为串行执行过程,图8为并行度为2的执行过程。需要说明的是,可以结合硬件架构的配置信息,具体选择采用串行执行或并行执行。例如,在具有较多硬件配置的情况下,可以采用并行执行,并行执行的运算时间较长;在具有较少配件配置的情况下,可以采用串行执行,串行执行的运算时间较短。因此,可以综合考虑硬件配置信息以及运算时间需求,选择串行执行或并行执行。
基于上述任一实施例,样本硬件架构的运行数据包括芯片上各执行任务的运行数据,和/或仿真库中各执行任务的运行数据。
具体地,样本硬件架构的运行数据可以基于已有芯片的实际执行任务(workload)的运行数据,其中workload既包括大的workload,比如神经网络模型,也包括小的workload,比如循环乘或者矩阵乘等;也可以引入实际的benchmark,比如SHOC:TheScalable Heterogeneous Computing(SHOC)benchmark suite。
此外,样本硬件架构上的运行数据还可以为根据已有的仿真库(如RTL级别)对各执行任务(workload)进行cycle级别的仿真,获取对应workload的性能参数,比如内存的访问,数据的搬移等等。
基于上述任一实施例,硬件架构的性能数据包括但不限于硬件架构的运行时间以及硬件架构的运行功耗。
具体地,硬件架构的运行时间、硬件架构的运行功耗可以用于表征硬件架构的性能,并作为硬件架构优化的参考。例如,若底层硬件的GEMM计算单元为8×8的矩阵大小,会将两个大矩阵的GEMM操作(32×8*8×64),拆为多次的8×8矩阵乘实现,由此得到的运行时间过长,则可以将底层硬件的GEMM计算单元由8×8的矩阵调整为16×16的矩阵。
基于上述任一实施例,本发明还提供一种硬件架构性能优化方法,如图9所示,该方法包括:
步骤910、获取硬件架构的性能评估结果;
步骤920、基于性能评估结果,调整硬件架构的参数,以优化硬件架构的性能;
其中,性能评估结果是采用如上任一实施例所述的硬件架构性能评估方法确定的。
具体地,在获取硬件架构的性能评估结果后,可以通过调整硬件架构中的可变参数或者调整硬件架构获得最佳的架构性能。例如,根据获取的硬件架构性能数据,可以不断调整硬件架构的描述参数,比如内存分配大小,计算单元的大小。
由此可见,本发明实施例提供的硬件架构性能优化方法,基于硬件架构中各执行任务的运行数据,得到用于描述硬件架构执行过程的图网络,并采用性能参数预测模型获取硬件架构的性能数据,基于硬件架构的性能数据优化硬件架构的性能,不仅能够快速且准确对硬件架构进行性能评估,而且避免了传统方法中基于硬件电路仿真对硬件架构进行性能评估导致工作量大、开发周期长以及仿真时间开销大的问题。
下面对本发明提供的硬件架构性能评估装置进行描述,下文描述的硬件架构性能评估装置与上文描述的硬件架构性能评估方法可相互对应参照。
基于上述任一实施例,本发明还提供一种硬件架构性能评估装置,如图10所示,该装置包括:
确定单元1010,用于基于硬件架构的各执行任务的运行数据,确定硬件架构的图网络;图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;
预测单元1020,用于将图网络输入至性能参数预测模型,得到性能参数预测模型输出的硬件架构的性能数据;
评估单元1030,用于基于性能数据,对硬件架构的性能进行评估;
其中,性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的。
基于上述任一实施例,所述确定单元1010,包括:
第一确定单元,用于基于各执行任务的运行数据及所述硬件架构的配置信息,确定各执行任务对应的计算图;
第二确定单元,用于基于各执行任务对应的计算图,确定所述硬件架构的图网络。
基于上述任一实施例,所述第一确定单元,包括:
算子确定单元,用于基于各执行任务的运行数据,确定各执行任务的算子;
第一描述单元,用于基于各执行任务的算子,确定各执行任务的第一表达式;所述第一表达式用于描述各执行任务的运算操作;
第二描述单元,用于基于各执行任务的第一表达式,确定各执行任务的第二表达式;所述第二表达式用于描述各执行任务的运算操作对应的执行过程;
计算图确定单元,用于基于各执行任务的第二表达式及硬件架构的配置信息,确定各执行任务对应的计算图。
基于上述任一实施例,所述样本硬件架构的运行数据包括芯片上各执行任务的运行数据,和/或仿真库中各执行任务的运行数据。
基于上述任一实施例,所述硬件架构的性能数据包括所述硬件架构的运行时间以及所述硬件架构的运行功耗。
下面对本发明提供的硬件架构性能优化装置进行描述,下文描述的硬件架构性能优化装置与上文描述的硬件架构性能优化方法可相互对应参照。
基于上述任一实施例,本发明还提供一种硬件架构性能优化装置,如图11所示,包括:
获取单元1110,用于获取硬件架构的性能评估结果;
优化单元1120,用于基于性能评估结果,调整硬件架构的参数,以优化硬件架构的性能;
其中,性能评估结果是采用如上任一实施例所述的硬件架构性能评估方法确定的。
图12是本发明提供的电子设备的结构示意图,如图12所示,该电子设备可以包括:处理器(processor)1210、通信接口(Communications Interface)1220、存储器(memory)1230和通信总线1240,其中,处理器1210,通信接口1220,存储器1230通过通信总线1240完成相互间的通信。处理器1210可以调用存储器1230中的逻辑指令,以执行硬件架构性能评估方法,该方法包括:基于硬件架构的各执行任务的运行数据,确定所述硬件架构的图网络;所述图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;将所述图网络输入至性能参数预测模型,得到所述性能参数预测模型输出的所述硬件架构的性能数据;基于所述性能数据,对所述硬件架构的性能进行评估;其中,所述性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的;
和/或,以执行硬件架构性能优化方法,该方法包括:获取硬件架构的性能评估结果;基于所述性能评估结果,调整所述硬件架构的参数,以优化所述硬件架构的性能;其中,所述性能评估结果是采用如上所述的硬件架构性能评估方法确定的。
此外,上述的存储器1230中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的硬件架构性能评估方法,该方法包括:基于硬件架构的各执行任务的运行数据,确定所述硬件架构的图网络;所述图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;将所述图网络输入至性能参数预测模型,得到所述性能参数预测模型输出的所述硬件架构的性能数据;基于所述性能数据,对所述硬件架构的性能进行评估;其中,所述性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的;
和/或,以执行硬件架构性能优化方法,该方法包括:获取硬件架构的性能评估结果;基于所述性能评估结果,调整所述硬件架构的参数,以优化所述硬件架构的性能;其中,所述性能评估结果是采用如上所述的硬件架构性能评估方法确定的。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的硬件架构性能评估方法,该方法包括:基于硬件架构的各执行任务的运行数据,确定所述硬件架构的图网络;所述图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;将所述图网络输入至性能参数预测模型,得到所述性能参数预测模型输出的所述硬件架构的性能数据;基于所述性能数据,对所述硬件架构的性能进行评估;其中,所述性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的;
和/或,以执行硬件架构性能优化方法,该方法包括:获取硬件架构的性能评估结果;基于所述性能评估结果,调整所述硬件架构的参数,以优化所述硬件架构的性能;其中,所述性能评估结果是采用如上所述的硬件架构性能评估方法确定的。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种硬件架构性能评估方法,其特征在于,包括:
基于硬件架构的各执行任务的运行数据,确定所述硬件架构的图网络;所述图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;
将所述图网络输入至性能参数预测模型,得到所述性能参数预测模型输出的所述硬件架构的性能数据;
基于所述性能数据,对所述硬件架构的性能进行评估;
其中,所述性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的;
所述基于硬件架构的各执行任务的运行数据,确定所述硬件架构的图网络,包括:
基于各执行任务的运行数据及所述硬件架构的配置信息,确定各执行任务对应的计算图;
基于各执行任务对应的计算图,确定所述硬件架构的图网络。
2.根据权利要求1所述的硬件架构性能评估方法,其特征在于,所述基于各执行任务的运行数据及所述硬件架构的配置信息,确定各执行任务对应的计算图,包括:
基于各执行任务的运行数据,确定各执行任务的算子;
基于各执行任务的算子,确定各执行任务的第一表达式;所述第一表达式用于描述各执行任务的运算操作;
基于各执行任务的第一表达式,确定各执行任务的第二表达式;所述第二表达式用于描述各执行任务的运算操作对应的执行过程;
基于各执行任务的第二表达式及所述硬件架构的配置信息,确定各执行任务对应的计算图。
3.根据权利要求1至2任一项所述的硬件架构性能评估方法,所述样本硬件架构的运行数据包括芯片上各执行任务的运行数据,和/或仿真库中各执行任务的运行数据。
4.根据权利要求1至2任一项所述的硬件架构性能评估方法,其特征在于,所述硬件架构的性能数据包括所述硬件架构的运行时间以及所述硬件架构的运行功耗。
5.一种硬件架构性能优化方法,其特征在于,包括:
获取硬件架构的性能评估结果;
基于所述性能评估结果,调整所述硬件架构的参数,以优化所述硬件架构的性能;
其中,所述性能评估结果是采用如权利要求1至4任一项所述的硬件架构性能评估方法确定的。
6.一种硬件架构性能评估装置,其特征在于,包括:
确定单元,用于基于硬件架构的各执行任务的运行数据,确定所述硬件架构的图网络;所述图网络用于表征各执行任务之间的信息传递关系以及各执行任务的属性信息;
预测单元,用于将所述图网络输入至性能参数预测模型,得到所述性能参数预测模型输出的所述硬件架构的性能数据;
评估单元,用于基于所述性能数据,对所述硬件架构的性能进行评估;
其中,所述性能参数预测模型是基于样本硬件架构的运行数据,及样本硬件架构对应的性能数据训练得到的;
所述确定单元,包括:
第一确定单元,用于基于各执行任务的运行数据及所述硬件架构的配置信息,确定各执行任务对应的计算图;
第二确定单元,用于基于各执行任务对应的计算图,确定所述硬件架构的图网络。
7.一种硬件架构性能优化装置,其特征在于,包括:
获取单元,用于获取硬件架构的性能评估结果;
优化单元,用于基于所述性能评估结果,调整所述硬件架构的参数,以优化所述硬件架构的性能;
其中,所述性能评估结果是采用如权利要求1至4任一项所述的硬件架构性能评估方法确定的。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述硬件架构性能评估方法的步骤;和/或,所述处理器执行所述程序时实现如权利要求5所述硬件架构性能优化方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述硬件架构性能评估方法的步骤;和/或,所述计算机程序被处理器执行时实现如权利要求5所述硬件架构性能优化方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110287759.2A CN112860534B (zh) | 2021-03-17 | 2021-03-17 | 硬件架构性能评估和性能优化方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110287759.2A CN112860534B (zh) | 2021-03-17 | 2021-03-17 | 硬件架构性能评估和性能优化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112860534A CN112860534A (zh) | 2021-05-28 |
CN112860534B true CN112860534B (zh) | 2022-10-25 |
Family
ID=75995162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110287759.2A Active CN112860534B (zh) | 2021-03-17 | 2021-03-17 | 硬件架构性能评估和性能优化方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112860534B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114492737B (zh) * | 2021-12-31 | 2022-12-09 | 北京百度网讯科技有限公司 | 数据处理方法、装置及电子设备、存储介质及程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294764A (zh) * | 2017-04-26 | 2017-10-24 | 中国科学院信息工程研究所 | 智能监管方法和智能监管系统 |
CN110222005A (zh) * | 2019-07-15 | 2019-09-10 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
CN111538895A (zh) * | 2020-07-07 | 2020-08-14 | 成都数联铭品科技有限公司 | 一种基于图网络的数据处理系统 |
CN112308227A (zh) * | 2020-11-02 | 2021-02-02 | 平安科技(深圳)有限公司 | 神经网络架构搜索方法、装置、终端设备以及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725848B2 (en) * | 2005-01-27 | 2010-05-25 | Wolfgang Nebel | Predictable design of low power systems by pre-implementation estimation and optimization |
FR3025334B1 (fr) * | 2014-09-02 | 2019-05-24 | Thales | Procede de determination par optimisation d'une architecture multi-coeurs |
WO2019127945A1 (zh) * | 2017-12-26 | 2019-07-04 | 佛山科学技术学院 | 基于结构化神经网络的成像任务可调度性预测方法 |
CN109359385B (zh) * | 2018-10-17 | 2021-11-23 | 网宿科技股份有限公司 | 一种服务质量评估模型的训练方法及装置 |
CN111666763A (zh) * | 2020-05-28 | 2020-09-15 | 平安科技(深圳)有限公司 | 用于多任务场景的网络结构构建方法和装置 |
CN112001741A (zh) * | 2020-07-16 | 2020-11-27 | 北京三快在线科技有限公司 | 多任务处理模型的构建方法、装置、电子设备及存储介质 |
CN112187386B (zh) * | 2020-09-15 | 2021-07-27 | 清华大学 | 一种用于天地一体化网络的网络性能评估方法及系统 |
CN112183620B (zh) * | 2020-09-27 | 2021-04-23 | 中国科学院自动化研究所 | 基于图卷积神经网络的小样本分类模型的发育方法及系统 |
CN112487592B (zh) * | 2020-12-16 | 2022-01-18 | 北京航空航天大学 | 基于贝叶斯网络的任务可靠性建模分析方法 |
-
2021
- 2021-03-17 CN CN202110287759.2A patent/CN112860534B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294764A (zh) * | 2017-04-26 | 2017-10-24 | 中国科学院信息工程研究所 | 智能监管方法和智能监管系统 |
CN110222005A (zh) * | 2019-07-15 | 2019-09-10 | 北京一流科技有限公司 | 用于异构架构的数据处理系统及其方法 |
CN111538895A (zh) * | 2020-07-07 | 2020-08-14 | 成都数联铭品科技有限公司 | 一种基于图网络的数据处理系统 |
CN112308227A (zh) * | 2020-11-02 | 2021-02-02 | 平安科技(深圳)有限公司 | 神经网络架构搜索方法、装置、终端设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112860534A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11520956B2 (en) | Systems and methods for automatically realizing models for co-simulation | |
EP3754496B1 (en) | Data processing method and related products | |
Mansinghka et al. | Venture: a higher-order probabilistic programming platform with programmable inference | |
US9377998B2 (en) | Code generation for control design | |
US20180260498A1 (en) | SYSTEM AND METHOD FOR DESIGNING SYSTEM ON CHIP (SoC) CIRCUITS USING SINGLE INSTRUCTION MULTIPLE AGENT (SIMA) INSTRUCTIONS | |
US11373114B1 (en) | CSP-based synthesis of a quantum circuit | |
US11281988B1 (en) | Re-generation of a gate-level quantum circuit based on gate-level analysis | |
CN112860534B (zh) | 硬件架构性能评估和性能优化方法及装置 | |
US20230112525A1 (en) | Provisioning fucntional-level information to be utilized in gate-level processing of quantum circuits | |
Hafeez et al. | Empirical analysis and modeling of compute times of cnn operations on aws cloud | |
van der Vlag et al. | RateML: A code generation tool for brain network models | |
US8041551B1 (en) | Algorithm and architecture for multi-argument associative operations that minimizes the number of components using a latency of the components | |
US20220229956A1 (en) | Providing reusable quantum circuit components as a curated service | |
Grebhahn et al. | Optimizing performance of stencil code with SPL conqueror | |
US20230111924A1 (en) | Functional-level processing component for quantum computers | |
Wu et al. | Program-to-circuit: Exploiting gnns for program representation and circuit translation | |
WO2017135219A1 (ja) | 設計支援装置、設計支援方法、および設計支援プログラムを格納した記録媒体 | |
CN114492321A (zh) | 基于xml的神经网络模型生成方法、设备和存储介质 | |
Krasanakis et al. | JGNN: Graph Neural Networks on native Java | |
Brandner et al. | Reducing OpenMP to FPGA round-trip times with predictive modelling | |
Giesen | Accelerating HLS Autotuning of Large, Highly-Parameterized Reconfigurable SoC Mappings | |
US20230111039A1 (en) | Dynamic synthesis of gate-level implementations of functional blocks in quantum circuits | |
Griffin et al. | SCoRE4HPC: Self-Configuring Runtime Environment for HPC Applications | |
Kredo et al. | Toward Automated Simulink Model Implementation and Optimization using High-Level Synthesis for FPGA | |
US20230367640A1 (en) | Program execution strategies for heterogeneous computing 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 | ||
CP03 | Change of name, title or address |
Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee after: Shanghai Bi Ren Technology Co.,Ltd. Country or region after: China Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |