CN111274034B - 模型推理的资源分配方法、装置、计算机设备和存储介质 - Google Patents

模型推理的资源分配方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN111274034B
CN111274034B CN202010062893.8A CN202010062893A CN111274034B CN 111274034 B CN111274034 B CN 111274034B CN 202010062893 A CN202010062893 A CN 202010062893A CN 111274034 B CN111274034 B CN 111274034B
Authority
CN
China
Prior art keywords
model
board card
acceleration
splitting
target sub
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
Application number
CN202010062893.8A
Other languages
English (en)
Other versions
CN111274034A (zh
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.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology 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 Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202010062893.8A priority Critical patent/CN111274034B/zh
Publication of CN111274034A publication Critical patent/CN111274034A/zh
Application granted granted Critical
Publication of CN111274034B publication Critical patent/CN111274034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及一种模型推理的资源分配方法、装置、计算机设备和存储介质。所述方法包括:获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片;获取待分配深度模型和待分配深度模型的各个计算层的时间开销;根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型;根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元。按照时间开销对自动拆解模型,按照拆解后的模型部署模型,采用部署的模型进行模型推理,可以加快模型的推理速度。

Description

模型推理的资源分配方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种模型推理的资源分配方法、装置、计算机设备和存储介质。
背景技术
当前传统GPU是主流的深度学习推理平台,但其存在高成本及高功耗等缺点,AI专用硬件加速芯片的出现一定程度上弥补了不足,在很多应用场合显示了巨大的竞争优势。
目前主流的AI专用推理芯片(如Intel的Movidius Myriad X系列VPU等)由于目标应用场景定位及自身架构等原因,存在支持模型尺寸受限的问题。通常服务器端会部署多张加速板卡,每张加速板卡包含多个加速芯片,以支持大规模AI模型推理。
因此部署大规模AI模型时对需要原模型进行拆分并分配至各加速板卡/芯片资源。由于大规模AI模型计算层数繁多(至少1000层以上),如何分配到各计算资源、以及如何合并计算结果都需要准确考量。如果模型拆分不当或者算力分配不均,将导致整体模型加速效果不佳,甚至模型加载失败的问题。
发明内容
为了解决上述技术问题,本申请提供了一种模型推理的资源分配方法、装置、计算机设备和存储介质。
第一方面,本申请提供了一种模型推理的资源分配方法,包括:
获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片;
获取待分配深度模型和待分配深度模型的各个计算层的时间开销;
根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内;
根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
第二方面,本申请提供了一种模型推理的资源分配装置,包括:
数据获取模块,用于获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片,获取待分配深度模型和待分配深度模型的各个计算层的时间开销;
板卡分配模块,根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内;
芯片分配模块,用于根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片;
获取待分配深度模型和待分配深度模型的各个计算层的时间开销;
根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内;
根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片;
获取待分配深度模型和待分配深度模型的各个计算层的时间开销;
根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内;
根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
上述模型推理的资源分配方法、装置、计算机设备和存储介质,所述方法包括:获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片;获取待分配深度模型和待分配深度模型的各个计算层的时间开销;根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内;根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。根据模型参数和加速板卡参数等自动拆解模型,按照拆解后的模型部署模型,可以加快模型的推理速度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中模型推理的资源分配方法的应用环境图;
图2为一个实施例中模型推理的资源分配方法的流程示意图;
图3为一个实施例中加速板卡和加速芯片的硬件部署示意图;
图4为一个具体的实施例中分配模型的方法的流程示意图;
图5为一个实施例中模型推理的资源分配装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为一个实施例中模型推理的资源分配方法的应用环境图。参照图1,该模型推理的资源分配方法应用于模型推理的资源分配系统。该模型推理的资源分配系统包括终端110和服务器120。终端110和服务器120通过网络连接。终端110或服务器120获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片;获取待分配深度模型和待分配深度模型的各个计算层的时间开销;根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内;根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种模型推理的资源分配方法。本实施例主要以该方法应用于上述图1中的终端110(或服务器120)来举例说明。参照图2,该模型推理的资源分配方法具体包括如下步骤:
步骤S201,获取加速板卡的数量。
在本具体实施例中,各个加速板卡上搭载有多个加速芯片。
具体地,加速板卡是一种加载有加速芯片的板卡。加速芯片是一种用于处理AI加速处理数据的芯片。常见的加速板卡包括Mustang-M2BM-MX2、Mustang-MPCIE-MX2、Mustang-V100-MX4、Mustang-M2BM-MX8等,常见的加速芯片包括但不限于intel的MovidiusMyriad X系列和含光800等。
在一个实施例中,多个加速板卡可以全部相同,也可部分相同,或都不相同。不同的加速板卡具有不同的算力,各个加速板卡上搭载的加速心态可能相同,也可能同。
步骤S202,获取待分配深度模型和待分配深度模型的各个计算层的时间开销。
具体地,待分配深度模型为常见的深度模型或自定义的深度模型。常见的深度模型包括但不限于TensorFlow、Pytorch和Caffe等。计算层是指待分配深度模型的可分解层,可分解层包括但不限于常见的卷积层CONV、批处理层BN、激活层Relu等。时间开销是指各个计算层的运算时间,时间开销可以通过常规的深度模型中相同或相似的计算层的时间开销进行预估得到,也可以是对待分配深度模型的各个计算层进行测量得到的。
步骤S203,根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略。
在本具体实施例中,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内。
步骤S204,根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略。
在本具体实施例中,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
具体地,模型拆分策略是用于对模型进行拆分的策略,拆分策略中包含时间开销参数,第一预设开销区间和第二时间为预先设置的时间开销区间,该时间开销区间可以根据待分配深度模型的各个计算层的时间开销确定,也可以是人为定义的区间。根据待分配深度模型的各个计算层的时间开销确定区间,是因为不同的计算层的时间开销不同,当其中一个或多个计算层的时间开销远远大于其他计算层的时间开销时,需要根据时间开销较大的计算层来确定时间开销区间。
计算整个模型的时间开销,按照加速板卡的数量对时间开销进行均分,以使各个加速板卡对应的时间开销在预设时间开销范围内,且使得各个加速板卡对应的时间开销之间的差异值最小,得到多个目标子模型,各个目标子模型对应一个加速板卡。
子模型拆分策略是用于对目标子模型进行拆分的策略。子模型拆分策略与模型拆分策略基于相同平均原理,使得每个加速板卡的芯片上分配的目标子单元对应的时间开销接近。
计算整个目标子模型的时间开销,按照加速板卡上的加速芯片数量对时间开销进行均分,以使各个加速芯片对应的时间开销在预设时间开销范围内,且使得各个加速板卡上的芯片对应的时间开销之间的差异值最小,得到多个目标子单元,各个目标子单元对应一个芯片。
在一个实施例中,采用时间开销对待分配模型进行分配后,还可以采用其他的参数,如板卡或芯片的计算资源、内存资源、数据传输开销等等其中的一个或多个参数对模型或子模型的调整。根据模型参数和加速板卡和加速芯片等参数等自动拆解模型,按照拆解后的模型部署模型,加快模型的推理速度。分配决策方法简单,决策时间短,并综合考虑了硬件资源及I/O性能的影响和时间性能切分的方法配合流水化大大提升了吞吐率。
在一个实施例中,按照各个芯片对应的目标子单元部署待分配深度模型。部署好的待分配模型在实际运行过程中执行多个任务时,每个任务被分解成多个子任务,每个子任务对应一个目标子单元。当前目标子单元所在的加速芯片在执行当前子任务时,上一个目标子单元所在的加速芯片执行当前子任务的下一个子任务。若当前子任务为当前任务的最后一个子任务时,上一个目标子单元所在的加速芯片执行下一个任务的第一个子任务。
上述模型推理的资源分配方法,包括:获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片;获取待分配深度模型和待分配深度模型的各个计算层的时间开销;根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内;根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。按照时间开销对自动拆解模型,按照拆解后的模型部署模型,采用部署的模型进行模型推理,可以加快模型的推理速度。
在一个实施例中,上述模型推理的资源分配方法,还包括:获取每个加速板卡的资源和对应的目标子模型的需求计算资源;根据每个加速板卡的资源和对应的目标子模型的需求资源,确定各个目标子模型进行拆分和/或合并的模型调整策略,以使按照拆分和/或合并后得到的每个加速板卡的目标子模型的资源开销小于或等于对应的加速板卡的资源上限。
具体地,加速板卡的资源包括用于衡量加速板卡的计算资源和内存资源等。加速板卡的资源是根据各个硬件器件等确定的,不同的加速板卡具有的资源可以不同。目标子模型的需求计算资源是指运行模型子模型所需的计算资源,运行模型所需的计算资源与模型本身的网络结构和输入数据有关。判断各个加速板卡对应的资源是否满足目标子模型的需求计算资源,满足时,则不对模型进行调整,不满足时,按照加速板卡对应的资源上限对目标子模型进行拆分,拆分时,根据模型的具体结构进行拆分,按照模型的执行顺序进行向后或向前拆分,向后拆分是将执行顺序在后的拆分给下一个加速板卡,向前拆分是将执行顺序在前的拆分给上一个加速板卡。对于并行结构和串行结构的拆分也可以不同,如并行结构可以按照分支进行拆分,也可以按照先后执行顺序进行拆分,串行结构一般按照先后执行顺序进行拆分。
在一个实施例中,上述模型推理的资源分配方法,还包括:获取每个加速板卡的传输开销和对应的目标子模型的传输开销;根据每个加速板卡的传输开销和对应的目标子模型的传输开销,确定各个目标子模型进行拆分和/或合并的模型调整策略,以使执行拆分和/或合并后得到的每个加速板卡的目标子模型时所需的传输开销小于或等于对应的加速板卡的预设传输开销上限。
具体地,传输开销是指进行数据传输时所需的开销。预设传输开销上限由加速板卡本身的硬件资源确定。不同板卡之间需要进行数据传输,可以是直接传输,也可以是间接传输。间接传输是指当前加速板卡将数据传递给加速板卡外的数据处理器,数据处理器再将数据传递给其他的加速板卡。在执行深度学习模型的推理任务过程中,模型中的计算层输出的数据的维度与模型中的数据量有关,不同的计算层输出的数据量不同,进行加速板卡需要进行数据传输时,尽量选择数据量小的计算层作作为第一个或最后一个网络层,从而减少数据传输带来的时间开销。判断每个加速板卡的目标子模型的传输开销是否小于或等于对应的加速板卡的预设传输开销上限,若小于则保持模型不变,反正,则对模型进行拆分,拆分原理与资源的拆分原理一致。
在一个实施例中,模型调整策略包括:判断当前板卡对应的模型的资源或传输开销是否符合当前板卡的资源或传输开销;当当前板卡对应的模型的资源或传输开销不符合当前板卡的资源或传输开销时,将当前板卡对应的模型进行拆分,得到第一子模型和第二子模型,以使第一子模型符合当前板卡的资源或传输开销;合并第二子模型和当前板卡的相邻的下一板卡的模型,得到合并模型;将下一板卡作为当前板卡,判断当前板卡对应的合并模型对应的资源或传输开销是否符合当前板卡的资源或传输开销。
在一个实施例中将当前板卡对应的模型进行拆分,得到第一子模型和第二子模型,包括:对当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为第二子模型,剩余的计算层作为第一子模型。
具体地,按照连接顺序从位于末端的计算层进行拆分,如第一个加速搬开对应的模型对应的计算层为1-100层,第二个加速板卡对应的计算层为101-188层,则从第100层开始拆分,可以是按照计算层逐一进行拆分,也可以是根据获取到的各个计算层的需求资源和加速板卡的资源上限确定可以容纳的网络层的数量。如计算得加速板卡的资源可以容纳的计算层1-90层,则将91-100层拆分出来,并将91-100层并入第二个加速板卡,则第二个加速板卡对应的计算层为91-188层。同理对第二个加速板卡对应的91-188层的资源进行判断,满足则不进行拆分,不满足则对第二个加速板卡对应的计算层进行拆分,拆分方法与第一个加速板卡的拆分方法相同,将拆分后得到的计算层并入第三个加速板卡,以此类推,直至最后一个加速板卡。按照资源和按照传输开销的调整方式一致,在此不再赘述。
在一个实施例中,获取每个加速板卡的资源和对应的目标子模型的需求资源;根据每个加速板卡上的芯片的资源和对应的目标子单元的需求资源,确定对各个目标子单元进行拆分和/或合并的单元调整策略,以使拆分和/或合并后得到的每个加速板卡的芯片的目标子单元的资源小于或等于对应的加速板卡的芯片的资源上限。
在一个实施例中,获取每个加速板卡的芯片的传输开销和对应的目标子单元的传输开销;根据每个加速板卡的芯片的传输开销和对应的目标子单元的传输开销,确定各个目标子单元进行拆分和/或合并的单元调整策略,以使每个加速板卡的芯片的传输开销小于或等于对应的目标子单元的传输开销。
在一个实施例中,单元调整策略,包括:判断当前板卡的芯片对应的单元对应的资源或传输开销是否符合当前板卡的芯片的资源或传输开销;当当前板卡的芯片对应的模型的资源或传输开销不符合当前板卡的芯片的资源或传输开销时,将当前板卡的芯片对应的模型进行拆分,得到第一子单元和第二子单元,以使第一子单元符合当前板卡的芯片的资源或传输开销;
合并第二子单元和当前板卡的芯片的相邻的下一板卡的芯片的单元,得到合并单元;将当前板卡的下一芯片作为当前板卡的当前芯片,判断当前板卡的芯片对应的合并模型对应的资源或传输开销是否符合当前板卡的芯片的资源或传输开销。
在一个实施例中,将当前板卡对应的单元进行拆分,得到第一子单元和第二子单元,包括:对当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为第二子单元,剩余的计算层作为第一子单元。
具体地,加速板卡上的芯片的单元调整策略与加速板卡的模型调整策略原理一致,在此不再赘述单元调整策略的具体实现过程。
在一个具体的实施例中,参照图3和图4,图3为加速板卡和加速芯片的硬件部署示意图,图3中包括host CPU,和d个加速板卡,每个加速板卡上搭载c个加速芯片。图4为一个具体的实施例中分配模型的方法的流程示意图。分配模型的方法的具体步骤包括:
步骤S301,导入AI模型。分析AI模型计算层数和模型可拆分。
步骤S302,根据时间开销拆分AI模型。根据AI模型运行时间占比(时间开销),将模型切分为d份子模型(d为加速板卡数量),切分完毕后按顺序分配至各加速板卡,加速板卡内按模型大小先平均分配至各加速芯片,得到d个初始子模型,即使得各个加速板卡对应的初始子模型的运行时间占比的差值在预设差值范围。
步骤S303,判断各个初始子模型的资源是否合理。是进入步骤S305,否进入步骤S304。由于加速板卡的内存、缓存及计算容量等资源是有限的,需要验证每个初始子模型是否可顺利加载至加速板卡。验证时根据每个初始子模型对应的加速板卡的资源确定初始子模型分配是否合理,若每个初始子模型对应的加速板卡的资源大于或等于对应的初始子模型的需求资源,则将每个初始子模型作为对应的中间子模型。
步骤S304,根据资源调整初始子模型。当任意一个初始子模型对应的加速板卡的资源小于对应的初始子模型的需求资源时,将该初始子模型进行微调,如将相邻的一个或多个计算层调整至下一初始子模型,直至每个初始子模型对应的加速板卡的资源大于或等于对应的初始子模型的需求资源,得到中间子模型。
步骤S305,判断各个中间子模型的时间开销是否合理。若是进入步骤S307,否进入步骤S306。由于计算层输出张量(Tensor)维度可能很大,会导致前一加速板卡的输出结果通过PCIe传输至下一加速板卡作为输入的过程中I/O开销过大。当每个中间子模型的I/O开销小于或等于加速板卡的I/O开销时,得到目标子模型。
步骤S306,根据开销调整中间子模型。微调中间子模型的计算层,如将相邻的一个或多个计算层调整至下一初始子模型,直至各个中间子模型的I/O开销小于或等于加速板卡的I/O开销时,得到目标子模型。
步骤S307,根据各个目标子模型的时间开销拆分目标子模型。根据各个目标子模型的运行时间占比,对各个目标子模型进行拆分,得到c个初始子单元,使得各个加速芯片对应的初始子单元的运行时间占比的差值在预设差值范围(c为每张加速板卡上的加速芯片数量)。
步骤S308,判断各个初始子单元的资源是否合理。是进入步骤S310,否进入步骤S309。由于加速芯片内存、缓存和计算容量等资源有限,在导入之前需要验证每个初始子单元能否顺利加载至对应的加速芯片。验证时根据每个初始子单元对应的加速芯片的资源确定初始子对应分配是否合理,若每个初始子单元对应的加速芯片的资源大于或等于对应的初始子单元的需求资源,则将每个初始子单元作为对应的中间子单元。
步骤S309,根据资源调整初始子单元。当任意一个初始子单元对应的加速板卡的资源小于对应的初始子单元的需求资源时,将该初始子单元进行微调,如将相邻的一个或多个计算层调整至下一初始子单元,直至每个初始子单元对应的加速芯片的资源大于或等于对应的初始子单元的需求资源,得到中间子单元。
步骤S310,判断各个中间子单元的时间开销是否合理。否进入步骤S311,是,即每个中间子模型的I/O开销小于或等于加速芯片的I/O开销时,将各个中间子单元作为目标子单元。
步骤S311,根据开销调整中间子单元。板卡内加速芯片间通过内部数据接口传输数据,如果数据Tensor维度过大同样存在加速芯片的I/O开销,如果加速芯片的I/O开销过大,也要调整子单元边界,尽量选择较小维度,直至每个中间子模型的I/O开销小于或等于加速芯片的I/O开销时,得到目标子单元。
上述分配模型的方法,得到的d*c个加速芯片运行时时间开销基本相近,整体系统的I/O开销也比较合理。然后对各子模型推理结果进行整合拼接,得到原模型的推理结果。再进行流水线化处理,由于各芯片推理时间相近,流水线化后系统吞吐性能达到最大化。综合结果并输出。
图2或图4为一个实施例中模型推理的资源分配方法的流程示意图。应该理解的是,虽然图2或图4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2或图4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图5所示,提供了一种模型推理的资源分配装置200,包括:
数据获取模块201,用于获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片,获取待分配深度模型和待分配深度模型的各个计算层的时间开销。
板卡分配模块202,用于根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内。
芯片分配模块203,用于根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
在一个实施例中,上述模型推理的资源分配装置200,还包括:
数据获取模块201还用于获取每个加速板卡的资源和对应的目标子模型的需求计算资源。
模型调整策略确定模块,用于根据每个加速板卡的资源和对应的目标子模型的需求资源,确定各个目标子模型进行拆分和/或合并的模型调整策略,以使按照拆分和/或合并后得到的每个加速板卡的目标子模型的资源开销小于或等于对应的加速板卡的资源上限。
在一个实施例中,数据获取模块201还用于获取每个加速板卡的传输开销和对应的目标子模型的传输开销。
模型调整策略确定模块还用于根据每个加速板卡的传输开销和对应的目标子模型的传输开销,确定各个目标子模型进行拆分和/或合并的模型调整策略,以使执行拆分和/或合并后得到的每个加速板卡的目标子模型时所需的传输开销小于或等于对应的加速板卡的预设传输开销上限。
在一个实施例中,上述模型推理的资源分配装置200,还包括:
数据获取模块201还用于获取每个加速板卡的资源和对应的目标子模型的需求资源。
单元调整策略确定模块,用于根据每个加速板卡上的芯片的资源和对应的目标子单元的需求资源,确定对各个目标子单元进行拆分和/或合并的单元调整策略,以使拆分和/或合并后得到的每个加速板卡的芯片的目标子单元的资源小于或等于对应的加速板卡的芯片的资源上限。
在一个实施例中数据获取模块201还用于获取每个加速板卡的芯片的传输开销和对应的目标子单元的传输开销;
单元调整策略确定模块还用于根据每个加速板卡的芯片的传输开销和对应的目标子单元的传输开销,确定各个目标子单元进行拆分和/或合并的单元调整策略,以使每个加速板卡的芯片的传输开销小于或等于对应的目标子单元的传输开销。
在一个实施例中,模型调整策略确定模块中具体用于判断当前板卡对应的模型的资源或传输开销是否符合当前板卡的资源或传输开销;当当前板卡对应的模型的资源或传输开销不符合当前板卡的资源或传输开销时,将当前板卡对应的模型进行拆分,得到第一子模型和第二子模型,以使第一子模型符合当前板卡的资源或传输开销;合并第二子模型和当前板卡的相邻的下一板卡的模型,得到合并模型;将下一板卡作为当前板卡,判断当前板卡对应的合并模型对应的资源或传输开销是否符合当前板卡的资源或传输开销。
在一个实施例中,模型调整策略确定模块还用于对当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为第二子模型,剩余的计算层作为第一子模型。
在一个实施例中,单元调整策略确定模块具体用于判断当前板卡的芯片对应的单元对应的资源或传输开销是否符合当前板卡的芯片的资源或传输开销;当当前板卡的芯片对应的模型的资源或传输开销不符合当前板卡的芯片的资源或传输开销时,将当前板卡的芯片对应的模型进行拆分,得到第一子单元和第二子单元,以使第一子单元符合当前板卡的芯片的资源或传输开销;合并第二子单元和当前板卡的芯片的相邻的下一板卡的芯片的单元,得到合并单元;将当前板卡的下一芯片作为当前板卡的当前芯片,判断当前板卡的芯片对应的合并模型对应的资源或传输开销是否符合当前板卡的芯片的资源或传输开销。
在一个实施例中,单元调整策略确定模块具体用于对当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为第二子单元,剩余的计算层作为第一子单元。
图6示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图6所示,该计算机设备通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现模型推理的资源分配方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行模型推理的资源分配方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的模型推理的资源分配装置可以实现为一种计算机程序的形式,计算机程序可在如图6所示的计算机设备上运行。计算机设备的存储器中可存储组成该模型推理的资源分配装置的各个程序模块,比如,图5所示的数据获取模块201、板卡分配模块202和芯片分配模块203。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的模型推理的资源分配方法中的步骤。
例如,图6所示的计算机设备可以通过如图5所示的模型推理的资源分配装置中的数据获取模块201执行获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片,获取待分配深度模型和待分配深度模型的各个计算层的时间开销。计算机设备可以通过板卡分配模块202执行根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内。计算机设备可以通过芯片分配模块203执行根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片;获取待分配深度模型和待分配深度模型的各个计算层的时间开销;根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内;根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取每个加速板卡的资源和对应的目标子模型的需求计算资源;根据每个加速板卡的资源和对应的目标子模型的需求资源,确定各个目标子模型进行拆分和/或合并的模型调整策略,以使按照拆分和/或合并后得到的每个加速板卡的目标子模型的资源开销小于或等于对应的加速板卡的资源上限。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取每个加速板卡的传输开销和对应的目标子模型的传输开销;根据每个加速板卡的传输开销和对应的目标子模型的传输开销,确定各个目标子模型进行拆分和/或合并的模型调整策略,以使执行拆分和/或合并后得到的每个加速板卡的目标子模型时所需的传输开销小于或等于对应的加速板卡的预设传输开销上限。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取每个加速板卡的资源和对应的目标子模型的需求资源;根据每个加速板卡上的芯片的资源和对应的目标子单元的需求资源,确定对各个目标子单元进行拆分和/或合并的单元调整策略,以使拆分和/或合并后得到的每个加速板卡的芯片的目标子单元的资源小于或等于对应的加速板卡的芯片的资源上限。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取每个加速板卡的芯片的传输开销和对应的目标子单元的传输开销;根据每个加速板卡的芯片的传输开销和对应的目标子单元的传输开销,确定各个目标子单元进行拆分和/或合并的单元调整策略,以使每个加速板卡的芯片的传输开销小于或等于对应的目标子单元的传输开销。
在一个实施例中,模型调整策略,包括:判断当前板卡对应的模型的资源或传输开销是否符合当前板卡的资源或传输开销;当当前板卡对应的模型的资源或传输开销不符合当前板卡的资源或传输开销时,将当前板卡对应的模型进行拆分,得到第一子模型和第二子模型,以使第一子模型符合当前板卡的资源或传输开销;合并第二子模型和当前板卡的相邻的下一板卡的模型,得到合并模型;将下一板卡作为当前板卡,判断当前板卡对应的合并模型对应的资源或传输开销是否符合当前板卡的资源或传输开销。
在一个实施例中,将当前板卡对应的模型进行拆分,得到第一子模型和第二子模型,包括:对当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为第二子模型,剩余的计算层作为第一子模型。
在一个实施例中,单元调整策略,包括:判断当前板卡的芯片对应的单元对应的资源或传输开销是否符合当前板卡的芯片的资源或传输开销;当当前板卡的芯片对应的模型的资源或传输开销不符合当前板卡的芯片的资源或传输开销时,将当前板卡的芯片对应的模型进行拆分,得到第一子单元和第二子单元,以使第一子单元符合当前板卡的芯片的资源或传输开销;合并第二子单元和当前板卡的芯片的相邻的下一板卡的芯片的单元,得到合并单元;将当前板卡的下一芯片作为当前板卡的当前芯片,判断当前板卡的芯片对应的合并模型对应的资源或传输开销是否符合当前板卡的芯片的资源或传输开销。
在一个实施例中,将当前板卡对应的单元进行拆分,得到第一子单元和第二子单元,包括:对当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为第二子单元,剩余的计算层作为第一子单元。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取加速板卡的数量,各个加速板卡上搭载有多个加速芯片;获取待分配深度模型和待分配深度模型的各个计算层的时间开销;根据各个计算层的时间开销,确定待分配深度模型拆分成多个目标子模型的模型拆分策略,每个加速板卡对应一个目标子模型,每个目标子模型的时间开销位于第一预设开销区间内;根据各个计算层的时间开销,确定各个加速板卡的目标子模型拆分成与对应的各个加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个加速芯片对应一个目标子单元,每个目标子单元的时间开销位于第二预设开销区间内。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取每个加速板卡的资源和对应的目标子模型的需求计算资源;根据每个加速板卡的资源和对应的目标子模型的需求资源,确定各个目标子模型进行拆分和/或合并的模型调整策略,以使按照拆分和/或合并后得到的每个加速板卡的目标子模型的资源开销小于或等于对应的加速板卡的资源上限。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取每个加速板卡的传输开销和对应的目标子模型的传输开销;根据每个加速板卡的传输开销和对应的目标子模型的传输开销,确定各个目标子模型进行拆分和/或合并的模型调整策略,以使执行拆分和/或合并后得到的每个加速板卡的目标子模型时所需的传输开销小于或等于对应的加速板卡的预设传输开销上限。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取每个加速板卡的资源和对应的目标子模型的需求资源;根据每个加速板卡上的芯片的资源和对应的目标子单元的需求资源,确定对各个目标子单元进行拆分和/或合并的单元调整策略,以使拆分和/或合并后得到的每个加速板卡的芯片的目标子单元的资源小于或等于对应的加速板卡的芯片的资源上限。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取每个加速板卡的芯片的传输开销和对应的目标子单元的传输开销;根据每个加速板卡的芯片的传输开销和对应的目标子单元的传输开销,确定各个目标子单元进行拆分和/或合并的单元调整策略,以使每个加速板卡的芯片的传输开销小于或等于对应的目标子单元的传输开销。
在一个实施例中,模型调整策略,包括:判断当前板卡对应的模型的资源或传输开销是否符合当前板卡的资源或传输开销;当当前板卡对应的模型的资源或传输开销不符合当前板卡的资源或传输开销时,将当前板卡对应的模型进行拆分,得到第一子模型和第二子模型,以使第一子模型符合当前板卡的资源或传输开销;合并第二子模型和当前板卡的相邻的下一板卡的模型,得到合并模型;将下一板卡作为当前板卡,判断当前板卡对应的合并模型对应的资源或传输开销是否符合当前板卡的资源或传输开销。
在一个实施例中,将当前板卡对应的模型进行拆分,得到第一子模型和第二子模型,包括:对当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为第二子模型,剩余的计算层作为第一子模型。
在一个实施例中,单元调整策略,包括:判断当前板卡的芯片对应的单元对应的资源或传输开销是否符合当前板卡的芯片的资源或传输开销;当当前板卡的芯片对应的模型的资源或传输开销不符合当前板卡的芯片的资源或传输开销时,将当前板卡的芯片对应的模型进行拆分,得到第一子单元和第二子单元,以使第一子单元符合当前板卡的芯片的资源或传输开销;合并第二子单元和当前板卡的芯片的相邻的下一板卡的芯片的单元,得到合并单元;将当前板卡的下一芯片作为当前板卡的当前芯片,判断当前板卡的芯片对应的合并模型对应的资源或传输开销是否符合当前板卡的芯片的资源或传输开销。
在一个实施例中,将当前板卡对应的单元进行拆分,得到第一子单元和第二子单元,包括:对当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为第二子单元,剩余的计算层作为第一子单元。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (11)

1.一种模型推理的资源分配方法,其特征在于,所述方法包括:
获取加速板卡的数量,各个所述加速板卡上搭载有多个加速芯片;
获取待分配深度模型和所述待分配深度模型的各个计算层的时间开销;
根据各个所述计算层的时间开销,确定所述待分配深度模型拆分成多个目标子模型的模型拆分策略,每个所述加速板卡对应一个所述目标子模型,每个所述目标子模型的时间开销位于第一预设开销区间内;
根据各个所述计算层的时间开销,确定各个所述加速板卡的目标子模型拆分成与对应的各个所述加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个所述加速芯片对应一个所述目标子单元,每个所述目标子单元的时间开销位于第二预设开销区间内;
所述方法还包括:
获取每个所述加速板卡的资源和对应的所述目标子模型的需求计算资源;
根据每个所述加速板卡的资源和对应的所述目标子模型的需求资源,确定各个所述目标子模型进行拆分和/或合并的模型调整策略,以使按照拆分和/或合并后得到的每个所述加速板卡的目标子模型的资源开销小于或等于对应的所述加速板卡的资源上限。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取每个所述加速板卡的传输开销和对应的所述目标子模型的传输开销;
根据每个所述加速板卡的传输开销和对应的所述目标子模型的传输开销,确定各个所述目标子模型进行拆分和/或合并的模型调整策略,以使执行拆分和/或合并后得到的每个所述加速板卡的目标子模型时所需的传输开销小于或等于对应的所述加速板卡的预设传输开销上限。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取每个所述加速板卡的资源和对应的所述目标子模型的需求资源;
根据每个所述加速板卡上的芯片的资源和对应的所述目标子单元的需求资源,确定对各个所述目标子单元进行拆分和/或合并的单元调整策略,以使拆分和/或合并后得到的每个所述加速板卡的芯片的目标子单元的资源小于或等于对应的所述加速板卡的芯片的资源上限。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取每个所述加速板卡的芯片的传输开销和对应的所述目标子单元的传输开销;
根据每个所述加速板卡的芯片的传输开销和对应的所述目标子单元的传输开销,确定各个所述目标子单元进行拆分和/或合并的单元调整策略,以使每个所述加速板卡的芯片的传输开销小于或等于对应的所述目标子单元的传输开销。
5.根据权利要求2所述的方法,其特征在于,所述模型调整策略,包括:
判断当前板卡对应的模型的资源或传输开销是否符合所述当前板卡的资源或传输开销;
当所述当前板卡对应的模型的资源或传输开销不符合所述当前板卡的资源或传输开销时,将所述当前板卡对应的模型进行拆分,得到第一子模型和第二子模型,以使所述第一子模型符合所述当前板卡的资源或传输开销;
合并所述第二子模型和所述当前板卡的相邻的下一板卡的模型,得到合并模型;
将所述下一板卡作为所述当前板卡,判断当前板卡对应的所述合并模型对应的资源或传输开销是否符合所述当前板卡的资源或传输开销。
6.根据权利要求5所述的方法,其特征在于,所述将所述当前板卡对应的模型进行拆分,得到第一子模型和第二子模型,包括:
对所述当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为所述第二子模型,剩余的计算层作为所述第一子模型。
7.根据权利要求5所述的方法,其特征在于,所述单元调整策略,包括:
判断当前板卡的芯片对应的单元对应的资源或传输开销是否符合所述当前板卡的芯片的资源或传输开销;
当所述当前板卡的芯片对应的模型的资源或传输开销不符合所述当前板卡的芯片的资源或传输开销时,将所述当前板卡的芯片对应的模型进行拆分,得到第一子单元和第二子单元,以使所述第一子单元符合所述当前板卡的芯片的资源或传输开销;
合并所述第二子单元和所述当前板卡的芯片的相邻的下一板卡的芯片的单元,得到合并单元;
将所述当前板卡的下一芯片作为所述当前板卡的当前芯片,判断当前板卡的芯片对应的所述合并模型对应的资源或传输开销是否符合所述当前板卡的芯片的资源或传输开销。
8.根据权利要求7所述的方法,其特征在于,所述将所述当前板卡对应的单元进行拆分,得到第一子单元和第二子单元,包括:
对所述当前板卡对应的模型中的计算层,按照连接顺序从位于末端的计算层进行拆分,将末端拆分出来的计算层作为所述第二子单元,剩余的计算层作为所述第一子单元。
9.一种模型推理的资源分配装置,其特征在于,所述装置包括:
数据获取模块,用于获取加速板卡的数量,各个所述加速板卡上搭载有多个加速芯片,获取待分配深度模型和所述待分配深度模型的各个计算层的时间开销;
所述数据获取模块,还用于获取每个所述加速板卡的资源和对应的目标子模型的需求计算资源;
板卡分配模块,根据各个所述计算层的时间开销,确定所述待分配深度模型拆分成多个目标子模型的模型拆分策略,每个所述加速板卡对应一个所述目标子模型,每个所述目标子模型的时间开销位于第一预设开销区间内;
芯片分配模块,用于根据各个所述计算层的时间开销,确定各个所述加速板卡的目标子模型拆分成与对应的各个所述加速板卡上的芯片相同数量的目标子单元的子模型拆分策略,每个所述加速芯片对应一个所述目标子单元,每个所述目标子单元的时间开销位于第二预设开销区间内;
模型调整策略确定模块,用于根据每个所述加速板卡的资源和对应的所述目标子模型的需求资源,确定各个所述目标子模型进行拆分和/或合并的模型调整策略,以使按照拆分和/或合并后得到的每个所述加速板卡的目标子模型的资源开销小于或等于对应的所述加速板卡的资源上限。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
CN202010062893.8A 2020-01-19 2020-01-19 模型推理的资源分配方法、装置、计算机设备和存储介质 Active CN111274034B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010062893.8A CN111274034B (zh) 2020-01-19 2020-01-19 模型推理的资源分配方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010062893.8A CN111274034B (zh) 2020-01-19 2020-01-19 模型推理的资源分配方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN111274034A CN111274034A (zh) 2020-06-12
CN111274034B true CN111274034B (zh) 2023-06-30

Family

ID=71003376

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010062893.8A Active CN111274034B (zh) 2020-01-19 2020-01-19 模型推理的资源分配方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN111274034B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112308205A (zh) * 2020-06-28 2021-02-02 北京沃东天骏信息技术有限公司 基于预训练模型的模型改进方法及装置
CN111860810A (zh) * 2020-06-30 2020-10-30 浪潮(北京)电子信息产业有限公司 一种基于fpga的神经网络运算方法、装置及设备
CN112272362B (zh) * 2020-09-11 2022-06-10 安徽中科新辰技术有限公司 一种消息通知发送服务的实现方法
CN111897660B (zh) 2020-09-29 2021-01-15 深圳云天励飞技术股份有限公司 模型部署方法、模型部署装置及终端设备
CN112650590B (zh) * 2020-12-29 2024-03-15 北京奇艺世纪科技有限公司 任务的处理方法、装置及系统、分配方法和装置
CN112783807B (zh) * 2020-12-31 2023-12-29 深圳大普微电子科技有限公司 一种模型计算方法及系统
CN113987840B (zh) * 2021-12-24 2022-03-15 中国汽车技术研究中心有限公司 基于Modelica的模型拆分方法、设备和存储介质
CN116776976A (zh) * 2022-03-08 2023-09-19 华为技术有限公司 拆分推理方法及装置
CN116166332B (zh) * 2023-04-25 2023-09-29 深圳艾为电气技术有限公司 压缩机驱动器的驱动并行装载方法、装置、设备及介质
CN117494816B (zh) * 2023-12-31 2024-03-26 摩尔线程智能科技(北京)有限责任公司 基于计算单元部署的模型推理方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109767002A (zh) * 2019-01-17 2019-05-17 济南浪潮高新科技投资发展有限公司 一种基于多块fpga协同处理的神经网络加速方法
CN110018817A (zh) * 2018-01-05 2019-07-16 中兴通讯股份有限公司 数据的分布式运行方法及装置、存储介质及处理器
CN110222533A (zh) * 2019-06-17 2019-09-10 英联(厦门)智能数据有限公司 分布式数据安全应用方法、系统及电子设备
CN110674936A (zh) * 2019-09-24 2020-01-10 上海寒武纪信息科技有限公司 一种神经网络处理方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10439870B2 (en) * 2015-11-24 2019-10-08 International Business Machines Corporation Assessment and dynamic provisioning of computing resources for multi-tiered application

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018817A (zh) * 2018-01-05 2019-07-16 中兴通讯股份有限公司 数据的分布式运行方法及装置、存储介质及处理器
CN109767002A (zh) * 2019-01-17 2019-05-17 济南浪潮高新科技投资发展有限公司 一种基于多块fpga协同处理的神经网络加速方法
CN110222533A (zh) * 2019-06-17 2019-09-10 英联(厦门)智能数据有限公司 分布式数据安全应用方法、系统及电子设备
CN110674936A (zh) * 2019-09-24 2020-01-10 上海寒武纪信息科技有限公司 一种神经网络处理方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111274034A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
CN111274034B (zh) 模型推理的资源分配方法、装置、计算机设备和存储介质
US10402404B2 (en) Scheduling method and system based on hybrid variable neighborhood search and gravitational search algorithm
EP3129870B1 (en) Data parallel processing method and apparatus based on multiple graphic procesing units
EP3158529B1 (en) Model parallel processing method and apparatus based on multiple graphic processing units
CN113326126B (zh) 任务处理方法、任务调度方法、装置及计算机设备
CN111104222A (zh) 任务处理方法、装置、计算机设备和存储介质
CN110705705B (zh) 卷积神经网络模型同步训练方法、集群及可读存储介质
CN112711478B (zh) 基于神经网络的任务处理方法、装置、服务器和存储介质
CN110209472B (zh) 任务数据处理方法和板卡
EP3367310A1 (en) Method and apparatus for parallelizing layers of deep neural networks onto parallel computing systems
CN116382880B (zh) 任务执行方法、装置、处理器、电子设备及存储介质
WO2021092634A2 (en) Acceleration of gpus in cloud computing
CN113450770A (zh) 基于显卡资源的语音特征提取方法、装置、设备及介质
CN115586961A (zh) 一种ai平台计算资源任务调度方法、装置及介质
CN117311998B (zh) 一种大模型部署方法及系统
CN114943885A (zh) 一种基于训练任务的同步缓存加速方法及系统
Bonny et al. Time efficient segmented technique for dynamic programming based algorithms with FPGA implementation
Beaumont et al. Comparison of static and runtime resource allocation strategies for matrix multiplication
CN111598768B (zh) 图像优化处理方法、装置、计算机设备及存储介质
CN115775199A (zh) 数据处理方法和装置、电子设备和计算机可读存储介质
CN115756789A (zh) 一种针对深度学习推理服务系统的gpu调度优化方法
CN114818863A (zh) 一种模型训练方法及装置
CN114283046A (zh) 基于icp算法的点云文件配准方法、装置及存储介质
US20240176759A1 (en) Machine learning parallelization method using host cpu with multi-socket structure and apparatus therefor
KR102527829B1 (ko) Cpu와 gpu를 사용하는 행렬 전치기반 2d-fft 연산 장치 및 이를 이용한 데이터 연산 방법

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