CN117667330A - 算子性能确定方法、装置、计算设备及存储介质 - Google Patents
算子性能确定方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN117667330A CN117667330A CN202211047406.6A CN202211047406A CN117667330A CN 117667330 A CN117667330 A CN 117667330A CN 202211047406 A CN202211047406 A CN 202211047406A CN 117667330 A CN117667330 A CN 117667330A
- Authority
- CN
- China
- Prior art keywords
- operator
- target
- calculation
- theoretical
- intensity
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000013508 migration Methods 0.000 claims abstract description 64
- 230000005012 migration Effects 0.000 claims abstract description 64
- 238000004364 calculation method Methods 0.000 claims description 340
- 239000013598 vector Substances 0.000 claims description 53
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004422 calculation algorithm Methods 0.000 abstract description 14
- 230000008569 process Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 9
- 238000007667 floating Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000005259 measurement Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种算子性能确定方法、装置、计算设备及存储介质,属于计算机技术领域。本申请基于目标算子应用任一计算平台的硬件资源执行目标计算任务时的算子参数,确定出参考算子,以获取参考算子针对目标计算平台的目标性能迁移信息,从而根据该目标性能迁移信息、该目标计算平台的屋顶线模型和该目标算子的理论计算强度,确定出该目标算子在该目标计算平台中执行目标计算任务的预测计算耗时。通过上述技术方案,基于能表征算法本质的算子参数,确定出相似的参考算子,从而基于参考算子提供的先验性能迁移信息,准确地预测出计算平台中实际硬件资源与理论硬件资源之间的潜在差距,从而大大提升了对算子的计算性能进行预测的准确性。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种算子性能确定方法、装置、计算设备及存储介质。
背景技术
随着科学技术的发展,各种复杂的计算任务都能够通过构建相应的算法来实现,算法中用于实现各种计算逻辑的计算单元被称为算子(operator)。当算子在不同的计算平台上运行,其所能达到的计算性能会限制于当前计算平台所提供的硬件资源。因此,通常会采用计算平台的屋顶线模型(roofline model),来预测算子在该计算平台中所能达到的计算性能。其中,roofline模型用于模拟在计算平台中硬件资源的限制下,算子执行计算任务时的不同计算强度(operational intensity)所能达到的计算性能上限。其中,计算强度由算子的计算量和访存量确定。
但是,由于roofline模型仅提供了一种理论上限,而在实际应用中,模型的实际计算性能会由于其他因素的影响,而与理论上限存在一定差距,使得通过roofline模型确定算子计算性能的准确性不高。因此,亟需一种能够有效提升确定算子的计算性能准确性的方法。
发明内容
本申请提供了一种算子性能确定方法、装置、计算设备及存储介质,能够有效提升确定算子计算性能的准确性。该技术方案如下:
第一方面,提供了一种算子性能确定方法,该方法包括:
基于目标算子的算子参数,确定该目标算子的参考算子,该算子参数用于表示算子在应用任一计算平台的硬件资源执行目标计算任务时的参数,该参考算子的算子参数与该目标算子的算子参数之间的相似度符合相似度条件;
获取该参考算子的目标性能迁移信息,该目标性能迁移信息指示该参考算子在目标计算平台中应用的实际硬件资源与该目标计算平台中理论硬件资源之间的对应关系;
基于该目标性能迁移信息、该目标计算平台的屋顶线模型和该目标算子的理论计算强度,确定该目标算子在该目标计算平台中执行该目标计算任务的预测计算耗时,该理论计算强度用于表示该目标算子对该目标计算平台中硬件资源的应用情况。
其中,算子用于执行计算任务。在一些实施例中,该算子参数包括描述算子的计算逻辑的参数,例如,算子的输入参数、输出参数等。在一些实施例中,该算子参数包括描述算子的算法架构的参数,例如,算子的输入数据大小、输出大小和算子类型等。
其中,该目标性能迁移信息作为一种先验的指导信息,其指示了目标计算平台中实际硬件资源与理论硬件资源之间的差距。
其中,该理论计算强度为该目标算子执行该目标计算任务的理论计算量和理论访存量的比值。计算量反映了算子对硬件资源中计算资源的需求,访存量反映了模型对硬件资源中存储资源的需求,因此,该理论计算强度能够表示目标算子对该目标计算平台中硬件资源的应用情况。
通过上述技术方案,基于能表征算法本质的算子参数,确定出相似的参考算子,从而基于参考算子提供的先验性能迁移信息,准确地预测出计算平台中实际硬件资源与理论硬件资源之间的潜在差距,从而大大提升了对算子的计算性能进行预测的准确性。
在一种可能实施方式中,基于该目标性能迁移信息、该目标计算平台的屋顶线模型和该目标算子的理论计算强度,确定该目标算子在该目标计算平台中执行该目标计算任务的预测计算耗时,包括:
基于该目标计算平台的屋顶线模型和该目标算子的理论计算强度,确定该目标算子基于该理论计算强度在该目标计算平台中执行该目标计算任务的理论计算速度;
基于该目标性能迁移信息,调整该理论计算强度和该理论计算速度,以得到预测计算强度和预测计算速度;
基于该预测计算强度和预测计算速度,确定该目标算子的预测计算耗时。
在一种可能实施方式中,基于该目标性能迁移信息,调整该理论计算强度和该理论计算速度,以得到预测计算强度和预测计算速度,包括下述至少一项:
基于该目标性能迁移信息包括的资源利用信息,调整该理论计算速度,以得到该预测计算速度,该资源利用信息指示该目标计算平台提供的实际硬件资源与理论硬件资源的比值;
基于该目标性能迁移信息包括的算子负载信息,调整该理论计算强度,以得到该预测计算强度,该算子负载信息指示该参考算子执行参考计算任务的实际计算强度相对于该参考算子的理论计算强度的偏移量。
通过上述技术方案,能够有效地解决因硬件资源无法完全利用导致的性能预测偏差以及因算子本身运算过程导致的性能预测偏差,从而大大提升了预测算子计算性能的准确性。
在一种可能实施方式中,该资源利用信息包括带宽利用率和算力利用率;
基于该目标性能迁移信息包括的资源利用信息,调整该理论计算速度,以得到该预测计算速度,包括:
若该理论计算强度小于该目标计算平台的理论强度上限,基于该带宽利用率,调整用于确定该理论计算速度的理论带宽,以得到该预测计算速度;
若该理论计算强度不小于该目标计算平台的理论强度上限,基于该算力利用率,调整用于确定该理论计算速度的理论算力,以得到该预测计算速度;
其中,该理论强度上限为该目标计算平台提供的该理论算力与该理论带宽的比值。
通过上述技术方案,基于资源利用信息完成了对理论计算速度的调整,从而解决了因硬件资源无法完全利用导致的性能预测偏差,大大提升了预测算子计算性能的准确性。并且,能够灵活地针对性能瓶颈类型,采用对应的资源利用率来实现精确调整,进一步提升了预测算子计算性能的准确性。其中,性能瓶颈类型指算子的计算性能的受限类型,例如,受计算平台算力限制,属于计算瓶颈类型;受计算平台带宽限制,属于访存瓶颈类型。
在一种可能实施方式中,该算子负载信息包括计算量偏移量和访存量偏移量,该理论计算强度为该目标算子执行该目标计算任务的理论计算量和理论访存量的比值;
基于该目标性能迁移信息包括的算子负载信息,调整该理论计算强度,以得到该预测计算强度,包括:
若该理论计算强度不小于该目标计算平台的理论强度上限,基于该计算量偏移量,调整该理论计算量,以得到该预测计算强度;
若该理论计算强度小于该目标计算平台的理论强度上限,基于该访存量偏移量,调整该理论访存量,以得到该预测计算强度;
其中,该理论强度上限为该目标计算平台提供的理论算力与理论带宽的比值。
通过上述技术方案,基于算子负载信息完成了对理论计算强度的调整,从而解决了因算子本身运算过程导致的性能预测偏差,大大提升了预测算子计算性能的准确性。并且,能够灵活地针对性能瓶颈类型,采用对应的偏移量来实现精确调整,进一步提升了预测算子计算性能的准确性。
在一种可能实施方式中,基于目标算子的算子参数,确定该目标算子的参考算子,包括:
基于该目标算子的算子参数,确定该目标算子的参数特征向量,该参数特征向量的多个维度指示该目标算子执行该目标计算任务时的多个参数;
从多个基准算子的参数特征向量中,确定与该目标算子的参数特征向量之间的距离符合该相似度条件的目标参数特征向量,该目标参数特征向量对应的基准算子为该参考算子。
通过上述技术方案,将算子的算子参数处理为与硬件架构无关的参数特征向量,从而高效地表征算子的算法本质,进而能够精准地从多个基准算子中确定出与待测算子的算子参数相似度较高的参考算子,从而能够保证该参考算子针对目标算子的参考价值。
在一种可能实施方式中,基于目标算子的算子参数,确定该目标算子的参考算子,包括:
基于该目标算子的算子参数,确定相似条件语句,该相似条件语句指示确定任一基准算子的算子参数与该目标算子的算子参数之间相似的逻辑;
基于该相似条件语句和多个基准算子的算子参数,从该多个基准算子中确定符合该相似度条件的该参考算子。
通过上述技术方案,基于算子参数设计判断相似的条件语句,从而能够精准地从多个基准算子中确定出具有一定相似度的参考算子,且,基于条件语句能够减少计算参数特征向量之间的距离所需的计算量,从而在保证参考算子针对目标算子的参考价值的同时,提升计算效率。
第二方面,提供了一种算子性能确定装置,该装置包括多个功能模块,用于执行如第一方面所提供的算子性能确定方法中的对应步骤。
第三方面,提供了一种计算设备,该计算设备包括处理器和存储器,该存储器用于存储至少一段程序代码,该至少一段程序代码由该处理器加载并执行第一方面提供的算子性能确定方法。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质用于存储至少一段程序代码,该至少一段程序代码用于执行第一方面提供的算子性能确定方法。
第五方面,提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行第一方面提供的算子性能确定方法。
附图说明
图1是本申请实施例提供的一种算子性能确定方法的实施环境的示意图;
图2是本申请实施例提供的一种计算设备的硬件结构示意图;
图3是本申请实施例提供的一种屋顶线模型的示意图;
图4是本申请实施例提供的一种算子性能确定方法的流程示意图;
图5是本申请实施例提供的一种基准算子信息库的示意图;
图6是本申请实施例提供的一种预测工作点的示意图;
图7是本申请实施例提供的一种算子性能确定方法的示意图;
图8是本申请实施例提供的一种算子性能确定装置的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在介绍本申请实施例提供的技术方案之前,下面先对本申请涉及的关键术语进行说明。
算子(operator),算法中用于实现计算逻辑的计算单元。
计算量(operations,OPs),也即是执行的计算次数。由于最常用的数据格式为32位浮点数,因此计算量Ops也可以写作浮点计算次数(floating point operations,FLOPs)。
访存量,计算时访问内存的数据量,也即是计算时需要从内存中存/取的数据量。访存量通常以字节(bytes)为单位。
屋顶线模型(roofline model),一种根据计算平台的硬件资源,评估算法在计算平台上能达到的计算性能上限的数学模型。
计算强度(operational intensity,OI),也称算力强度(arithmetic intensity,AI),用于描述单位访存量下所需的计算量,其单位为:计算次数/字节(OPs/Byte)。计算强度也被称为计算访存比或计算密度。
性能瓶颈类型,指算子的计算性能的受限类型,例如,受计算平台算力限制,属于计算瓶颈类型;受计算平台带宽限制,属于访存瓶颈类型。
接下来对本申请实施例提供的技术方案的实施环境进行简要介绍。
图1是本申请实施例提供的一种算子性能确定方法的实施环境的示意图,参见图1,该实施环境包括服务器110和终端120。
其中,服务器110用于执行本申请提供的算子性能预测方法,从而为终端120提供针对算子的性能预测服务。在一些实施例中,该终端120能够向服务器110发送待测算子(例如,以程序代码的形式发送),服务器110接收到该终端120发送的待测算子,基于本申请提供的算子性能预测方法,对该待测算子在任一计算平台中的计算性能进行预测,从而将预测得到的性能相关信息,返回给终端120。
在一些实施例中,上述计算平台用于为算子提供执行计算任务所需的硬件资源。本申请涉及的硬件资源至少包括计算资源和存储资源。示例性地,该计算平台搭载有任意类型芯片的,该芯片所能提供的硬件资源也即是该计算平台所提供的主要硬件资源。其中,芯片是指由不同或相同的集成电路组合而成的集成电路产品。芯片的类型可以根据其涉及的集成电路类型来划分,例如,该芯片所集成的处理器可以包括网络处理器(networkprocessor,NP)、中央处理器(central processing unit,CPU)、图像处理器(graphicsprocessing unit,GPU)、特定应用集成电路(application-specific integratedcircuit,ASIC)或张量处理器(tensor processing unit,TPU)等,本申请对此不作限定。在一些实施例中,可以根据计算平台所搭载的芯片的类型、版本或型号来区分不同的计算平台,例如,基于CPU的计算平台、基于GPU的计算平台或基于ASIC的计算平台。
其中,服务器110和终端120之间通过有线网络或者无线网络方式通信连接。在一些实施例中,上述无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也能够是任何网络,包括但不限于局域网(local area network,LAN)、城域网(metropolitan area network,MAN)、广域网(wide area network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,服务器110和终端120之间基于远程调用协议(remote procedure call protocol,RPC)来实现点对点(peer-to-peer,P2P)通讯。在一些实施例中,服务器110和终端120之间使用包括超级文本标记语言(hyper text markup language,HTML)、可扩展标记语言(extensible markup language,XML)等的技术和/或格式来代表通过网络交换的数据。此外还能够使用诸如安全套接字层(secure socket layer,SSL)、传输层安全(transport layer security,TLS)、虚拟专用网络(virtual private network,VPN)和网际协议安全(internet protocol security,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还能够使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
在一些实施例中,服务器110可以是一个或多个计算设备所组成的服务器集群,还可以是基于分布式架构的云服务器。终端120也被称为智能终端或移动智能终端,是指一类具备丰富人机交互方式、拥有接入互联网能力、通常搭载各种操作系统、具有较强处理能力的设备。在一些实施例中,终端的类型包括但不限于个人电脑(personal computer,PC)、智能手机、平板电脑、车载终端等。
下面对本申请实施例涉及的计算设备硬件结构进行介绍。
本申请实施例提供了一种计算设备,能够实现为上述服务器110。示意性地,参考图2,图2是本申请实施例提供的一种计算设备的硬件结构示意图。如图2所示,该计算设备200包括存储器201、处理器202、通信接口203以及总线204。其中,存储器201、处理器202、通信接口203通过总线204实现彼此之间的通信连接。
存储器201可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。处理器202通过读取存储器201中保存的程序代码实现下述实施例中的算子性能确定方法,或者,处理器202通过内部存储的程序代码实现下述实施例中的算子性能确定方法。在处理器202通过读取存储器201中保存的程序代码实现下述实施例中的算子性能确定方法的情况下,存储器201中保存实现本申请实施例提供的算子性能确定方法的程序代码。
处理器202可以是网络处理器(network processor,NP)、中央处理器(centralprocessing unit,CPU)、图像处理器(graphics processing unit,GPU)、特定应用集成电路(application-specific integrated circuit,ASIC)或用于控制本申请方案程序执行的集成电路。该处理器202可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。该处理器202的数量可以是一个,也可以是多个。通信接口203使用例如收发器一类的收发模块,来实现计算设备200与其他设备或通信网络之间的通信。例如,可以通过通信接口203获取算子的程序代码。
其中,存储器201和处理器202可以分离设置,也可以集成在一起。
总线204可包括在计算设备200各个部件(例如,存储器201、处理器202、通信接口203)之间传送信息的通路。
接下来先对屋顶线模型预测算子计算性能的原理进行介绍。
本申请实施例提供了一种屋顶线模型的示意图,参见图3,计算平台提供的硬件资源包括计算资源和存储资源,其中,算力能够作为度量计算资源的指标,带宽能够作为度量存储资源的指标。根据带宽对计算量的限制以及带宽对访存量的限制,分别示出了roofline模型的斜屋顶线和平屋顶,roofline模型的横轴为计算强度(也即时计算访存比),纵轴为计算速度(也即是每秒浮点运算次数)。其中,斜屋顶线的斜率为硬件资源提供的理论带宽;平屋顶线对应的纵轴值对应硬件资源提供的理论算力。
参见图3,理论工作点1对应于算子1,理论工作点1在roofline模型中的坐标为(x1,y1),该理论工作点1表示算子1基于理论计算强度x1在计算平台中所能够达到的理论计算速度y1;理论工作点2对应于算子2,理论工作点2在roofline模型中的坐标为(x2,y2),该理论工作点2表示算子2基于理论计算强度x2在计算平台中所能够达到的理论计算速度y2;其中,理论工作点1处于斜屋顶线上,则说明算子1的计算性能(计算速度)上限由硬件资源提供的带宽决定,也即是,该算子1的性能瓶颈属于访存瓶颈类型;其中,理论工作点2处于平屋顶线上,则说明算子2的计算性能(计算速度)上限由硬件资源提供的算力决定,也即是,该算子2的性能瓶颈属于计算瓶颈类型。
基于图3提供的roofline模型,则能够根据算子实际的计算需求(计算量和/或访存量)和roofline模型提供的理论计算速度,来确定算子的计算耗时。但由于roofline模型提供的理论计算速度会因多种因素影响而与实际计算速度存在一定差距,导致得到的计算耗时并不准确。这一差距体现在图3中,也即是算子的实际工作点相对于理论工作点发生迁移。
本申请实施例提供的算子性能预测方法能够解决上述问题,有效地提升确定算子性能的准确性。接下来对本申请实施例提供的算子性能预测方法进行详细说明。
图4是本申请实施例提供的一种算子性能确定方法的流程示意图,该方法的执行主体是服务器,该方法包括下述步骤401至步骤403。
401、服务器基于目标算子的算子参数,确定该目标算子的参考算子,该算子参数用于表示算子在应用任一计算平台的硬件资源执行目标计算任务时的参数,该参考算子的算子参数与该目标算子的算子参数之间的相似度符合相似度条件。
在本申请实施例中,算子用于执行计算任务。示例性地,深度学习算法通常实现为神经网络模型,而模型包括的算子可以是指用于实现指定计算任务的模型网络层,例如,用于实现特征提取任务的卷积层(convolution layer);也可以是指模型网络层中实现指定计算任务的函数,例如,全连接层(fully-connected layer)中用于实现前向计算任务的权值求和函数(sum)。
本申请提供的技术方案,能够对算子在任意计算平台上的性能表现进行准确预测。应理解,本申请实施例所述的模型和算子,仅是以不同的粒度描述实现指定计算任务的计算逻辑,例如,一个由多个计算单元构成的模型也可以被看作是一个算子,本申请技术方案的实施不因算子的粒度受到限制。也即是,本申请实施例提供的算子性能确定方法能够应用于模型的整体性能预测,也能够针对模型包括的多种算子进行更加细粒度的性能预测,本申请对此不作限定。
在一些实施例中,该算子参数包括描述算子的计算逻辑的参数,例如,算子的输入参数、输出参数等。在一些实施例中,该算子参数包括描述算子的算法架构的参数,例如,算子的输入数据大小、输出大小和算子类型等。示例性地,该目标算子为卷积算子,则该算子参数可以包括:卷积类型、卷积核大小(kernel size)、步长(stride)和输入输出形状(或称输入输出通道数)等。在另一些实施例中,该目标算子为应用在分布式计算平台中的通信算子,则通信算子的算子参数可以包括通信类型、通信量、通信域、通信算法等,本申请对此不做限定。
在一些实施例中,该算子参数与计算平台无关,也即是,无论算子应用何种架构计算平台的硬件资源来执行计算任务,都需要使用到该算子参数,因此,该算子参数能够指示该目标算子与硬件架构无关的特征,从而能够代表该目标算子的算法本质。
其中,计算平台的说明参考图1对实施环境进行介绍的内容,在此不作赘述。
其中,硬件资源包括计算资源和存储资源,算力能够作为度量计算资源的指标,带宽能够作为度量存储资源的指标。其中,算力描述了一个计算平台每秒钟所能完成的(浮点)计算次数,单位可以为FLOPS或FLOP/s;带宽描述了一个计算平台每秒所能完成的内存交换数据量,单位可以为Byte/s。
需要说明的是,本申请所提及的内存是指计算平台中硬件资源包括的存储资源,例如,对于搭载CPU的计算平台而言,内存包括内存储器;对于搭载GPU计算平台,内存则包括显存(或称显卡),本申请对内存的形式不做限定。
在一些实施例中,服务器关联有基准(benchmark)算子信息库,该基准算子信息库存储有多个基准算子的算子参数。其中,该基准算子是针对一类算子具有代表性的算子,例如,针对用于实现卷积功能的一类算子(如分组卷积算子和可分离卷积算子),基准算子可以为标准卷积算子。在一些实施例中,能够通过对大量算子进行聚类和分类,以将算子分为多类;再针对每一类算子,选取出该类的基准算子。其中,可以参考算子的算子参数针对同一类算子的覆盖程度来选取基准算子。在另一些实施例中,也可以基于专家经验来选取基准算子,本申请实施例对此不作限定。接下来,基于该基准算子信息库,介绍两种确定参考算子的方式,参见下述方式1和方式2。
方式1、基于向量之间的距离。
在一些实施例中,服务器能够基于该目标算子的算子参数,构建参数特征向量,从而根据向量之间的距离来确定相似度,以从该基准算子信息库中确定出该参考算子,该过程可以包括下述步骤1-1和步骤1-2。
步骤1-1、服务器基于该目标算子的算子参数,确定该目标算子的参数特征向量,该参数特征向量的多个维度指示该目标算子执行该目标计算任务时的多个参数。
在一些实施例中,该目标算子以程序代码的形式存储。服务器能够对该目标算子的程序代码进行分析,以抽取出与硬件架构无关的算子参数,进而根据抽取出的算子参数,生成参数特征向量。示例性地,该目标算子为卷积算子,抽取得到的算子参数包括:卷积核大小、步长和输入通道数和输出通道数,基于该算子参数生成的参数特征向量中的四个元素则可以分别指示该卷积核大小、步长和输入通道数和输出通道数。
步骤1-2、服务器从多个基准算子的参数特征向量中,确定与该目标算子的参数特征向量之间的距离符合该相似度条件的目标参数特征向量,该目标参数特征向量对应的基准算子为该参考算子。
在一些实施例中,服务器关联的该基准算子信息库中,存储有多个基准算子对应的算子参数,相应地,服务器能够通过上述方法,确定该多个基准算子的参数特征向量,确定过程在此不作赘述。在这种示例下,服务器能够通过计算该目标算子的参数特征向量和该多个基准算子的参数特征向量之间的距离,来确定该目标参数特征向量。
在一些实施例中,服务器能够基于该目标算子的算子参数中指示的算子类型,从基准算子信息库中提供的多个基准算子中,确定出类型与该目标算子相似或相同的部分基准算子,进而针对该部分基准算子的参数特征向量,计算与该目标算子的参数特征向量之间的距离,从而减少计算量,提升确定参考算子的效率。
在一些实施例中,该相似度条件可以为:与该目标算子的参数特征向量之间的距离不大于相似阈值。在一些实施例中,该相似阈值可以根据确定参考算子的精确度进行调整,例如,该相似阈值可以设置为0,满足该相似度条件的目标参数特征向量与该目标算子的参数特征向量之间的距离为0,也即是,目标参数特征向量与该目标算子的参数特征向量相同。
在一些实施例中,服务器计算向量之间距离的方式可以包括:欧氏距离、余弦距离和汉明距离等,本申请对此不作限定。
通过上述技术方案,将算子的算子参数处理为与硬件架构无关的参数特征向量,从而高效地表征算子的算法本质,进而能够精准地从多个基准算子中确定出具有一定相似度的参考算子,从而能够保证该参考算子针对目标算子的参考价值。
方式2、基于相似条件语句。
在一些实施例中,服务器能够基于该目标算子的算子参数,以条件语句的形式确定相似度,以从该基准算子信息库中确定出该参考算子,该过程可以包括下述步骤2-1和步骤2-2。
步骤2-1、服务器基于该目标算子的算子参数,确定相似条件语句,该相似条件语句指示确定任一基准算子的算子参数与该目标算子的算子参数之间相似的逻辑。
在一些实施例中,该目标算子以程序代码的形式存储。服务器能够读取该目标算子的程序代码进行分析,对该程序代码中的算子参数进行抽取,以生成相似条件语句。该相似条件语句用于判断任一基准算子的算子参数中是否存在该目标算子的算子参数,并根据判断结果计算相似度。示例性地,若任一基准算子的算子参数中存在该目标算子的算子参数,则执行相似度增加操作。在一些实施例中,该相似条件语句可以为“if-then”条件语句,本申请对此不作限定。
在另一些实施例中,该可以由该服务器对该程序代码进行分析,抽取出该算子参数对应的关键代码元素,再由技术人员根据抽取出的关键代码元素,编写该相似条件语句,该服务器则能够直接读取相似条件语句来执行后续步骤。
步骤2-2、服务器基于该相似条件语句和多个基准算子的算子参数,从该多个基准算子中确定符合该相似度条件的该参考算子。
在一些实施例中,服务器关联的该基准算子信息库中,存储有多个基准算子对应的算子参数,服务器能够基于该相似条件语句,对该多个基准算子的算子参数进行判断,确定出该多个基准算子的算子参数与该目标算子的算子参数之间的相似度,从而将相似度符合该相似度条件的基准算子确定为参考算子。示例性地,服务器读取该多个基准算子的算子参数,基于该相似条件语句,判断各个基准算子的算子参数中是否存在该目标算子的算子参数,若存在,则针对该基准算子,执行相似度增加操作,例如,将该基准算子对应的相似度标识字段加1。基于此,通过比较每个基准算子的相似度标识字段的数值,即可确定该参考算子。在一些实施例中,该相似度条件可以为:相似度标识字段的数值大于目标数值。
通过上述技术方案,基于算子参数设计判断相似的条件语句,从而能够精准地从多个基准算子中确定出具有一定相似度的参考算子,且,基于条件语句能够减少计算参数特征向量之间距离所需的计算量,从而在保证参考算子针对目标算子的参考价值的同时,提升计算效率。
402、服务器获取该参考算子的目标性能迁移信息,该目标性能迁移信息指示该参考算子在目标计算平台中应用的实际硬件资源与该目标计算平台中理论硬件资源之间的对应关系。
在一些实施例中,该目标计算平台可以根据该目标算子的测试需求确定。在一些实施例中,该服务器响应于从终端接收到针对该目标算子的性能预测请求,根据该性能预测请求携带的待测平台信息,确定该目标计算平台。在一些实施例中,该待测平台信息可以包括目标芯片的类型、版本或型号,从而指示搭载有该目标芯片的目标计算平台。
在本申请实施例中,该目标性能迁移信息作为一种先验的指导信息,其指示了目标计算平台中实际硬件资源与理论硬件资源之间的差距。
在一些实施例中,通过获取该参考算子在该目标计算平台中的实测结果,再将该实测结果与该目标计算平台的roofline模型确定的出的理论结果进行比较,即可确定出该目标性能迁移信息。下面通过介绍目标性能迁移信息包括的两种信息,来说明该目标性能迁移信息的确定过程。
(1)资源利用信息。
在一些实施例中,目标性能迁移信息包括资源利用信息,该资源利用信息指示该目标计算平台提供的实际硬件资源与理论硬件资源的比值。考虑到在多数情况下,算子应用硬件资源执行计算任务,但无法100%发挥硬件资源的性能,也即是,对资源的利用率并不是100%。本申请针对这种情况,通过计算参考算子对硬件资源的利用率,以将硬件导致的偏差,量化为可供同类算子参考的资源利用信息。
在一些实施例中,该资源利用信息包括带宽利用率和算力利用率。该带宽利用率可以为参考算子在目标计算平台中利用到的实际带宽和目标计算平台的理论带宽的比值;该算力利用率可以为参考算子在目标计算平台中利用到的实际算力和目标计算平台的理论算力的比值。
(2)算子负载信息。
在一些实施例中,目标性能迁移信息包括算子负载信息,该算子负载信息指示该参考算子执行参考计算任务的实际计算强度相对于该参考算子的理论计算强度的偏移量。在一些实施例中,算子执行计算任务的实际过程中,会因发生重复或冗余的计算和访存,导致实际计算量和实际访存量与理论值存在偏差,也即使得实际计算强度(实际计算量和实际访存量的比值)相对于该参考算子的理论计算强度发生偏移,使得算子为硬件资源带来的实际负载更大或更小。本申请针对这种情况,通过分析参考算子执行其参考计算任务的过程中的实际计算量和实际访存量,以将算子导致的偏差,量化为可供同类算子参考的算子负载信息。
在一些实施例中,算子负载信息包括计算量偏移量和访存量偏移量。该计算量偏移量可以为实际计算量和理论计算量之间的差值,或者实际计算量与理论计算量的比值;该访存量偏移量可以为实际访存量和理论访存量之间的差值,或者实际访存量与理论访存量的比值。
在一些实施例中,该参考算子在该目标计算平台中的实测结果也即包括上述实际带宽、实际算力、实际计算量和实际访存量。在另一些实施例中,该实测结果可以是用于计算上述实际带宽、实际算力、实际计算量和实际访存量的相关信息,本申请对此不作限定。
在一些实施例中,服务器关联的基准算子信息库中,存储有基于上述方式确定出的多个基准算子在多种计算平台上的性能迁移信息,使得本申请的技术方案能够覆盖多种类型的计算平台和算子类型,全面地解决了在预测算子计算性能时,算子所针对的计算平台不支持、所具备的硬件条件不足或实验成本过高等问题。
在一些实施例中,服务器在针对任一基准算子执行上述确定性能迁移信息的过程中,还能够基于该基准算子在计算平台中的实测结果和基于该计算平台的roofline模型确定的理论结果,构建基准算子对应的先验性能模型。参考图3提供的roofline模型,该先验性能模型通过在计算平台的roofline模型中标记基准算子的实际工作点得到,也即是,该先验性能模型能够指示算子的实际工作点相对于理论工作点发生的迁移。
在一些实施例中,上述实际工作点相对于理论工作点发生的迁移可能导致算子的性能瓶颈类型发生变化。参见图3,理论工作点1位于平屋顶线对应的区域,其对应算子1为计算瓶颈类型,若该算子1的实际工作点相对于理论工作点1发生较大迁移,落在斜屋顶线对应的区域,则该算子1的性能瓶颈类型则由理论上的计算瓶颈类型变化为访存瓶颈类型。基于此,在一些实施例中,该性能迁移信息能够进一步指示基准算子的性能瓶颈类型变化。
为了便于理解,本申请提供了一种基准算子信息库的示意图,参见图5,基准算子信息库中,存储有多个基准算子的先验性能模型、性能迁移信息以及算子参数。其中,基准算子的先验性能模型中指示理论工作点和实际工作点(对工作点的介绍参考图3);基准算子的性能迁移信息包括资源利用信息α和算子负载信息β。如图5所示,基准算子1的性能迁移信息指示该基准算子1的性能瓶颈类型为计算瓶颈,则α=0.8指示算力利用率为0.8,β=0.8指示计算量偏移量为0.8(实际计算量和理论计算量之间的比值);基准算子2的性能迁移信息指示该基准算子2的性能瓶颈类型为访存瓶颈,则α=0.8指示带宽利用率为0.8,β=0.8指示访存量偏移量为0.8(实际访存量和理论访存量之间的比值);基准算子3的性能迁移信息指示该基准算子3的性能瓶颈类型由计算瓶颈变化为访存瓶颈,则α=0.8指示带宽利用率为0.8,β=0.4指示访存量偏移量为0.4(实际访存量和理论访存量之间的比值);基准算子4的性能迁移信息指示该基准算子4的性能瓶颈类型由访存瓶颈变化为计算瓶颈,则α=0.95指示算力利用率为0.95,β=1.2指示计算量偏移量为1.2(实际计算量和理论计算量之间的比值)。
403、服务器基于该目标性能迁移信息、该目标计算平台的屋顶线模型和该目标算子的理论计算强度,确定该目标算子在该目标计算平台中执行该目标计算任务的预测计算耗时,该理论计算强度用于表示该目标算子对该目标计算平台中硬件资源的应用情况。
其中,该理论计算强度为该目标算子执行该目标计算任务的理论计算量和理论访存量的比值。理论计算强度能够表示算子在计算过程中,每单位(例如byte)内存交换能够进行多少次浮点运算,其能够反映程序运行过程中计算相对于访存的密集程度。而计算量反映了算子对硬件资源中计算资源的需求,访存量反映了模型对硬件资源中存储资源的需求,因此,该理论计算强度能够表示目标算子对该目标计算平台中硬件资源的应用情况。
在一些实施例中,该目标算子的理论计算量和访存量都可以根据其算子参数确定。该目标算子是一个模型的卷积层,基于卷积层输入样本的大小和卷积层的深度等参数,即可确定该卷积层完成一次完整的前向传播所执行的浮点计算次数,也即是,该卷积层的计算量。相应地,卷积层完成一次前向传播过程中所发生的内存交换数据量也即是该卷积层的访存量。
在一些实施例中,本步骤403可以通过下述步骤3-1至步骤3-3实现。
步骤3-1、服务器基于该目标计算平台的屋顶线模型和该目标算子的理论计算强度,确定该目标算子基于该理论计算强度在该目标计算平台中执行该目标计算任务的理论计算速度。
本步骤3-1的实现原理参考图3对应内容中对屋顶线模型确定理论计算速度的介绍,在此不作赘述。
步骤3-2、服务器基于该目标性能迁移信息,调整该理论计算强度和该理论计算速度,以得到预测计算强度和预测计算速度。
在一些实施例中,服务器能够基于该目标性能迁移信息包括的多种信息,分别调整该理论计算强度和该理论计算速度,参见下述调整流程一和调整流程二。
调整流程一、调整理论计算速度。
在一些实施例中,服务器基于该目标性能迁移信息包括的资源利用信息,调整该理论计算速度,以得到该预测计算速度。针对目标算子的性能瓶颈类型,服务器能够针对性地利用资源利用信息中的算力利用率或带宽利用率来调整该理论计算速度。其中,性能瓶颈类型能够根据该目标计算平台的理论强度上限确定。该理论强度上限为该目标计算平台提供的理论算力与理论带宽的比值。
在一些实施例中,若该理论计算强度小于该目标计算平台的理论强度上限,则该目标算子理论上为访存瓶颈类型(参考前文介绍)。在这种情况下,服务器基于带宽利用率,调整用于确定该理论计算速度的理论带宽,以得到该预测计算速度。示例性地,针对访存瓶颈类型,理论计算速度为理论带宽和理论计算强度的乘积,通过带宽利用率调整该理论带宽,即可得到预测带宽,从而基于预测带宽和理论计算强度的乘积,得到预测计算速度。这一过程也可以直接认为是用带宽利用率调整了理论计算速度的大小,得到了该预测计算速度。其中,该带宽利用率小于等于100%。
在另一些实施例中,若该理论计算强度不小于该目标计算平台的理论强度上限,则该目标算子理论上为计算瓶颈类型(参考前文介绍)。在这种情况下,服务器基于算力利用率,调整用于确定该理论计算速度的理论算力,以得到该预测计算速度。示例性地,针对计算瓶颈类型,该理论计算速度即为理论算力,通过算力利用率调整该理论算力,即可得到预测算力,以直接得到预测计算速度。其中,该算力利用率小于等于100%。
通过上述技术方案,基于资源利用信息完成了对理论计算速度的调整,从而解决了因硬件资源无法完全利用导致的性能预测偏差,大大提升了预测算子计算性能的准确性。并且,能够灵活地针对性能瓶颈类型,采用对应的资源利用率来实现精确调整,进一步提升了预测算子计算性能的准确性。
调整流程二、调整理论计算强度。
在一些实施例中,服务器能够基于该目标性能迁移信息包括的算子负载信息,调整该理论计算强度,以得到该预测计算强度。针对目标算子的性能瓶颈类型,服务器能够针对性地利用算子负载信息中的计算量偏移量或访存量偏移量,来调整该理论计算强度。其中,性能瓶颈类型能够根据该目标计算平台的理论强度上限确定。该理论强度上限为该目标计算平台提供的理论算力与理论带宽的比值。
在一些实施例中,若该理论计算强度不小于该目标计算平台的理论强度上限,则该目标算子理论上为计算瓶颈类型。在这种情况下,服务器基于该计算量偏移量,调整该理论计算量,以得到该预测计算强度。示例性地,计算量偏移量为实际计算量和理论计算量之间的比值,服务器基于该计算量偏移量和该理论计算量,得到预测计算量,从而得到该预测计算强度。
在一些实施例中,若该理论计算强度小于该目标计算平台的理论强度上限,则该目标算子理论上为访存瓶颈类型。在这种情况下,服务器基于该访存量偏移量,调整该理论访存量,以得到该预测计算强度。示例性地,访存量偏移量为实际访存量和理论访存量之间的比值,服务器基于该访存量偏移量和该理论访存量,得到预测访存量,从而得到该预测计算强度。
通过上述技术方案,基于算子负载信息完成了对理论计算强度的调整,从而解决了因算子本身运算过程导致的性能预测偏差,大大提升了预测算子计算性能的准确性。并且,能够灵活地针对性能瓶颈类型,采用对应的偏移量来实现精确调整,进一步提升了预测算子计算性能的准确性。
需要说明的是,上述调整流程一和调整流程二之间不存在时序上的先后,也即是,调整流程一可以在调整流程二之前或之后执行,也可以和调整流程二同步执行,本申请对此不作限定。
在一些实施例中,至少执行上述调整流程一和调整流程二中的一项,也即是,调整理论计算强度和该理论计算速度中的至少一项。
步骤3-3、服务器基于该预测计算强度和预测计算速度,确定该目标算子的预测计算耗时。
在一些实施例中,服务器能够针对目标算子的预测性能瓶颈类型,利用不同的参数来计算该预测计算耗时。其中,根据确定出的预测计算强度和预测计算速度,即可得到该目标算子的预测工作点,从而根据该预测工作点在该目标计算平台的roofline模型中所处的区域,确定该目标算子的预测性能瓶颈类型。
为了便于理解,本申请提供了一种预测工作点的示意图,参见图6。如图6中(a)图所示,目标算子的预测工作点的横坐标为预测计算强度,预测工作点的纵坐标为预测计算速度,该预测计算点处于平屋顶线对应的区域,则该目标算子的预测性能瓶颈类型为计算瓶颈类型;如图6中(b)图所示,目标算子的预测工作点的横坐标为预测计算强度,预测工作点的纵坐标为预测计算速度,该预测计算点处于斜屋顶线对应的区域,则该目标算子的预测性能瓶颈类型为访存瓶颈类型;其中,虚线箭头指示实际工作点发生迁移得到了预测工作点。
在一些实施例中,该目标算子为计算瓶颈类型。服务器基于该预测计算强度对应的预测计算量(参见调整流程二)和预测计算速度,即可确定该预测计算耗时。示例性地,该预测计算速度等同于该目标计算平台的预测算力(参见调整流程一),则预测计算耗时可以通过下述公式(1)得到。
公式(1)中,P′为预测计算量,C′为预测算力,T为预测计算耗时。
在一些实施例中,该目标算子为访存瓶颈类型。服务器基于该预测计算强度对应的预测访存量(参见调整流程二)和预测计算速度对应的预测带宽(参见调整流程一),即可确定该预测计算耗时。预测计算耗时可以通过下述公式(2)得到。
公式(2)中,M′为预测访存量,N′为预测带宽,T为预测计算耗时。
在本申请实施例中,该预测计算耗时能够指示该目标算子在该目标计算平台中的计算性能,预测计算耗时越小,则预测出该目标算子的计算性能越优。
针对上述步骤401至步骤403的实现原理,本申请提供了一种算子性能确定方法的示意图,参见图7,其中,服务器能够基于该目标算子的算子参数(参考步骤401),提取出参数特征向量701,从而基于701从基准算子信息库(参考图5)中确定出与目标算子相似度符合相似度条件的基准算子1,通过获取基准算子1的性能迁移信息(α、β参考图5),调整该目标算子的理论工作点702,得到该目标算子的预测工作点703,从而计算得到该目标算子的预测计算耗时;其中,虚线箭头指示与基准算子的算子参数进行相似比较。
通过上述技术方案,基于能表征算法本质的算子参数,确定出相似的参考算子,从而基于参考算子提供的先验性能迁移信息,准确地预测出计算平台中实际硬件资源与理论硬件资源之间的潜在差距,从而大大提升了预测算子计算性能的准确性。
并且,通过多种方式,精准地从多个基准算子中确定出与待测算子的算子参数相似度较高的参考算子,从而能够保证该参考算子针对目标算子的参考价值。
进一步地,能够针对待测算子的性能瓶颈类型,有效地解决因硬件资源无法完全利用导致的性能预测偏差以及因算子本身运算过程导致的性能预测偏差,从而大大提升了预测算子性能的准确性。
图8是本申请实施例提供的一种算子性能确定装置的结构示意图。参见图8,该算子性能预测装置包括:
参考模块801,用于基于目标算子的算子参数,确定该目标算子的参考算子,该算子参数用于表示算子在应用任一计算平台的硬件资源执行目标计算任务时的参数,该参考算子的算子参数与该目标算子的算子参数之间的相似度符合相似度条件;
获取模块802,用于获取该参考算子的目标性能迁移信息,该目标性能迁移信息指示该参考算子在目标计算平台中应用的实际硬件资源与该目标计算平台中理论硬件资源之间的对应关系;
预测模块803,用于基于该目标性能迁移信息、该目标计算平台的屋顶线模型和该目标算子的理论计算强度,确定该目标算子在该目标计算平台中执行该目标计算任务的预测计算耗时,该理论计算强度用于表示该目标算子对该目标计算平台中硬件资源的应用情况。
在一种可能实施方式中,该预测模块803,包括:
理论确定单元,用于基于该目标计算平台的屋顶线模型和该目标算子的理论计算强度,确定该目标算子基于该理论计算强度在该目标计算平台中执行该目标计算任务的理论计算速度;
调整单元,用于基于该目标性能迁移信息,调整该理论计算强度和该理论计算速度,以得到预测计算强度和预测计算速度;
预测单元,用于基于该预测计算强度和预测计算速度,确定该目标算子的预测计算耗时。
在一种可能实施方式中,该调整单元,包括下述至少一项:
第一调整子单元,用于基于该目标性能迁移信息包括的资源利用信息,调整该理论计算速度,以得到该预测计算速度,该资源利用信息指示该目标计算平台提供的实际硬件资源与理论硬件资源的比值;
第二调整子单元,用于基于该目标性能迁移信息包括的算子负载信息,调整该理论计算强度,以得到该预测计算强度,该算子负载信息指示该参考算子执行参考计算任务的实际计算强度相对于该参考算子的理论计算强度的偏移量。
在一种可能实施方式中,该资源利用信息包括带宽利用率和算力利用率;该第一调整子单元,用于:
若该理论计算强度小于该目标计算平台的理论强度上限,基于该带宽利用率,调整用于确定该理论计算速度的理论带宽,以得到该预测计算速度;
若该理论计算强度不小于该目标计算平台的理论强度上限,基于该算力利用率,调整用于确定该理论计算速度的理论算力,以得到该预测计算速度;
其中,该理论强度上限为该目标计算平台提供的该理论算力与该理论带宽的比值。
在一种可能实施方式中,该算子负载信息包括计算量偏移量和访存量偏移量,该理论计算强度为该目标算子执行该目标计算任务的理论计算量和理论访存量的比值;该第二调整子单元,用于:
若该理论计算强度不小于该目标计算平台的理论强度上限,基于该计算量偏移量,调整该理论计算量,以得到该预测计算强度;
若该理论计算强度小于该目标计算平台的理论强度上限,基于该访存量偏移量,调整该理论访存量,以得到该预测计算强度;
其中,该理论强度上限为该目标计算平台提供的理论算力与理论带宽的比值。
在一种可能实施方式中,该参考模块801,用于:
基于该目标算子的算子参数,确定该目标算子的参数特征向量,该参数特征向量的多个维度指示该目标算子执行该目标计算任务时的多个参数;
从多个基准算子的参数特征向量中,确定与该目标算子的参数特征向量之间的距离符合该相似度条件的目标参数特征向量,该目标参数特征向量对应的基准算子为该参考算子。
在一种可能实施方式中,该参考模块801,用于:
基于该目标算子的算子参数,确定相似条件语句,该相似条件语句指示确定任一基准算子的算子参数与该目标算子的算子参数之间相似的逻辑;
基于该相似条件语句和多个基准算子的算子参数,从该多个基准算子中确定符合该相似度条件的该参考算子。
通过上述技术方案,基于能表征算法本质的算子参数,确定出相似的参考算子,从而基于参考算子提供的先验性能迁移信息,准确地预测出计算平台中实际硬件资源与理论硬件资源之间的潜在差距,从而大大提升了预测算子计算性能的准确性。并且,通过多种方式,精准地从多个基准算子中确定出与待测算子的算子参数相似度较高的参考算子,从而能够保证该参考算子针对目标算子的参考价值;进一步地,能够针对待测算子的性能瓶颈类型,有效地解决因硬件资源无法完全利用导致的性能预测偏差以及因算子本身运算过程导致的性能预测偏差,从而大大提升了预测算子性能的准确性。
需要说明的是:上述实施例提供的算子性能确定装置在进行数据处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的算子性能确定装置与算子性能确定方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
需要说明的是,本申请所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的参数、算子和模型都是在充分授权的情况下获取的。
本申请中术语“第一”和“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。还应理解,尽管以下描述使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。例如,在不脱离上述各种示例的范围的情况下,第一算子可以被称为第二算子,并且类似地,第二算子可以被称为第一算子。第一算子和第二算子都可以是算子,并且在某些情况下,可以是单独且不同的算子。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个算子是指两个或两个以上的算子。
以上描述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以程序产品的形式实现。该程序产品包括一个或多个程序指令。在计算设备上加载和执行该程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上实施例内容仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (17)
1.一种算子性能确定方法,其特征在于,所述方法包括:
基于目标算子的算子参数,确定所述目标算子的参考算子,所述算子参数用于表示算子在应用任一计算平台的硬件资源执行目标计算任务时的参数,所述参考算子的算子参数与所述目标算子的算子参数之间的相似度符合相似度条件;
获取所述参考算子的目标性能迁移信息,所述目标性能迁移信息指示所述参考算子在目标计算平台中应用的实际硬件资源与所述目标计算平台中理论硬件资源之间的对应关系;
基于所述目标性能迁移信息、所述目标计算平台的屋顶线模型和所述目标算子的理论计算强度,确定所述目标算子在所述目标计算平台中执行所述目标计算任务的预测计算耗时,所述理论计算强度用于表示所述目标算子对所述目标计算平台中硬件资源的应用情况。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标性能迁移信息、所述目标计算平台的屋顶线模型和所述目标算子的理论计算强度,确定所述目标算子在所述目标计算平台中执行所述目标计算任务的预测计算耗时,包括:
基于所述目标计算平台的屋顶线模型和所述目标算子的理论计算强度,确定所述目标算子基于所述理论计算强度在所述目标计算平台中执行所述目标计算任务的理论计算速度;
基于所述目标性能迁移信息,调整所述理论计算强度和所述理论计算速度,以得到预测计算强度和预测计算速度;
基于所述预测计算强度和预测计算速度,确定所述目标算子的预测计算耗时。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标性能迁移信息,调整所述理论计算强度和所述理论计算速度,以得到预测计算强度和预测计算速度,包括下述至少一项:
基于所述目标性能迁移信息包括的资源利用信息,调整所述理论计算速度,以得到所述预测计算速度,所述资源利用信息指示所述目标计算平台提供的实际硬件资源与理论硬件资源的比值;
基于所述目标性能迁移信息包括的算子负载信息,调整所述理论计算强度,以得到所述预测计算强度,所述算子负载信息指示所述参考算子执行参考计算任务的实际计算强度相对于所述参考算子的理论计算强度的偏移量。
4.根据权利要求3所述的方法,其特征在于,所述资源利用信息包括带宽利用率和算力利用率;
所述基于所述目标性能迁移信息包括的资源利用信息,调整所述理论计算速度,以得到所述预测计算速度,包括:
若所述理论计算强度小于所述目标计算平台的理论强度上限,基于所述带宽利用率,调整用于确定所述理论计算速度的理论带宽,以得到所述预测计算速度;
若所述理论计算强度不小于所述目标计算平台的理论强度上限,基于所述算力利用率,调整用于确定所述理论计算速度的理论算力,以得到所述预测计算速度;
其中,所述理论强度上限为所述目标计算平台提供的所述理论算力与所述理论带宽的比值。
5.根据权利要求3或4所述的方法,其特征在于,所述算子负载信息包括计算量偏移量和访存量偏移量,所述理论计算强度为所述目标算子执行所述目标计算任务的理论计算量和理论访存量的比值;
所述基于所述目标性能迁移信息包括的算子负载信息,调整所述理论计算强度,以得到所述预测计算强度,包括:
若所述理论计算强度不小于所述目标计算平台的理论强度上限,基于所述计算量偏移量,调整所述理论计算量,以得到所述预测计算强度;
若所述理论计算强度小于所述目标计算平台的理论强度上限,基于所述访存量偏移量,调整所述理论访存量,以得到所述预测计算强度;
其中,所述理论强度上限为所述目标计算平台提供的理论算力与理论带宽的比值。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述基于目标算子的算子参数,确定所述目标算子的参考算子,包括:
基于所述目标算子的算子参数,确定所述目标算子的参数特征向量,所述参数特征向量的多个维度指示所述目标算子执行所述目标计算任务时的多个参数;
从多个基准算子的参数特征向量中,确定与所述目标算子的参数特征向量之间的距离符合所述相似度条件的目标参数特征向量,所述目标参数特征向量对应的基准算子为所述参考算子。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述基于目标算子的算子参数,确定所述目标算子的参考算子,包括:
基于所述目标算子的算子参数,确定相似条件语句,所述相似条件语句指示确定任一基准算子的算子参数与所述目标算子的算子参数之间相似的逻辑;
基于所述相似条件语句和多个基准算子的算子参数,从所述多个基准算子中确定符合所述相似度条件的所述参考算子。
8.一种算子性能确定装置,其特征在于,所述装置包括:
参考模块,用于基于目标算子的算子参数,确定所述目标算子的参考算子,所述算子参数用于表示算子在应用任一计算平台的硬件资源执行目标计算任务时的参数,所述参考算子的算子参数与所述目标算子的算子参数之间的相似度符合相似度条件;
获取模块,用于获取所述参考算子的目标性能迁移信息,所述目标性能迁移信息指示所述参考算子在目标计算平台中应用的实际硬件资源与所述目标计算平台中理论硬件资源之间的对应关系;
预测模块,用于基于所述目标性能迁移信息、所述目标计算平台的屋顶线模型和所述目标算子的理论计算强度,确定所述目标算子在所述目标计算平台中执行所述目标计算任务的预测计算耗时,所述理论计算强度用于表示所述目标算子对所述目标计算平台中硬件资源的应用情况。
9.根据权利要求8所述的装置,其特征在于,所述预测模块,包括:
理论确定单元,用于基于所述目标计算平台的屋顶线模型和所述目标算子的理论计算强度,确定所述目标算子基于所述理论计算强度在所述目标计算平台中执行所述目标计算任务的理论计算速度;
调整单元,用于基于所述目标性能迁移信息,调整所述理论计算强度和所述理论计算速度,以得到预测计算强度和预测计算速度;
预测单元,用于基于所述预测计算强度和预测计算速度,确定所述目标算子的预测计算耗时。
10.根据权利要求9所述的装置,其特征在于,所述调整单元,包括下述至少一项:
第一调整子单元,用于基于所述目标性能迁移信息包括的资源利用信息,调整所述理论计算速度,以得到所述预测计算速度,所述资源利用信息指示所述目标计算平台提供的实际硬件资源与理论硬件资源的比值;
第二调整子单元,用于基于所述目标性能迁移信息包括的算子负载信息,调整所述理论计算强度,以得到所述预测计算强度,所述算子负载信息指示所述参考算子执行参考计算任务的实际计算强度相对于所述参考算子的理论计算强度的偏移量。
11.根据权利要求10所述的装置,其特征在于,所述资源利用信息包括带宽利用率和算力利用率;所述第一调整子单元,用于:
若所述理论计算强度小于所述目标计算平台的理论强度上限,基于所述带宽利用率,调整用于确定所述理论计算速度的理论带宽,以得到所述预测计算速度;
若所述理论计算强度不小于所述目标计算平台的理论强度上限,基于所述算力利用率,调整用于确定所述理论计算速度的理论算力,以得到所述预测计算速度;
其中,所述理论强度上限为所述目标计算平台提供的所述理论算力与所述理论带宽的比值。
12.根据权利要求10或11所述的装置,其特征在于,所述算子负载信息包括计算量偏移量和访存量偏移量,所述理论计算强度为所述目标算子执行所述目标计算任务的理论计算量和理论访存量的比值;所述第二调整子单元,用于:
若所述理论计算强度不小于所述目标计算平台的理论强度上限,基于所述计算量偏移量,调整所述理论计算量,以得到所述预测计算强度;
若所述理论计算强度小于所述目标计算平台的理论强度上限,基于所述访存量偏移量,调整所述理论访存量,以得到所述预测计算强度;
其中,所述理论强度上限为所述目标计算平台提供的理论算力与理论带宽的比值。
13.根据权利要求8至12任一项所述的装置,其特征在于,所述参考模块,用于:
基于所述目标算子的算子参数,确定所述目标算子的参数特征向量,所述参数特征向量的多个维度指示所述目标算子执行所述目标计算任务时的多个参数;
从多个基准算子的参数特征向量中,确定与所述目标算子的参数特征向量之间的距离符合所述相似度条件的目标参数特征向量,所述目标参数特征向量对应的基准算子为所述参考算子。
14.根据权利要求8至12任一项所述的装置,其特征在于,所述参考模块,用于:
基于所述目标算子的算子参数,确定相似条件语句,所述相似条件语句指示确定任一基准算子的算子参数与所述目标算子的算子参数之间相似的逻辑;
基于所述相似条件语句和多个基准算子的算子参数,从所述多个基准算子中确定符合所述相似度条件的所述参考算子。
15.一种计算设备,其特征在于,所述计算设备包括处理器和存储器,所述存储器用于存储至少一段程序代码,所述至少一段程序代码由所述处理器加载并执行如权利要求1至权利要求7中任一项所述的算子性能确定方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储至少一段程序代码,所述至少一段程序代码用于执行如权利要求1至权利要求7中任一项所述的算子性能确定方法。
17.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如权利要求1至权利要求7中任一项所述的算子性能确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211047406.6A CN117667330A (zh) | 2022-08-29 | 2022-08-29 | 算子性能确定方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211047406.6A CN117667330A (zh) | 2022-08-29 | 2022-08-29 | 算子性能确定方法、装置、计算设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117667330A true CN117667330A (zh) | 2024-03-08 |
Family
ID=90068652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211047406.6A Pending CN117667330A (zh) | 2022-08-29 | 2022-08-29 | 算子性能确定方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117667330A (zh) |
-
2022
- 2022-08-29 CN CN202211047406.6A patent/CN117667330A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9715663B2 (en) | Predicting application performance on hardware accelerators | |
US20200074346A1 (en) | Optimization recommendation services for quantum computing | |
Junior et al. | A context-sensitive offloading system using machine-learning classification algorithms for mobile cloud environment | |
CN110058936B (zh) | 用于确定专用处理资源的资源量的方法、设备和计算机程序产品 | |
CN113038302B (zh) | 流量预测方法及装置、计算机可存储介质 | |
Oliveira et al. | BioDinamica: a toolkit for analyses of biodiversity and biogeography on the Dinamica-EGO modelling platform | |
CN114580263A (zh) | 基于知识图谱的信息系统故障预测方法及相关设备 | |
CN112684396B (zh) | 电能表运行误差监测模型的数据预处理方法及系统 | |
CN115618269B (zh) | 基于工业传感器生产的大数据分析方法及系统 | |
US20140244846A1 (en) | Information processing apparatus, resource control method, and program | |
CN116109630B (zh) | 基于传感器采集和人工智能的图像分析方法及系统 | |
Mikhailiuk et al. | Real-time pothole detection on TMS320C6678 DSP | |
CN114721835A (zh) | 边缘数据中心服务器能耗预测方法、系统、设备及介质 | |
CN113449854A (zh) | 网络模型的混合精度量化方法、设备及计算机存储介质 | |
US11663505B2 (en) | Estimating performance and required resources from shift-left analysis | |
Amaris et al. | Evaluating execution time predictions on gpu kernels using an analytical model and machine learning techniques | |
WO2022165152A1 (en) | Constructing a statistical model and evaluating model performance | |
Li et al. | Predicting inference latency of neural architectures on mobile devices | |
CN116543135B (zh) | 一种基于复杂场景图像数据采集方法和系统 | |
CN111381768B (zh) | 一种数据监控的方法和装置 | |
CN117667330A (zh) | 算子性能确定方法、装置、计算设备及存储介质 | |
Chávez et al. | ECJ+ HADOOP: an easy way to deploy massive runs of evolutionary algorithms | |
TW201721462A (zh) | 構造解析方法及構造解析程式 | |
Li et al. | Inference latency prediction at the edge | |
US9760403B2 (en) | Information processing system and method for distributing load over hardware processing and software processing |
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 |