CN115828831B - 基于深度强化学习的多芯粒芯片算子放置策略生成方法 - Google Patents
基于深度强化学习的多芯粒芯片算子放置策略生成方法 Download PDFInfo
- Publication number
- CN115828831B CN115828831B CN202310110451.XA CN202310110451A CN115828831B CN 115828831 B CN115828831 B CN 115828831B CN 202310110451 A CN202310110451 A CN 202310110451A CN 115828831 B CN115828831 B CN 115828831B
- Authority
- CN
- China
- Prior art keywords
- operator
- module
- deep
- placement
- core
- 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
Images
Classifications
-
- 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
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于深度强化学习的多芯粒芯片算子放置策略生成方法,包括:获取算子计算图和多芯粒芯片尺寸信息;根据多芯粒芯片尺寸信息生成可选的若干种目标放置芯粒网格尺寸;建立多芯粒芯片算子放置深度学习强化模型,其中多芯粒芯片算子放置深度学习强化模型包括算子运行环境模块和深度Q网络模块,算子运行模块用于根据当前环境网络和输入的动作,计算奖励值,并将环境变换到下一个状态,将奖励值和下一个状态传回深度Q网络模块,深度Q网络模块用于根据当前状态从可选的动作空间中选择价值最高的动作;基于算子运行环境模块对深度Q网络模块进行训练;利用训练好的深度强化学习模型对算子计算图在多芯粒芯片上的运行给出算子放置策略。
Description
技术领域
本发明属于计算机系统结构领域,尤其涉及基于深度强化学习的多芯粒芯片算子放置策略生成方法。
背景技术
算子计算图到多芯粒芯片(Chiplet)的放置问题是研发新型深度学习推理芯片中重要问题,也是资源调度技术的一种难点问题。由于多芯粒芯片(Chiplet)目前在业界仍然是一个非常新的领域,对于如何在该设备基础上进行放置策略设计,没有符合要求的研究成果。考虑到一些算子计算图规模很大,算子数量很多,而多芯粒芯片(Chiplet)又可以轻易封装成百上千个核心,因此算子构成的计算图到多芯粒芯片(Chiplet)的放置变成了一个大规模组合优化问题,计算复杂度非常高。当前的方法建立在对问题简化和弱化的基础上,整体方案存在片面性和局限性。因此,通过深度强化学习来求解该放置问题对于目前的芯片研发、产业应用都有极其重要的意义。
针对上文提到一些已有的方法,下面进行分类阐述。目前已有的方案主要有如下特征:1)通过贪心算法求解。这种算法实现简单,计算复杂度符合实际应用要求,问题在于求解结果效率不高,属于次优结果;2)通过动态规划求解。动态规划求解需要满足重复子问题、无后效性和最优子结构这三个性质。算子构成的计算图到多芯粒芯片(Chiplet)的放置问题则不能完全满足这三个性质,一般要通过对问题的弱化和假设来满足;3)通过数值求解器求解。数值求解器同样需要满足一定的约束条件,弱化方式类似于动态规划方法。例如假设算子对计算设备使用充分、不考虑算子并行性等。这些方法存在的一个共同问题是计算效率高,但是求解结果和最优结果差距较大。为了减小计算复杂度,不约而同地选择了对问题进行弱化和简化来使得问题在计算上可以找到一个多项式时间的计算复杂度。因此当前的方法存在局限性。
发明内容
本申请实施例的目的是针对现有技术的不足,提供基于深度强化学习的多芯粒芯片算子放置策略生成方法。
根据本申请实施例的第一方面,提供一种基于深度强化学习的多芯粒芯片算子放置策略生成方法,包括:
步骤S1:获取算子计算图和多芯粒芯片尺寸信息;
步骤S2:根据所述多芯粒芯片尺寸信息生成可选的若干种目标放置芯粒网格尺寸;
步骤S3:建立多芯粒芯片算子放置深度学习强化模型,其中所述多芯粒芯片算子放置深度学习强化模型包括算子运行环境模块和深度Q网络模块,所述算子运行模块用于根据当前环境网络和输入的动作,计算奖励值,并将环境变换到下一个状态,将所述奖励值和下一个状态传回深度Q网络模块用于训练,所述深度Q网络模块用于根据当前状态从可选的动作空间中选择价值最高的动作;
步骤S4:基于所述算子运行环境模块对所述深度Q网络模块进行训练,得到训练好的多芯粒芯片算子放置深度强化学习模型;
步骤S5:利用训练好的深度强化学习模型对算子计算图在多芯粒芯片上的运行给出算子放置策略。
进一步地,步骤S2中,生成的目标放置芯粒网格尺寸为二维元组,包含长和宽,其中长和宽相等,且大小为2的指数。
进一步地,所述算子运行环境模块包括状态子模块、奖励子模块和动作子模块;
所述状态子模块根据前一时刻上一个算子在芯粒的放置策略和当前深度Q网络模块选择的动作,对芯粒上的数据分布进行状态转移,状态转移的计算根据上一个状态的数据分布和算子的计算逻辑得到转移后的芯粒上的数据分布;
所述奖励子模块利用多芯粒芯片性能模拟器根据当前给定的动作即算子的放置策略计算在上一个时刻的数据分布下的运行性能数据作为奖励值,奖励值传回深度Q网络模块;
所述动作子模块根据芯粒网格尺寸以及算子计算特性确定可以供深度Q网络模块选择的动作空间。
进一步地,所述状态子模块利用算子的层次结构进行初始化,所述层次结构由对所述算子计算图进行解析得到。
进一步地,利用广度优先遍历算法对所述算子计算图进行解析。
进一步地,所述动作为当前算子的放置策略,包括算子使用的芯粒的尺寸、算子所需的输入在使用的芯粒上的数据划分方式以及算子的权重在使用的芯粒上的数据划分方式。
进一步地,所述奖励值为算子在多芯粒芯片性能模拟器上执行时间的负值。
进一步地,步骤S4包括:
深度Q网络模块通过正态分布采样完成参数初始化;
深度Q网络模块根据当前的数据分布状态、算子计算类型和可供选择的动作,选出最优的动作,并将选出的动作发送给算子运行环境模块;
算子运行环境模块根据深度Q网络模块给出的动作即算子的放置策略,利用多芯粒芯片性能模拟器对该放置策略在当前数据分布上进行模拟,并将得到的性能数据作为奖励值,同时根据输入的动作即算子的放置策略对当前芯粒上的数据分布进行变换,得到新的状态,将奖励值和新的状态传回深度Q网络模块;
深度Q网络模块根据得到的奖励值和上一个动作的价值大小计算期望的价值大小,并和当前状态在所有可选动作中可以获得的最大价值大小计算差值,利用所述差值计算梯度对深度Q网络的权重进行更新;
重复上述流程,直到模型训练次数达到预定值。
进一步地,步骤S5包括:
对所述算子计算图进行解析,得到层次化的算子元组列表;
利用所述算子元组列表,初始化所述多芯粒芯片算子放置深度强化学习模型;
将所述算子元组列表中的每一个元组依次输入所述多芯粒芯片算子放置深度强化学习模型,得到每一个层次上的算子的放置策略,从而得到所有算子的放置策略。
根据本申请实施例的第二方面,提供一种基于深度强化学习的多芯粒芯片算子放置策略生成装置,包括:
获取模块,用于获取算子计算图和多芯粒芯片尺寸信息;
可选尺寸生成模块,用于根据所述多芯粒芯片尺寸信息生成可选的若干种目标放置芯粒网格尺寸;
建模模块, 用于建立多芯粒芯片算子放置深度学习强化模型,其中所述多芯粒芯片算子放置深度学习强化模型包括算子运行环境模块和深度Q网络模块,所述算子运行模块用于根据当前环境网络和输入的动作,计算奖励值,并将环境变换到下一个状态,将所述奖励值和下一个状态传回深度Q网络模块用于训练,所述深度Q网络模块用于根据当前状态从可选的动作空间中选择价值最高的动作;
训练模块,用于基于所述算子运行环境模块对所述深度Q网络模块进行训练,得到训练好的多芯粒芯片算子放置深度强化学习模型;
算子放置策略生成模块,用于利用训练好的深度强化学习模型对算子计算图在多芯粒芯片上的运行给出算子放置策略。
本申请的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本申请使用了深度强化学习来得到算子放置策略方法,通过利用强化学习,实现了对环境信息的自学习,无需依赖于人工经验和规则;通过利用深度神经网络,对于状态信息进行有效的抽象和表征;推理阶段只依赖于深度神经网络,推理速度快。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种基于深度强化学习的多芯粒芯片算子放置策略生成方法的流程图。
图2是根据一示例性实施例示出的多芯粒芯片算子放置深度强化学习模型模块结构图。
图3是根据一示例性实施例示出的一种基于深度强化学习的多芯粒芯片算子放置策略生成装置的框图。
图4是根据一示例性实施例示出的一种电子设备的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图1是根据一示例性实施例示出的一种基于深度强化学习的多芯粒芯片算子放置策略生成方法的流程图,如图1所示,该方法应用于终端中,可以包括以下步骤:
步骤S1:获取算子计算图和多芯粒芯片尺寸信息;
步骤S2:根据所述多芯粒芯片尺寸信息生成可选的若干种目标放置芯粒网格尺寸;
步骤S3:建立多芯粒芯片算子放置深度学习强化模型,其中所述多芯粒芯片算子放置深度学习强化模型包括算子运行环境模块和深度Q网络模块,所述算子运行模块用于根据当前环境网络和输入的动作,计算奖励值,并将环境变换到下一个状态,将所述奖励值和下一个状态传回深度Q网络模块用于训练,所述深度Q网络模块用于根据当前状态从可选的动作空间中选择价值最高的动作;
步骤S4:基于所述算子运行环境模块对所述深度Q网络模块进行训练,得到训练好的多芯粒芯片算子放置深度强化学习模型;
步骤S5:利用训练好的深度强化学习模型对算子计算图在多芯粒芯片上的运行给出算子放置策略。
由上述实施例可知,本申请使用了深度强化学习来得到算子放置策略方法,通过利用强化学习,实现了对环境信息的自学习,无需依赖于人工经验和规则;通过利用深度神经网络,对于状态信息进行有效的抽象和表征;推理阶段只依赖于深度神经网络,推理速度快。
在步骤S1的具体实施中,获取算子计算图和多芯粒芯片尺寸信息;
具体地,收集需要应用该策略方法所在场景下算子计算图和多芯粒芯片尺寸信息,需要确定需要进行算子计算图,例如ResNet50,LSTM,Bert等模型对应的算子计算图。还需要确定多芯粒芯片的尺寸信息,例如多芯粒中芯粒的2d网格为4x4,每一个芯粒中有4x4个计算核心,即一共16x16个计算核心。
在步骤S2的具体实施中,根据所述多芯粒芯片尺寸信息生成可选的若干种目标放置芯粒网格尺寸;
具体地,对于步骤S1中提到的多芯粒芯片的尺寸信息,根据该信息,可以生成的目标放置芯粒网格尺寸为二维元组,包含长和宽,其中长和宽相等,且大小为2的指数。以多芯粒中芯粒的2d网格为4x4为例子,可以生成1x1、2x2和4x4等多种可能的目标放置芯粒网格尺寸。这部分尺寸信息将作为策略空间的一部分。
在步骤S3的具体实施中,建立多芯粒芯片算子放置深度学习强化模型,如图2所示,其中所述多芯粒芯片算子放置深度学习强化模型包括算子运行环境模块和深度Q网络模块,所述算子运行模块用于根据当前环境网络和输入的动作,计算奖励值,并将环境网络变换到下一个状态,将所述奖励值和下一个状态传回深度Q网络模块用于训练,所述深度Q网络模块用于根据当前状态从可选的动作空间中选择价值最高的动作;
在本申请的深度强化学习中,所述多芯粒芯片算子放置深度学习强化模型为智能体,环境指多芯粒芯片构成的算子运行环境。该环境可以是运行在真实的芯片上的,也可以基于芯片模拟器实现。在本实施例中抽象为算子运行环境,实现方式为多芯粒芯片性能模拟器。
具体地,所述算子运行环境模块可以包括状态子模块、奖励子模块和动作子模块;
所述状态子模块根据前一时刻上一个算子在芯粒的放置策略和当前深度Q网络模块选择的动作,对芯粒上的数据分布进行状态转移,状态转移是根据上一个状态的数据分布和算子的计算逻辑得到转移后的芯粒上的数据分布进行的;以模型ResNet50为例子,两个相邻的卷积算子,前一个卷积算子在给定策略下形成了一个输出张量的的数据分布,那么经过当前卷积算子的计算后,又形成了一个新的输出张量的的数据分布。这两个输出张量的数据分布就是两个可以转移的状态。所述状态为一种数据分布的抽象表述。具体为,对于一个二维张量,用S表示均分,用R表示复制。通过它们的组合表示一种数据分布。举例,8SS表示在8x8大小的芯粒网格上,在行和列上都进行数据的均分;16SR表示在16x16大小的芯粒网格上,数据按行均分。状态子模块的初始化依赖于S2中得到的层次结构。该层次结构会记录在状态子模块中,状态子模块根据传入的状态找到其对应的算子元组列表位置,结合传入的动作和当前位置对应的下一个算子,一起计算得到下一个状态。通过这些记录信息,状态子模块可以实现完整的状态转换逻辑;
在具体实施中,上述的层次结构由对所述算子计算图进行解析得到;具体地,利用广度优先遍历算法对所述算子计算图进行解析。解析的结果为元组列表,每一个元组包含的信息有<计算序号,算子输出标识名,算子输出类型,输出张量形状,算子类型,输入标识名>。其中计算序号为计算顺序的标识。算子输出标识名和输入标识名为输出和输入的张量的别名。算子输出类型为fp32、fp16和int8其中一种。输出张量形状为一个元组,元组的元素为整型。算子类型为算子计算逻辑通用名,常见如matmul、conv、concat等。其中算子的输入标识会和某些前序算子的输出标识相一致,以构成一个有向图的结构。
所述奖励子模块利用多芯粒芯片性能模拟器根据当前给定的动作计算在上一个时刻的数据分布下的运行性能数据作为奖励值,奖励值传回深度Q网络模块;所述动作为当前算子的放置策略,包括算子使用的芯粒的尺寸、算子所需的输入在使用的芯粒上的数据划分方式以及算子的权重在使用的芯粒上的数据划分方式。所述奖励值为算子在多芯粒芯片性能模拟器上执行时间的负值。以一个算子在多芯粒芯片的推理时间来计算,如果一个算子从输入的张量经过计算和数据再同步,生成输出的张量的数据分布,消耗的周期数为t,那么奖励值为-t。
所述多芯粒芯片性能模拟器是一种对于深度神经网络在多芯粒芯片上推理时间的模拟计算系统。它的输入为深度学习模型的算子类型、算子的输入和权重数据分布、多芯粒芯片的硬件参数配置。输出为该算子在当前数据分布和多芯粒芯片的硬件参数配置情况下的推理时间,单位为周期数;具体地,所述述多芯粒芯片性能模拟器包括:
(1)配置输入层,用于获取模拟所需的深度学习模型、多芯粒芯片架构和映射策略;
其中,所述深度学习模型是由若干算子组成的深度神经网络,所述多芯粒芯片架构用于描述多芯粒芯片的架构,所述多芯粒芯片为由多个芯粒组合起来的大型芯片,每个芯粒都包含一组神经网络处理单元,所述映射策略用于描述如何将算子映射到多芯粒芯片上以及如何分配设备进行计算。
(2)模型解析层,用于根据所述映射策略对所述深度学习模型进行解析,得到模型解析表,其中所述模型解析表中描述了每个算子的运行策略;
其中,所述模型解析表中包括每个算子的算子类型、输入输出形状、数据类型以及运行策略。
(3)路由生成层,用于根据所述模型解析表中每个算子的运行策略分析算子内路由和算子间路由并生成路由文件;
其中,所述路由文件是所有数据包在多芯粒芯片中路由的集合,每条数据包在多芯粒芯片中的路由包括发送时间、源地址、目的地址及数据包大小。
(4)推理模拟层,用于进行深度学习模型在所述多芯粒芯片架构所描述的多芯粒芯片上的推理模拟,将所述路由文件分层次并通过片上网络模拟器进行多进程并行模拟,得到各算子路由所需的周期数;
其中,在所述推理模拟层中,将所述路由文件分成若干份,开对应数量的进程使用片上网络模拟器同时模拟,以进行深度学习模型在多芯粒芯片上的推理模拟。(5)结果计算层,用于将推理模拟层中并行模拟得到的算子路由周期数进行整理计算,得到所述深度学习模型在多芯粒芯片上推理模拟的周期数和平均设备利用率;
其中,对于单一批次推理,所述周期数的计算过程为:
计算各阶段推理所需的周期数,其中一个阶段所需的周期数为当前阶段内各算子推理所需的周期和;将各阶段推理所需的周期数相加,得到所述周期数。
对于多批次推理,所述周期数的计算过程为:
计算各阶段推理所需的周期数,其中一个阶段所需的周期数为当前阶段内各算子推理所需的周期和;将周期数耗时最长的阶段作为流水线的主体部分,将该阶段的周期数乘以批次数再加上各阶段推理所需的周期数,得到多批次推理总的周期数。
所述平均设备利用率为各算子推理时所用到的设备在所属设备子网的比例的平均值。
所述动作子模块根据S3中所述芯粒网格尺寸以及算子计算特性确定可以供深度Q网络模块选择的动作空间。以一个算子为例子,假设其输入为二维张量,由于每一个轴都可以选择切分或者复制,因此有四种策略,再假设芯粒尺寸为4x4,可选的目标尺寸有3中,因此一共有12种输入张量的放置策略。因此动作空间也有12种。
深度Q网络模块拟合了每一个状态下做不同动作的价值。由于网络的参数通过正态分布采样完成参数初始化,因此每一个动作的价值预先设定值为随机值。深度Q网络通过神经网络中的多个全连接层来进行状态到价值大小的拟合。深度Q网络模块根据当前状态下不同动作价值的大小选择价值最高的动作,并将选择的动作输出到算子运行环境模块中获得相应的奖励值。深度Q网络模块获得了S3所述的若干种目标放置芯粒网格尺寸,在不同的网格尺寸上,通过组合算子需要的输入张量和权重张量可能的数据分布,得到可选放置策略空间,该空间即为可选动作空间。动作空间大小用于初始化深度Q网络最后输出的张量的形状尺寸。
在一实施例中,深度Q网络的网络结构可以为多层全连接网格。
在步骤S4的具体实施中,基于所述算子运行环境模块对所述深度Q网络模块进行训练,得到训练好的多芯粒芯片算子放置深度强化学习模型;
具体地,步骤S4可以包括以下子步骤:
步骤S41:深度Q网络模块通过正态分布采样完成参数初始化;
具体地,深度Q网络模块中多个全连接网络的权重张量通过正态分布采样完成初始化。因此,每一个动作的价值预先设定值为随机值。采用正太分布采样可以使得权重张量在N维空间中多个向量之间的夹角为均匀分布,达到了较好的随机性。
步骤S42:深度Q网络模块根据当前的数据分布状态、算子计算类型和可供选择的动作,选出最优的动作,并将选出的动作发送给算子运行环境模块;
具体地,深度Q网络模块将数据分布状态和算子计算类型作为输入,推理计算得出价值大小最大的动作选项。举例,当前数据分布状态为8SS,表示在8x8大小的芯粒网格上,在行和列上都进行数据的均分。算子计算类型为Conv,表示为一个图像卷积操作。这两个值构成一个向量,成为深度Q网络模块的输入。将数据分布和算子类型一起作为深度Q网络的输入,可以让深度Q网络在拟合数据分布到价值大小的映射时,也可以包含了算子类型特征。
步骤S43:算子运行环境模块根据深度Q网络模块给出的动作即算子的放置策略,利用多芯粒芯片性能模拟器对该放置策略在当前数据分布上进行模拟,并将得到的性能数据作为奖励值,同时根据输入的动作即算子的放置策略对当前芯粒上的数据分布进行变换,得到新的状态,将奖励值和新的状态传回深度Q网络模块;
步骤S44:深度Q网络模块根据得到的奖励值和上一个动作的价值大小计算期望的价值大小,并和当前状态在所有可选动作中可以获得的最大价值大小计算差值,利用所述差值计算梯度对深度Q网络的权重进行更新;
具体地,根据上一个状态和当前获得的新的状态作为深度Q网络模块的输入,推理计算得到价值V1和V2,其中V1为上一个状态对应上一个所选动作的价值大小,V2为新的状态在所有可选动作中可以获得的最大价值大小。根据得到的奖励值和价值V2计算期望的价值大小,并和价值V1大小计算差值,利用差值计算梯度对深度Q网络的权重进行更新。计算公式为:,其中R为奖励值,/>为衰减系数,衰减系数可以根据训练情况自由设定,限制为大于0小于1。
步骤S45:重复步骤S42-步骤S44,直到模型训练次数达到预定值;
在具体实施中,可以根据实际情况和要求设置所述预定值,该设定为本领域的常规技术手段,此处不作赘述。
在步骤S5的具体实施中,利用训练好的深度强化学习模型对算子计算图在多芯粒芯片上的运行给出算子放置策略;
具体地,步骤S5可以包括以下子步骤:
步骤S51:对所述算子计算图进行解析,得到层次化的算子元组列表;
具体地,对算子计算图进行解析,得到层次化的算子元组列表的过程已在步骤S3的具体实施中进行说明,此处不再赘述。
步骤S52:利用所述算子元组列表,初始化所述多芯粒芯片算子放置深度强化学习模型;
具体地,利用算子元组列表初始化算子运行环境模块中的状态子模块。状态子模块记录到了算子元组列表,并根据传入的状态找到其对应的算子元组列表位置,结合传入的动作和当前位置对应的下一个算子,一起计算得到下一个状态。通过这些记录信息,状态子模块可以实现完整的状态转换逻辑;
步骤S53:将所述算子元组列表中的每一个元组依次输入所述多芯粒芯片算子放置深度强化学习模型,得到每一个层次上的算子的放置策略,从而得到所有算子的放置策略。
具体地,以所述算子元组列表的第一个元组作为初始化状态输入所述多芯粒芯片算子放置深度强化学习模型,得到对应价值最高的动作;根据所述动作和下一个元组得到下一个状态;将下个状态作为输入,如此依次循环输出每一个层次上的算子的放置策略,最终得到所有算子的放置策略。
与前述的基于深度强化学习的多芯粒芯片算子放置策略生成方法的实施例相对应,本申请还提供了基于深度强化学习的多芯粒芯片算子放置策略生成装置的实施例。
图3是根据一示例性实施例示出的一种基于深度强化学习的多芯粒芯片算子放置策略生成装置框图。参照图3,该装置可以包括:
获取模块21,用于获取算子计算图和多芯粒芯片尺寸信息;
可选尺寸生成模块22,用于根据所述多芯粒芯片尺寸信息生成可选的若干种目标放置芯粒网格尺寸;
建模模块23, 用于建立多芯粒芯片算子放置深度学习强化模型,其中所述多芯粒芯片算子放置深度学习强化模型包括算子运行环境模块和深度Q网络模块,所述算子运行模块用于根据当前环境网络和输入的动作,计算奖励值,并将环境变换到下一个状态,将所述奖励值和下一个状态传回深度Q网络模块用于训练,所述深度Q网络模块用于根据当前状态从可选的动作空间中选择价值最高的动作;
训练模块24,用于基于所述算子运行环境模块对所述深度Q网络模块进行训练,得到训练好的多芯粒芯片算子放置深度强化学习模型;
算子放置策略生成模块25,用于利用训练好的深度强化学习模型对算子计算图在多芯粒芯片上的运行给出算子放置策略。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的基于深度强化学习的多芯粒芯片算子放置策略生成方法。如图4所示,为本发明实施例提供的一种基于深度强化学习的多芯粒芯片算子放置策略生成方法所在任意具备数据处理能力的设备的一种硬件结构图,除了图4所示的处理器、内存以及网络接口之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的基于深度强化学习的多芯粒芯片算子放置策略生成方法。所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(FlashCard)等。进一步的,所述计算机可读存储介还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
Claims (9)
1.一种基于深度强化学习的多芯粒芯片算子放置策略生成方法,其特征在于,包括:
步骤S1:获取算子计算图和多芯粒芯片尺寸信息;
步骤S2:根据所述多芯粒芯片尺寸信息生成可选的若干种目标放置芯粒网格尺寸;
步骤S3:建立多芯粒芯片算子放置深度学习强化模型,其中所述多芯粒芯片算子放置深度学习强化模型包括算子运行环境模块和深度Q网络模块,所述算子运行模块用于根据当前环境网络和输入的动作,计算奖励值,并将环境变换到下一个状态,将所述奖励值和下一个状态传回深度Q网络模块用于训练,所述深度Q网络模块用于根据当前状态从可选的动作空间中选择价值最高的动作;
步骤S4:基于所述算子运行环境模块对所述深度Q网络模块进行训练,得到训练好的多芯粒芯片算子放置深度强化学习模型;
步骤S5:利用训练好的深度强化学习模型对算子计算图在多芯粒芯片上的运行给出算子放置策略;
其中,步骤S5包括:
对所述算子计算图进行解析,得到层次化的算子元组列表,具体为:利用广度优先遍历算法对所述算子计算图进行解析,解析的结果为元组列表,每一个元组包含的信息有<计算序号,算子输出标识名,算子输出类型,输出张量形状,算子类型,输入标识名>,其中计算序号为计算顺序的标识,算子输出标识名和输入标识名为输出和输入的张量的别名,算子输出类型为fp32、fp16和int8其中一种,输出张量形状为一个元组,算子类型为算子计算逻辑通用名;
利用所述算子元组列表,初始化所述多芯粒芯片算子放置深度强化学习模型;
将所述算子元组列表中的每一个元组依次输入所述多芯粒芯片算子放置深度强化学习模型,得到每一个层次上的算子的放置策略,从而得到所有算子的放置策略。
2.根据权利要求1所述的方法,其特征在于,步骤S2中,生成的目标放置芯粒网格尺寸为二维元组,包含长和宽,其中长和宽相等,且大小为2的指数。
3.根据权利要求1所述的方法,其特征在于,所述算子运行环境模块包括状态子模块、奖励子模块和动作子模块;
所述状态子模块根据前一时刻上一个算子在芯粒的放置策略和当前深度Q网络模块选择的动作,对芯粒上的数据分布进行状态转移,状态转移的计算根据上一个状态的数据分布和算子的计算逻辑得到转移后的芯粒上的数据分布;
所述奖励子模块利用多芯粒芯片性能模拟器根据当前给定的动作即算子的放置策略计算在上一个时刻的数据分布下的运行性能数据作为奖励值,奖励值传回深度Q网络模块;
所述动作子模块根据芯粒网格尺寸以及算子计算特性确定可以供深度Q网络模块选择的动作空间。
4.根据权利要求3所述的方法,其特征在于,所述状态子模块利用算子的层次结构进行初始化,所述层次结构由对所述算子计算图进行解析得到。
5.根据权利要求4所述的方法,其特征在于,利用广度优先遍历算法对所述算子计算图进行解析。
6.根据权利要求1所述的方法,其特征在于,所述动作为当前算子的放置策略,包括算子使用的芯粒的尺寸、算子所需的输入在使用的芯粒上的数据划分方式以及算子的权重在使用的芯粒上的数据划分方式。
7.根据权利要求1所述的方法,其特征在于,所述奖励值为算子在多芯粒芯片性能模拟器上执行时间的负值。
8.根据权利要求1所述的方法,其特征在于,步骤S4包括:
深度Q网络模块通过正态分布采样完成参数初始化;
深度Q网络模块根据当前的数据分布状态、算子计算类型和可供选择的动作,选出最优的动作,并将选出的动作发送给算子运行环境模块;
算子运行环境模块根据深度Q网络模块给出的动作即算子的放置策略,利用多芯粒芯片性能模拟器对该放置策略在当前数据分布上进行模拟,并将得到的性能数据作为奖励值,同时根据输入的动作即算子的放置策略对当前芯粒上的数据分布进行变换,得到新的状态,将奖励值和新的状态传回深度Q网络模块;
深度Q网络模块根据得到的奖励值和上一个动作的价值大小计算期望的价值大小,并和当前状态在所有可选动作中可以获得的最大价值大小计算差值,利用所述差值计算梯度对深度Q网络的权重进行更新;
重复上述流程,直到模型训练次数达到预定值。
9.一种基于深度强化学习的多芯粒芯片算子放置策略生成装置,其特征在于,包括:
获取模块,用于获取算子计算图和多芯粒芯片尺寸信息;
可选尺寸生成模块,用于根据所述多芯粒芯片尺寸信息生成可选的若干种目标放置芯粒网格尺寸;
建模模块, 用于建立多芯粒芯片算子放置深度学习强化模型,其中所述多芯粒芯片算子放置深度学习强化模型包括算子运行环境模块和深度Q网络模块,所述算子运行模块用于根据当前环境网络和输入的动作,计算奖励值,并将环境变换到下一个状态,将所述奖励值和下一个状态传回深度Q网络模块用于训练,所述深度Q网络模块用于根据当前状态从可选的动作空间中选择价值最高的动作;
训练模块,用于基于所述算子运行环境模块对所述深度Q网络模块进行训练,得到训练好的多芯粒芯片算子放置深度强化学习模型;
算子放置策略生成模块,用于利用训练好的深度强化学习模型对算子计算图在多芯粒芯片上的运行给出算子放置策略;
其中,利用训练好的深度强化学习模型对算子计算图在多芯粒芯片上的运行给出算子放置策略,包括:
对所述算子计算图进行解析,得到层次化的算子元组列表,具体为:利用广度优先遍历算法对所述算子计算图进行解析,解析的结果为元组列表,每一个元组包含的信息有<计算序号,算子输出标识名,算子输出类型,输出张量形状,算子类型,输入标识名>,其中计算序号为计算顺序的标识,算子输出标识名和输入标识名为输出和输入的张量的别名,算子输出类型为fp32、fp16和int8其中一种,输出张量形状为一个元组,算子类型为算子计算逻辑通用名;
利用所述算子元组列表,初始化所述多芯粒芯片算子放置深度强化学习模型;
将所述算子元组列表中的每一个元组依次输入所述多芯粒芯片算子放置深度强化学习模型,得到每一个层次上的算子的放置策略,从而得到所有算子的放置策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310110451.XA CN115828831B (zh) | 2023-02-14 | 2023-02-14 | 基于深度强化学习的多芯粒芯片算子放置策略生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310110451.XA CN115828831B (zh) | 2023-02-14 | 2023-02-14 | 基于深度强化学习的多芯粒芯片算子放置策略生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115828831A CN115828831A (zh) | 2023-03-21 |
CN115828831B true CN115828831B (zh) | 2023-06-09 |
Family
ID=85521219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310110451.XA Active CN115828831B (zh) | 2023-02-14 | 2023-02-14 | 基于深度强化学习的多芯粒芯片算子放置策略生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115828831B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116340072B (zh) * | 2023-05-25 | 2023-07-28 | 中诚华隆计算机技术有限公司 | 一种多芯粒芯片的故障检测方法和装置 |
CN116841804B (zh) * | 2023-09-01 | 2023-11-17 | 中诚华隆计算机技术有限公司 | 一种基于chiplet的动态重配置方法和芯片 |
CN117290898B (zh) * | 2023-10-18 | 2024-05-03 | 中诚华隆计算机技术有限公司 | 一种用于Chiplet芯片系统的安全保护方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641481A (zh) * | 2021-08-27 | 2021-11-12 | 西安交通大学 | 一种采用dqn的fpga任务调度优化方法及系统 |
CN114722701A (zh) * | 2022-03-18 | 2022-07-08 | 中国人民解放军国防科技大学 | 基于深度强化学习模型的兵棋推演协作策略获取方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111061277B (zh) * | 2019-12-31 | 2022-04-05 | 歌尔股份有限公司 | 一种无人车全局路径规划方法和装置 |
US20220405643A1 (en) * | 2021-06-11 | 2022-12-22 | Royal Bank Of Canada | System and method for risk sensitive reinforcement learning architecture |
CN113822173A (zh) * | 2021-09-01 | 2021-12-21 | 杭州电子科技大学 | 基于节点归并和路径预测的行人属性识别训练加速方法 |
CN114154412A (zh) * | 2021-11-25 | 2022-03-08 | 上海交通大学 | 基于深度强化学习的优化芯片布局系统及方法 |
CN114372438B (zh) * | 2022-01-12 | 2023-04-07 | 广东工业大学 | 基于轻量化深度强化学习的芯片宏单元布局方法及系统 |
CN114692830A (zh) * | 2022-03-25 | 2022-07-01 | 潘振华 | 晋级网络自强化的图像语音深度学习模型 |
CN115115052A (zh) * | 2022-08-11 | 2022-09-27 | 杭州电子科技大学 | 一种基于遗传算法的神经网络自适应分布式并行训练方法 |
-
2023
- 2023-02-14 CN CN202310110451.XA patent/CN115828831B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641481A (zh) * | 2021-08-27 | 2021-11-12 | 西安交通大学 | 一种采用dqn的fpga任务调度优化方法及系统 |
CN114722701A (zh) * | 2022-03-18 | 2022-07-08 | 中国人民解放军国防科技大学 | 基于深度强化学习模型的兵棋推演协作策略获取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115828831A (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115828831B (zh) | 基于深度强化学习的多芯粒芯片算子放置策略生成方法 | |
CN106951926A (zh) | 一种混合架构的深度学习系统方法及装置 | |
CN106201651A (zh) | 神经形态芯片的模拟器 | |
CN110363294A (zh) | 利用网络中的路径来表示神经网络以提高神经网络的性能 | |
CN107239824A (zh) | 用于实现稀疏卷积神经网络加速器的装置和方法 | |
CN115186821B (zh) | 面向芯粒的神经网络推理开销估计方法及装置、电子设备 | |
Maitre et al. | EASEA: specification and execution of evolutionary algorithms on GPGPU | |
CN110968920B (zh) | 一种边缘计算中链式服务实体的放置方法及边缘计算设备 | |
CN112948123B (zh) | 一种基于Spark的网格水文模型分布式计算方法 | |
CN111967271A (zh) | 分析结果的生成方法、装置、设备及可读存储介质 | |
CN111831354B (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN108491924B (zh) | 一种面向人工智能计算的神经网络数据串行流水处理装置 | |
Le et al. | ER-DCOPs: A framework for distributed constraint optimization with uncertainty in constraint utilities | |
CN117032807A (zh) | 基于risc-v指令集的ai加速处理器架构 | |
CN110490317A (zh) | 神经网络运算装置及运算方法 | |
CN109889525A (zh) | 多通信协议智能感知方法 | |
CN115618532A (zh) | 一种网络系统仿真方法及相关装置 | |
CN105335135A (zh) | 数据处理方法和中心节点 | |
Moe et al. | Implementing spatio-temporal graph convolutional networks on graphcore ipus | |
CN115001978B (zh) | 一种基于强化学习模型的云租户虚拟网络智能映射方法 | |
CN110377769A (zh) | 基于图数据结构的建模平台系统、方法、服务器及介质 | |
CN112817898B (zh) | 数据传输方法、处理器、芯片及电子设备 | |
CN115292044A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
KR20230007220A (ko) | 멀티 인코딩 기반의 스파이크 뉴럴 네트워크 장치 및 그의 동작 방법 | |
CN103793745B (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 |