CN112162861B - 线程分配方法、装置、计算机设备及存储介质 - Google Patents
线程分配方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112162861B CN112162861B CN202011051615.9A CN202011051615A CN112162861B CN 112162861 B CN112162861 B CN 112162861B CN 202011051615 A CN202011051615 A CN 202011051615A CN 112162861 B CN112162861 B CN 112162861B
- Authority
- CN
- China
- Prior art keywords
- thread
- reinforcement learning
- learning model
- determining
- heterogeneous
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000002787 reinforcement Effects 0.000 claims abstract description 94
- 238000004364 calculation method Methods 0.000 claims abstract description 25
- 230000009471 action Effects 0.000 claims description 60
- 238000004422 calculation algorithm Methods 0.000 claims description 13
- 238000013528 artificial neural network Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 10
- 239000000725 suspension Substances 0.000 claims description 9
- 230000009977 dual effect Effects 0.000 claims description 8
- 238000005070 sampling Methods 0.000 claims description 8
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 6
- 238000013459 approach Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 4
- 230000003313 weakening effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种线程分配方法、装置、计算机设备及存储介质,该方法包括:根据异构系统的线程配置目标确定预设强化学习模型的输入数据;将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据;根据预设强化学习模型的输出数据确定线程分配信息;根据线程分配信息对异构系统进行线程配置。本申请实施例提供的线程分配方法,能够根据异构系统的线程配置目标确定输入数据,通过强化学习模型得到输入数据对应的输出数据,根据输出数据可以确定吞吐量最大时分配给各个异构硬件的CPU线程数量,进而实现通过强化学习模型得到异构计算的最优的线程分配信息,提高异构计算的计算效率,提高资源利用率。
Description
技术领域
本申请实施例涉及计算机线程处理技术,尤其涉及一种线程分配方法、装置、计算机设备及存储介质。
背景技术
随着计算机技术的发展,一个计算任务可以通过异构的多个硬件协同进行,此时异构的多个硬件分别运行相应的计算单元完成计算。异构计算往往涉及不同架构的计算单元共同承担同一个任务的计算工作。由于不同的计算单元的设计不同,因此为不同的计算单元配置相同的CPU线程数量进行任务的提交显然无法得到最大吞吐量,在异构计算时需要对不同硬件中的线程数量进行分配。最大吞吐量在不同场景下有所不同,对图像或视频类任务来说最大吞吐量可以为帧率FPS。例如,中央处理器(Central Processing Unit,CPU)和图形处理器(Graphics Processing Unit,GPU)的异构或者CPU、视频处理单元(Video Processing Unit,VPU)以及现场可编程逻辑门阵列(Field Programmable GateArray,FPGA)的异构等情况,然后和保证上述异构的计算单元得到的帧率最高。
目前为不同计算单元分配线程采用人工配置方式,人工根据经验值配置不同计算单元中的线程数量。但是,这种方式无法使异构计算的计算效果达到最优,使得系统资源无法得到充分利用,资源利用率低,计算效率低。
发明内容
本申请提供一种线程分配方法、装置、计算机设备及存储介质,以实现为异构系统的各个计算单元合理的分配数量,提高异构计算的计算效率,提高资源利用率。
第一方面,本申请实施例提供了一种线程分配方法,包括:
根据异构系统的线程配置目标确定预设强化学习模型的输入数据;
将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据;
根据预设强化学习模型的输出数据确定线程分配信息;
根据线程分配信息对异构系统进行线程配置。
第二方面,本申请实施例还提供了一种线程分配装置,包括:
输入数据确定模块,用于根据异构系统的线程配置目标确定预设强化学习模型的输入数据;
强化学习模型执行模块,用于将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据;
线程分配信息确定模块,用于根据预设强化学习模型的输出数据确定线程分配信息;
线程配置模块,用于根据线程分配信息对异构系统进行线程配置。
第三方面,本申请实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行程序时实现如本申请实施例所示的线程分配方法。
第四方面,本申请实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行如本申请实施例所示的线程分配方法。
本申请实施例提供的线程分配方案,根据异构系统的线程配置目标确定预设强化学习模型的输入数据;将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据;根据预设强化学习模型的输出数据确定线程分配信息;根据线程分配信息对异构系统进行线程配置,相对于目前人工配置异构系统各个异构的计算单元的线程数,本申请实施例提供的线程分配方法,能够根据异构系统的线程配置目标确定输入数据,通过强化学习模型得到输入数据对应的输出数据,根据输出数据可以确定吞吐量最大时分配给各个异构硬件的CPU线程数量,进而实现通过强化学习模型得到异构计算的最优的线程分配信息,提高异构计算的计算效率,提高资源利用率。
附图说明
图1是本申请实施例一中的线程分配方法的流程示意图;
图2是本申请实施例二中的线程分配装置的结构示意图;
图3是本申请实施例三中的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。
强化学习(Reinforcement Learning,RL)是本申请实施例涉及的技术用语,又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。本申请中最大化的汇报可以为异构系统提供的最大帧率。
异构计算(Heterogeneous computing)是本申请实施例涉及的技术用语,表示使用不同类型指令集和体系架构的计算单元组成系统的计算方式。
帧率(Frames Per Second,FPS)是本申请实施例涉及的技术用语,指每秒钟处理图片的张数。
线程(threads)具体指的是CPU线程,对于异构系统中的非CPU计算单元来说,此类单元本身不存在CPU线程的概念,因此分配给此类计算单元的线程实际指的是跟该计算单元进行数据传输的CPU线程,不合理的分配会造成链路中存在数据阻塞的瓶颈,导致吞吐量下降。以GPU为例,分配给GPU的线程数指的是提交任务到GPU队列(queue)的CPU线程数。
双深度Q网络(Double Deep Q Network,DDQN)是本申请实施例涉及的技术用语,双深度Q网络克服了深度Q网络(Deep Q Network,DQN)过度估计的问题。双深度Q网络提供两个Q网络,分别用于动作选择和动作评分估计。
实施例一
图1为本申请实施例一提供的线程分配方法的流程图,本实施例可适用于异构计算线程数量分配的情况,该方法可以由计算线程数量分配方案的计算机设备来执行,具体包括如下步骤:
步骤110、根据异构系统的线程配置目标确定预设强化学习模型的输入数据。
异构系统的线程配置目标可以为对多个异构硬件中的线程数量进行配置,以达到吞吐量最大化的目的。其中吞吐量可以为图像的帧率。示例性的,对CPU和GPU为异构对象进行线程分配以达到帧率最大化的目的。
预设强化学习模型可以为双深度Q网络DDQN模型、A3C(Asynchronous AdvantageActor-critic)或近端策略优化算法(Proximal Policy Optimization,PPO)。上述预设强化学习模型均涉及状态、每次的调整动作以及奖励的配置。为了方便描述本申请实施例以双深度Q网络作为示例进行描述。
示例性的,根据每个异构硬件中的平均线程分配数量,确定初始状态S。根据每个异构硬件中线程的增减数量,确定动作集合,动作集合包括多个线程调整动作α,每个线程调整动作表示某个异构硬件中线程数量增加一次或减少一次。将强化学习算法中的奖励配置为将异构硬件当前提供的平均帧率与异构硬件上一次提供的平均帧率的帧率差值R。
异构硬件中运行的用于进行目标计算任务的线程数量总数是固定的。可以根据异构硬件数量和线程数量总数得到平均线程分配数量。将平均线程分配数量作为每个异构硬件中的初始线程数量。例如,使用CPU1、GPU、CPU2三个异构硬件执行目标计算任务,线程数量总数为N,则平均线程分配数量为N/3。初始状态S为(N/3,N/3,N/3),分别表示每个异构硬件中初始线程数量。
在强化学习过程中,需要不断对状态进行调整,以得到更优的输出。输出可以为帧率。调整时,根据线程调整动作进行调整。在上述实例中,可以对分别在CPU1、GPU以及CPU2中的线程数量进行调整。每次可以调整一个线程或多个线程。以调整一个线程为例,CPU1增加一个线程,则GPU减少一个线程,此作为一个线程调整动作。除了可以是CPU1增加线程,还可以使CPU1减少线程、GPU增加线程、GPU减少线程、CPU2增加线程、CPU2减少线程。上述多个线程调整动作组成动作集合。
强化学习过程存在奖励参数,由于本申请目的在于得到最优的帧率,因此将异构硬件当前提供的平均帧率与异构硬件上一次提供的平均帧率的帧率差值R作为强化学习算法中的奖励。
进一步的对于双深度Q网络DDQN模型,DDQN模型包括当前DQN网络和目标DQN网络,输入数据还包括:配置迭代轮数T、衰弱因子γ、探索率∈、批量梯度下降的样本数m、以及目标DQN网络的更新频率C。
双深度Q网络包括两个Q网络,分别称为当前DQN网络和目标DQN网络。双深度Q网络中,根据当前DQN网络选出最大Q值(输出值)对应的动作,然后使用该动作在目标网络中计算目标Q值,避免过度估计。
配置迭代轮数T、衰弱因子γ、探索率∈、批量梯度下降的样本数m、以及目标DQN网络的更新频率C可以预先配置。
步骤120、将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据。
当步骤110得到输入数据之后,将输入数据输入值预设强化学习模型。下面以双深度Q网络为例,对预设强化学习模型的执行过程进行说明。
随机初始化当前DQN网络的所有参数w,根据当前DQN网络的所有参数w初始化目标DQN网络的所有参数w′,清空经验回放集合D;
根据迭代轮数T进行迭代,在每个迭代回合中执行下述步骤:
A)根据初始状态S确定第一特征向量φ(S)。
B)在当前DQN网络中将第一特征向量φ(S)作为输入,得到当前DQN网络输出的全部线程调整动作α对应的多个第一Q值输出;使用探索率∈-贪婪法策略根据多个第一Q值输出确定第一线程动作A。
进一步的,根据当前迭代次数确定探索率∈,探索率∈与迭代次数的变化趋势相反。
探索率∈随着迭代逐渐变小,能够保证更好的收敛。
C)在初始状态S执行第一线程动作A,得到更新状态S′对应的特征向量φ(S′)、帧率差值R以及是否中止状态is_end。
D)将初始状态S、第一线程动作A、帧率差值R、更新状态S′对应的特征向量φ(S′)以及是否中止状态is_end组成的五元组保存至经验回放集合D。
E)将更新状态S′赋值给初始状态S。
F)从经验回放集合D中根据采样数量m进行采样;根据当前采集的五元组中的是否中止状态is_end的内容,确定第二Q值输出yj的计算方式,根据计算方式得到第二Q值输出yj。
示例性的,第二Q值输出yj的计算公式可参照下述公式:
如果当前采集的五元组中的是否中止状态is_end的内容为真(is_endj istrue),则将当前采集的五元组中的帧率差值Rj作为第二Q值输出yj;
如果当前采集的五元组中的是否中止状态is_end的内容为否(is_endj isfalse),则将当前采集的五元组中的特征向量φS′j)、调整动作α和当前DQN网络的所有参数w输入至当前DQN网络,获取当前DQN网络输出的Q值数值最大时对应的第二动作α′。α′的计算公式为argmaxa′QφS′j),a,w
将当前采集的五元组中的特征向量φS′j)、第二动作α′以及目标DQN网络的所有参数w′输入至目标DQN网络,得到第三Q值输出;根据衰弱因子γ、第三Q值输出以及当前采集的五元组中的帧率差值确定第二Q值输出yj。的计算公式可以为:Rj+γQ′(φ(S′j),argmaxa′Q(φ(S′j),a,w),w′)
G)使用均方差损失函数,通过神经网络的梯度反向传播更新当前DQN网路中的所有参数w。
均方差损失函数的计算公式可以为:
其中m为采样数量,A为当前采样j对应的动作集合。
H)根据配置迭代轮数T和目标DQN网络的更新频率C确定是否更新;若更新,则将当前DQN网路中的所有参数w赋值给目标DQN网络的所有参数w′。
I)如果更新状态S′满足终止条件,则迭代结束,否则返回执行步骤B)。
更新状态S′的终止条件可以为更新状态S′与前一次的更新状态S′相同。
步骤130、根据预设强化学习模型的输出数据确定线程分配信息。
步骤120中预设强化学习模型经过强化学习后,当线程分配达到合理的分配情况时,吞吐量趋近于最大,此时各异构硬件的线程分配数量稳定,即更新状态S′不发生变化。线程分配信息为预设强化学习模型中更新状态S′时,各个异构硬件中线程的分配数量。
步骤140、根据线程分配信息对异构系统进行线程配置。
根据线程分配信息配置各异构硬件中的线程数量,可实现最大吞吐量。
本申请实施例不仅适用于双深度Q网络,还可适用于A3C等其他预设强化学习模型。下面以A3C为例对上述步骤进行说明:
下面以A3C包括一个公共部分的神经网络模型和多个雇员(worker)线程,简称线程。公共部分的神经网络模型包括Actor网络和Critic网络两部分的功能。每个雇员线程里有和公共的神经网络一样的网络结构,每个线程会独立的和环境进行交互得到经验数据,这些线程之间互不干扰,独立运行。
每个雇员线程和环境交互到一定量的数据后,计算在雇员线程里的神经网络损失函数的梯度,但是这些梯度却并不更新雇员线程里的神经网络,而是去更新公共的神经网络。也就是n个线程会独立的使用累积的梯度分别更新公共部分的神经网络模型参数。每隔一段时间,线程会将自身的神经网络的参数更新为公共神经网络的参数,进而指导后面的环境交互。
公共部分的网络模型为需要进行强化学习的模型,而线程里的网络模型主要是于和环境交互使用,这些线程里的模型可以帮助线程更好的和环境交互,得到高质量的数据帮助模型更快收敛。A3C的算法执行可参照相关技术中的方案。本申请实施例与其他方案的不同在于A3C的输入数据以及截止条件判定的不同。
在A3C的情况下,状态S,动作集合A和奖励R的定义与DDQN相同。示例性的,定义S为当前的线程配置。在上述示例中,三个阶段分别的线程数所组成的一个3维特征向量,相加为给定的总线程数;初始状态S为平均分配的线程数,其中3个维度的数值相同,相加为给定的总线程数。动作结合A为调节线程的动作。奖励R又称reward,在上述实例中设为新的平均帧率与上次平均帧率的差,如果线程调节后帧率上升则为+1,反之为-1)。整个算法流程迭代直至状态S不变为止。
端策略优化算法PPO等其他增强学习模型的输入数据可参照上述实施例中的输入数据进行配置,进而得到能够达到最大吞吐量的线程分配信息,并根据线程分配信息对异构硬件中的线程数量进行控制。
本申请实施例提供的线程分配方法,根据异构系统的线程配置目标确定预设强化学习模型的输入数据;将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据;根据预设强化学习模型的输出数据确定线程分配信息;根据线程分配信息对异构系统进行线程配置,相对于目前人工配置异构系统各个异构的计算单元的线程数,本申请实施例提供的线程分配方法,能够根据异构系统的线程配置目标确定输入数据,通过强化学习模型得到输入数据对应的输出数据,根据输出数据可以确定吞吐量最大时分配给各个异构硬件的CPU线程数量,进而实现通过强化学习模型得到异构计算的最优的线程分配信息,提高异构计算的计算效率,提高资源利用率。
实施例二
图2为申请实施例提供的线程分配装置的结构示意图,本实施例可适用于异构计算线程数量分配的情况,该装置可以位于计算线程数量分配方案的计算机设备,包括:输入数据确定模块21、强化学习模型执行模块22、线程分配信息确定模块23以及线程配置模块24。
输入数据确定模块21,用于根据异构系统的线程配置目标确定预设强化学习模型的输入数据;
强化学习模型执行模块22,用于将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据;
线程分配信息确定模块23,用于根据预设强化学习模型的输出数据确定线程分配信息;
线程配置模块24,用于根据线程分配信息对异构系统进行线程配置。
在上述实施例的基础上,输入数据确定模块21用于:
根据每个异构硬件中的平均线程分配数量,确定初始状态S;
根据每个异构硬件中线程的增减数量,确定动作集合,动作集合包括多个线程调整动作α,每个线程调整动作表示某个异构硬件中线程数量增加一次或减少一次;
将强化学习算法中的奖励配置为将异构硬件当前提供的平均帧率与异构硬件上一次提供的平均帧率的帧率差值R。
在上述实施例的基础上,预设强化学习模型为双深度Q网络DDQN模型,DDQN模型包括当前DQN网络和目标DQN网络,输入数据还包括:配置迭代轮数T、衰弱因子γ、探索率∈、批量梯度下降的样本数m、以及目标DQN网络的更新频率C。
在上述实施例的基础上,强化学习模型执行模块22用于:
随机初始化当前DQN网络的所有参数w,根据当前DQN网络的所有参数w初始化目标DQN网络的所有参数w′,清空经验回放集合D;
根据迭代轮数T进行迭代,在每个迭代回合中执行下述步骤:
A)根据所述初始状态S确定第一特征向量φ(S);
B)在当前DQN网络中将所述第一特征向量φ(S)作为输入,得到所述当前DQN网络输出的全部线程调整动作α对应的多个第一Q值输出;使用探索率∈-贪婪法策略根据所述多个第一Q值输出确定第一线程动作A;
C)在所述初始状态S执行所述第一线程动作A,得到更新状态S′对应的特征向量φ(S′)、帧率差值R以及是否中止状态is_end;
D)将所述初始状态S、所述第一线程动作A、所述帧率差值R、所述更新状态S′对应的特征向量φ(S′)以及所述是否中止状态is_end组成的五元组保存至所述经验回放集合D;
E)将所述更新状态S′赋值给所述初始状态S;
F)从所述经验回放集合D中根据采样数量m进行采样;根据当前采集的五元组中的是否中止状态is_end的内容,确定第二Q值输出yj的计算方式,根据所述计算方式得到所述第二Q值输出yj;
G)使用均方差损失函数,通过神经网络的梯度反向传播更新所述当前DQN网路中的所有参数w;
H)根据配置迭代轮数T和目标DQN网络的更新频率C确定是否更新;若更新,则将所述当前DQN网路中的所有参数w赋值给所述目标DQN网络的所有参数w′;
I)如果所述更新状态S′满足终止条件,则迭代结束,否则返回执行步骤B)。
在上述实施例的基础上,强化学习模型执行模块22用于:
如果当前采集的五元组中的是否中止状态is_end的内容为真,则将当前采集的五元组中的帧率差值Rj作为第二Q值输出yj;
如果当前采集的五元组中的是否中止状态is_end的内容为否,则将当前采集的五元组中的特征向量φ(S′j)、调整动作α和所述当前DQN网络的所有参数w输入至当前DQN网络,获取所述当前DQN网络输出的Q值数值最大时对应的第二动作α′;
将当前采集的五元组中的特征向量φ(S′j)、所述第二动作α′以及所述目标DQN网络的所有参数w′输入至目标DQN网络,得到第三Q值输出;根据所述衰弱因子γ、所述第三Q值输出以及当前采集的五元组中的帧率差值确定第二Q值输出yj。
在上述实施例的基础上,强化学习模型执行模块22用于:
根据当前迭代次数确定探索率∈,探索率∈与迭代次数的变化趋势相反。
在上述实施例的基础上,预设强化学习模型为A3C或近端策略优化算法PPO。
本申请实施例提供的线程分配装置,输入数据确定模块21根据异构系统的线程配置目标确定预设强化学习模型的输入数据;强化学习模型执行模块22将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据;线程分配信息确定模块23根据预设强化学习模型的输出数据确定线程分配信息;线程配置模块24根据线程分配信息对异构系统进行线程配置,相对于目前人工配置异构系统各个异构的计算单元的线程数,本申请实施例提供的线程分配装置,能够根据异构系统的线程配置目标确定输入数据,通过强化学习模型得到输入数据对应的输出数据,根据输出数据可以确定吞吐量最大时分配给各个异构硬件的CPU线程数量,进而实现通过强化学习模型得到异构计算的最优的线程分配信息,提高异构计算的计算效率,提高资源利用率。
本申请实施例所提供的线程分配装置可执行本申请任意实施例所提供的线程分配方法,具备执行方法相应的功能模块和有益效果。
实施例三
图3为本申请实施例三提供的一种计算机设备的结构示意图,如图3所示,该计算机设备包括处理器30、存储器31、输入装置32和输出装置33;计算机设备中处理器30的数量可以是一个或多个,图3中以一个处理器30为例;计算机设备中的处理器30、存储器31、输入装置32和输出装置33可以通过总线或其他方式连接,图3中以通过总线连接为例。
存储器31作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请实施例中的线程分配方法对应的程序指令/模块(例如,线程分配装置中的输入数据确定模块21、强化学习模型执行模块22、线程分配信息确定模块23以及线程配置模块24)。处理器30通过运行存储在存储器31中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的线程分配方法。
存储器31可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器31可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器31可进一步包括相对于处理器30远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置32可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置33可包括显示屏等显示设备。
实施例四
本申请实施例四还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种线程分配法,该方法包括:
根据异构系统的线程配置目标确定预设强化学习模型的输入数据;
将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据;
根据预设强化学习模型的输出数据确定线程分配信息;
根据线程分配信息对异构系统进行线程配置。
在上述实施例的基础上,预设强化学习模型为DDQN,相应的,根据异构系统的线程配置目标确定预设强化学习模型的输入数据,包括:
根据每个异构硬件中的平均线程分配数量,确定初始状态S;
根据每个异构硬件中线程的增减数量,确定动作集合,动作集合包括多个线程调整动作α,每个线程调整动作表示某个异构硬件中线程数量增加一次或减少一次;
将加强学习强化学习算法中的奖励配置为将异构硬件当前提供的平均帧率与异构硬件上一次提供的平均帧率的帧率差值R。
在上述实施例的基础上,预设强化学习模型为双深度Q网络DDQN模型,DDQN模型包括当前DQN网络和目标DQN网络,输入数据还包括:配置迭代轮数T、衰弱因子γ、探索率∈、批量梯度下降的样本数m、以及目标DQN网络的更新频率C。
在上述实施例的基础上,将输入数据输入预设强化学习模型,执行预设强化学习模型以得到输出数据,包括:
随机初始化当前DQN网络的所有参数w,根据当前DQN网络的所有参数w初始化目标DQN网络的所有参数w′,清空经验回放集合D;
根据迭代轮数T进行迭代,在每个迭代回合中执行下述步骤:
A)根据所述初始状态S确定第一特征向量φ(S);
B)在当前DQN网络中将所述第一特征向量φ(S)作为输入,得到所述当前DQN网络输出的全部线程调整动作α对应的多个第一Q值输出;使用探索率∈-贪婪法策略根据所述多个第一Q值输出确定第一线程动作A;
C)在所述初始状态S执行所述第一线程动作A,得到更新状态S′对应的特征向量φ(S′)、帧率差值R以及是否中止状态is_end;
D)将所述初始状态S、所述第一线程动作A、所述帧率差值R、所述更新状态S′对应的特征向量φ(S′)以及所述是否中止状态is_end组成的五元组保存至所述经验回放集合D;
E)将所述更新状态S′赋值给所述初始状态S;
F)从所述经验回放集合D中根据采样数量m进行采样;根据当前采集的五元组中的是否中止状态is_end的内容,确定第二Q值输出yj的计算方式,根据所述计算方式得到所述第二Q值输出yj;
G)使用均方差损失函数,通过神经网络的梯度反向传播更新所述当前DQN网路中的所有参数w;
H)根据配置迭代轮数T和目标DQN网络的更新频率C确定是否更新;若更新,则将所述当前DQN网路中的所有参数w赋值给所述目标DQN网络的所有参数w′;
I)如果所述更新状态S′满足终止条件,则迭代结束,否则返回执行步骤B)。
在上述实施例的基础上,根据当前采集的五元组中的是否中止状态is_end的内容,确定第二Q值输出yj计算方式,根据所述计算方式得到所述第二Q值输出yj,包括:
如果当前采集的五元组中的是否中止状态is_end的内容为真,则将当前采集的五元组中的帧率差值Rj作为第二Q值输出yj;
如果当前采集的五元组中的是否中止状态is_end的内容为否,则将当前采集的五元组中的特征向量φ(S′j)、调整动作α和所述当前DQN网络的所有参数w输入至当前DQN网络,获取所述当前DQN网络输出的Q值数值最大时对应的第二动作α′;
将当前采集的五元组中的特征向量φ(S′j)、所述第二动作α′以及所述目标DQN网络的所有参数w′输入至目标DQN网络,得到第三Q值输出;根据所述衰弱因子γ、所述第三Q值输出以及当前采集的五元组中的帧率差值确定第二Q值输出yj。
在上述实施例的基础上,在使用探索率∈-贪婪法策略根据多个Q值输出确定第一线程动作A之前,还包括:
根据当前迭代次数确定探索率∈,探索率∈与迭代次数的变化趋势相反。
在上述实施例的基础上,预设强化学习模型为A3C或近端策略优化算法PPO。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本申请任意实施例所提供的线程分配方法中的相关操作.
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
值得注意的是,上述搜索装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (9)
1.一种线程分配方法,其特征在于,包括:
根据异构系统的线程配置目标确定预设强化学习模型的输入数据;其中,所述异构系统的线程配置目标为对多个异构硬件中的线程数量进行配置,以达到吞吐量最大化;所述吞吐量为图像的帧率;
将所述输入数据输入所述预设强化学习模型,执行所述预设强化学习模型以得到输出数据;
根据所述预设强化学习模型的输出数据确定线程分配信息;
根据所述线程分配信息对异构系统进行线程配置;
所述根据异构系统的线程配置目标确定预设强化学习模型的输入数据,包括:
根据每个异构硬件中的平均线程分配数量,确定初始状态S;
根据每个异构硬件中线程的增减数量,确定动作集合,所述动作集合包括多个线程调整动作α,每个线程调整动作表示某个异构硬件中线程数量增加一次或减少一次;
将强化学习算法中的奖励配置为将异构硬件当前提供的平均帧率与异构硬件上一次提供的平均帧率的帧率差值R。
2.根据权利要求1所述的方法,其特征在于,所述预设强化学习模型为双深度Q网络DDQN模型,所述DDQN模型包括当前DQN网络和目标DQN网络,所述输入数据还包括:配置迭代轮数T、衰弱因子γ、探索率∈、批量梯度下降的样本数m、以及目标DQN网络的更新频率C。
3.根据权利要求2所述的方法,其特征在于,将所述输入数据输入所述预设强化学习模型,执行所述预设强化学习模型以得到输出数据,包括:
随机初始化当前DQN网络的所有参数w,根据所述当前DQN网络的所有参数w初始化目标DQN网络的所有参数w′,清空经验回放集合D;
根据所述迭代轮数T进行迭代,在每个迭代回合中执行下述步骤:
A)根据所述初始状态S确定第一特征向量φ(S);
B)在当前DQN网络中将所述第一特征向量φ(S)作为输入,得到所述当前DQN网络输出的全部线程调整动作α对应的多个第一Q值输出;使用探索率∈-贪婪法策略根据所述多个第一Q值输出确定第一线程动作A;
C)在所述初始状态S执行所述第一线程动作A,得到更新状态S′对应的特征向量φ(S′)、帧率差值R以及是否中止状态is_end;
D)将所述初始状态S、所述第一线程动作A、所述帧率差值R、所述更新状态S′对应的特征向量φ(S′)以及所述是否中止状态is_end组成的五元组保存至所述经验回放集合D;
E)将所述更新状态S′赋值给所述初始状态S;
F)从所述经验回放集合D中根据采样数量m进行采样;根据当前采集的五元组中的是否中止状态is_end的内容,确定第二Q值输出yj的计算方式,根据所述计算方式得到所述第二Q值输出yj;
G)使用均方差损失函数,通过神经网络的梯度反向传播更新所述当前DQN网络中的所有参数w;
H)根据配置迭代轮数T和目标DQN网络的更新频率C确定是否更新;若更新,则将所述当前DQN网络中的所有参数w赋值给所述目标DQN网络的所有参数w′;
I)如果所述更新状态S′满足终止条件,则迭代结束,否则返回执行步骤B)。
4.根据权利要求3所述的方法,其特征在于,根据当前采集的五元组中的是否中止状态is_end的内容,确定第二Q值输出yj计算方式,根据所述计算方式得到所述第二Q值输出yj,包括:
如果当前采集的五元组中的是否中止状态is_end的内容为真,则将当前采集的五元组中的帧率差值Rj作为第二Q值输出yj;
如果当前采集的五元组中的是否中止状态is_end的内容为否,则将当前采集的五元组中的特征向量φ(S′j)、调整动作α和所述当前DQN网络的所有参数w输入至当前DQN网络,获取所述当前DQN网络输出的Q值数值最大时对应的第二动作α′;
将当前采集的五元组中的特征向量φ(S′j)、所述第二动作α′以及所述目标DQN网络的所有参数w′输入至目标DQN网络,得到第三Q值输出;根据所述衰弱因子γ、所述第三Q值输出以及当前采集的五元组中的帧率差值确定第二Q值输出yj。
5.根据权利要求3所述的方法,其特征在于,在使用探索率∈-贪婪法策略根据所述多个Q值输出确定第一线程动作A之前,还包括:
根据当前迭代次数确定探索率∈,所述探索率∈与迭代次数的变化趋势相反。
6.根据权利要求1所述的方法,其特征在于,所述预设强化学习模型为A3C或近端策略优化算法PPO。
7.一种线程分配装置,其特征在于,包括:
输入数据确定模块,用于根据异构系统的线程配置目标确定预设强化学习模型的输入数据;其中,所述异构系统的线程配置目标为对多个异构硬件中的线程数量进行配置,以达到吞吐量最大化;所述吞吐量为图像的帧率;
强化学习模型执行模块,用于将所述输入数据输入所述预设强化学习模型,执行所述预设强化学习模型以得到输出数据;
线程分配信息确定模块,用于根据所述预设强化学习模型的输出数据确定线程分配信息;
线程配置模块,用于根据所述线程分配信息对异构系统进行线程配置;
所述输入数据确定模块,具体用于:
根据每个异构硬件中的平均线程分配数量,确定初始状态S;
根据每个异构硬件中线程的增减数量,确定动作集合,所述动作集合包括多个线程调整动作α,每个线程调整动作表示某个异构硬件中线程数量增加一次或减少一次;
将强化学习算法中的奖励配置为将异构硬件当前提供的平均帧率与异构硬件上一次提供的平均帧率的帧率差值R。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一所述的线程分配方法。
9.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-6中任一所述的线程分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011051615.9A CN112162861B (zh) | 2020-09-29 | 2020-09-29 | 线程分配方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011051615.9A CN112162861B (zh) | 2020-09-29 | 2020-09-29 | 线程分配方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112162861A CN112162861A (zh) | 2021-01-01 |
CN112162861B true CN112162861B (zh) | 2024-04-19 |
Family
ID=73862139
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011051615.9A Active CN112162861B (zh) | 2020-09-29 | 2020-09-29 | 线程分配方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112162861B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110547B (zh) * | 2021-04-21 | 2022-06-07 | 吉林大学 | 一种微型航空飞行器的飞行控制方法、装置及设备 |
CN113191487B (zh) * | 2021-04-28 | 2023-04-07 | 重庆邮电大学 | 基于分布式ppo算法的自适应连续功率控制方法 |
CN114429195A (zh) * | 2022-01-21 | 2022-05-03 | 清华大学 | 混合专家模型训练的性能优化方法和装置 |
CN116679639B (zh) * | 2023-05-26 | 2024-01-05 | 广州市博煌节能科技有限公司 | 金属制品生产控制系统的优化方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160210313A1 (en) * | 2015-01-16 | 2016-07-21 | Futurewei Technologies, Inc. | System for high-throughput handling of transactions in a data-partitioned, distributed, relational database management system |
CN108008627A (zh) * | 2017-12-13 | 2018-05-08 | 中国石油大学(华东) | 一种并行优化的强化学习自适应pid控制方法 |
CN111198761A (zh) * | 2019-11-08 | 2020-05-26 | 深圳传音控股股份有限公司 | 资源调度分配装置、方法及计算机可读存储介质 |
-
2020
- 2020-09-29 CN CN202011051615.9A patent/CN112162861B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160210313A1 (en) * | 2015-01-16 | 2016-07-21 | Futurewei Technologies, Inc. | System for high-throughput handling of transactions in a data-partitioned, distributed, relational database management system |
CN108008627A (zh) * | 2017-12-13 | 2018-05-08 | 中国石油大学(华东) | 一种并行优化的强化学习自适应pid控制方法 |
CN111198761A (zh) * | 2019-11-08 | 2020-05-26 | 深圳传音控股股份有限公司 | 资源调度分配装置、方法及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112162861A (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112162861B (zh) | 线程分配方法、装置、计算机设备及存储介质 | |
JP7389177B2 (ja) | 連合学習方法、装置、機器及び記憶媒体 | |
CN113950066B (zh) | 移动边缘环境下单服务器部分计算卸载方法、系统、设备 | |
US20200236012A1 (en) | System and method for applying machine learning algorithms to compute health scores for workload scheduling | |
US11521067B2 (en) | Decentralized distributed deep learning | |
CN107038064B (zh) | 虚拟机管理方法及装置、存储介质 | |
CN111176820B (zh) | 一种基于深度神经网络的边缘计算任务的分配方法及装置 | |
CN110351348B (zh) | 一种基于dqn的云计算资源调度优化方法 | |
CN113037800B (zh) | 作业调度方法以及作业调度装置 | |
CN112181613B (zh) | 异构资源分布式计算平台批量任务调度方法及存储介质 | |
CN115237580B (zh) | 面向智能计算的流水并行训练自适应调整系统、方法 | |
CN111159859B (zh) | 一种云容器集群的部署方法及系统 | |
CN114118433A (zh) | 一种设备的配置参数的推荐方法及装置 | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
CN117396850A (zh) | 用于为深度学习作业弹性分配资源的系统、方法和介质 | |
CN116684420A (zh) | 集群资源调度方法、装置、集群系统和可读存储介质 | |
CN116915869A (zh) | 基于云边协同的时延敏感型智能服务快速响应方法 | |
CN113452546A (zh) | 深度学习训练通信的动态服务质量管理 | |
CN117311973A (zh) | 计算设备调度方法、装置、非易失性存储介质及电子设备 | |
CN109388609B (zh) | 基于加速核的数据处理方法和装置 | |
CN109784687B (zh) | 智慧云制造任务调度方法、可读存储介质和终端 | |
CN109767094B (zh) | 智慧云制造任务调度装置 | |
JP2018036724A (ja) | 仮想マシンのリソース管理方法、サーバ、及びプログラム | |
WO2023284347A1 (zh) | 任务执行方法及装置 | |
CN115220818A (zh) | 基于深度强化学习的实时依赖型任务卸载方法 |
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 |