CN114625370A - 在主机和设备之间进行数据布局的方法、设备和异构*** - Google Patents

在主机和设备之间进行数据布局的方法、设备和异构*** Download PDF

Info

Publication number
CN114625370A
CN114625370A CN202011463516.1A CN202011463516A CN114625370A CN 114625370 A CN114625370 A CN 114625370A CN 202011463516 A CN202011463516 A CN 202011463516A CN 114625370 A CN114625370 A CN 114625370A
Authority
CN
China
Prior art keywords
data
layout
host
degree
comparison result
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
Application number
CN202011463516.1A
Other languages
English (en)
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.)
Cambricon Technologies Corp Ltd
Original Assignee
Cambricon Technologies Corp 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 Cambricon Technologies Corp Ltd filed Critical Cambricon Technologies Corp Ltd
Priority to CN202011463516.1A priority Critical patent/CN114625370A/zh
Publication of CN114625370A publication Critical patent/CN114625370A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本披露公开了一种用于在主机和设备之间进行数据布局的方法、设备和异构***。该设备可以包括在组合处理装置的计算处理装置中,该计算处理装置可以包括一个或多个数据处理装置。前述的组合处理装置还可以包括接口装置和其他处理装置。所述计算处理装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与设备和其他处理装置连接,用于存储该设备和其他处理装置的数据。通过利用本披露的方案,可以有效地实现在主机和设备之间的数据布局。

Description

在主机和设备之间进行数据布局的方法、设备和异构***
技术领域
本披露一般地涉及计算机领域。更具体地,本披露涉及用于在主机和设备之间进行数据布局的方法、编译器和用于机器学习的异构***。
背景技术
随着人工智能技术的不断发展,各种硬件架构和相应算法也不断地演进,以满足日益扩大的应用领域和场景。在机器学习方面,已经出现了多种不同的硬件架构,以适应不同神经网络模型的运算操作。就运算操作而言,以何种方式来对待参与运算的数据进行布局成为需要解决的一个重要方面。当前对于数据布局,存在几种常见的布局方式。以人工布局方式为例,其需要用户来适配特定的硬件架构并且遵循软件的约定,从而增加了人力成本。当在包括主机和设备的异构***中执行布局时,通常是或者主机端在编译时自动布局,或者由设备端在运行时自动布局。当在主机端自动布局时,这对编译器提出很高的要求,并且这样的布局方式性能较差。而在设备端自动布局时,则对设备端带来显著的工作量,从而有可能造成设备的整体性能下降。
鉴于上文,当前需要一种对数据进行合理布局的方案。
发明内容
至少为了解决上述的一个或多个问题,本披露提出了分布式数据布局方式,即通过有效机制来将数据布局任务合理分配在主机和设备端处,从而在不影响主机和设备性能的情况下,有效地实现数据布局。
为此,在第一方面中,本披露公开了一种用于在主机和设备之间进行数据布局的方法,包括:遍历计算图中的多个数据节点,以确定每个数据节点在所述计算图中的出入度信息,其中每个所述数据节点具有关联的数据;以及根据所述出入度信息来确定由主机和设备中的一个执行针对于所述数据的布局操作。
在第二方面中,本披露公开了一种用于在主机和设备之间进行数据布局的设备,包括:至少一个处理器;至少一个存储器,其用于存储计算机程序指令,当所述计算机程序指令由所述至少一个处理器执行时,使得所述设备执行前述方法及其稍后描述的多个实施例。
在第三方面中,本披露公开了一种计算机可读存储介质,其存储有用于在主机和设备之间进行数据布局的计算机程序指令,当所述计算机程序指令由至少一个处理器来执行时,实现前述方法及其稍后描述的多个实施例。
在第四方面中,本披露公开了一种用于在主机和设备之间进行数据布局的编译器,包括:遍历单元,其配置成对包括多个数据节点的计算图进行遍历,以便确定每个数据节点的出入度信息,其中每个所述数据节点具有关联的数据;以及数据布局优化单元,其配置成根据所述出入度信息来确定由主机和设备中的一个执行针对于所述数据的布局操作。
在第五方面中,本披露公开了一种用于机器学习的异构***,包括互联的主机和设备,其中所述主机包括:前述及下文多个实施例中将要描述的编译器;以及第一布局单元,其配置成根据所述主机布局指令或所述标签信息来执行数据布局;以及所述设备包括:第二布局单元,其配置成根据从所述主机接收到的所述设备布局指令来执行数据布局。
在第六方面中,本披露公开了一种集成电路设备,包括上述及其稍后多个实施例中描述的编译器。
在第七方面中,本披露公开了一种板卡,包括上述异构***及其稍后描述的多个实施例。
通过利用本披露上面描述的方案,可以实现对数据的灵活布局。特别地,由于考虑了数据节点在计算图中的位置和/或与该数据节点的数据量的大小,本公开的数据布局操作相比于现有技术更为合理和有效,实现了对数据布局的优化。例如,对于计算图中的中间数据节点,本公开将对其数据的布局操作布置于设备端进行。相比而言,对于位于计算图中边缘处的数据节点,当其数据量较大时,本公开将其关联的数据的布局操作布置于主机端进行。由此,相对于现有技术,本公开自动分布式的数据布局方式减少了人工布局的人力成本并且降低了对主机端编译***的高性能要求。另外,由于利用了主机端进行协同布局,本公开的设备端在运算量和性能方面得以提升,并最终令包括主机和设备的异构***的性能得以改进。
附图说明
通过结合附图,可以更好地理解本发明的上述特征,并且其众多目的,特征和优点对于本领域技术人员而言是显而易见的,其中相同的附图标记表示相同的元件,并且其中:
图1是示出根据本披露实施例的用于在主机和设备之间进行数据布局的方法的简化流程图;
图2是示出根据本披露实施例的计算图结构的示意图;
图3是示出根据本披露实施例的用于在主机和设备之间进行数据布局的方法的详细流程图;
图4是示出根据本披露实施例的编译器的结构框图;
图5是示出根据本披露实施例的用于机器学习的异构***的架构框图;
图6是示出根据本披露实施例的一种组合处理装置的结构图;以及
图7是示出根据本披露实施例的一种板卡的结构示意图。
具体实施方式
至少针对于现有技术中数据布局存在的多种问题,本披露提出在包括主机和设备的异构***中执行自动化的分布式布局方案。具体来说,至少根据数据节点在计算图的出入度信息,将与数据节点关联的数据的布局操作分配给主机和设备之一来完成。在一个实施场景中,当根据出入度信息判断数据节点位于计算图的中间位置(如数据节点非计算图的初始节点或最终节点)时,可以考虑将针对于该数据节点的数据布局操作布置于设备端来完成,以减少数据节点相关联数据在主机和设备之间的数据拷贝,降低IO开销。与之对应,当判断数据节点位于计算图的边缘位置(如数据节点为计算图的初始节点或最终节点)处,则可以考虑将该数据节点的数据布局操作布置于主机端来完成。在一个或多个实施例,还可以考虑该数据节点处的数据量来确定由主机或设备中的哪一方来执行数据布局操作。基于上述的方案,本公开对数据布局进行了显著的优化。
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
图1是示出根据本披露实施例的用于在主机和设备之间进行数据布局的方法100的简化流程图,此处的主机和设备可以构成如图5中示例性示出的异构***500(稍后结合图5来具体描述)。如图1所示,在步骤S102处,方法100遍历计算图中的多个数据节点,以确定每个数据节点在所述计算图中的出入度信息,其中每个所述数据节点具有关联的数据。为了便于理解本披露的方案,下面将首先结合图2来对计算图进行介绍。
图2示出了本披露的实施例的计算图200。在机器学习领域中,计算图是描述计算过程的有向图,其通常包含一组节点和边。具体地,节点可以表示数据的输入起点、输出终点、模型参数等。另外,节点也可以表示各类操作处理,包括数学运算、变量读写、数据填充等。鉴于此,计算图中的节点可以大致分为数据节点202和操作节点204,在图中分别以圆形和长方形示出。对于计算图中的边(如图中的206所指示),其通常可以分为两类,其中一类是传递具体数据的边而另一类是表示节点之间控制依赖关系的边。
根据数据节点在计算图中的相应位置,可以确定其在计算图中的出入度信息。根据本披露的方案,在一个实施例中,此处的出入度信息可以包括数据节点在计算图中的入度和出度。这里,入度可以表示该数据节点所参与的前续操作节点的数量,此时该数据节点是前续操作节点的输出。出度可以表示数据节点所参与的后续操作节点的数量,此时该数据节点是后续的操作节点的输入。以图中的数据节点202为例,由于其是计算图中的初始节点,即前续操作节点的数量为0,因此其入度为0。进一步,由于其后续操作节点(即操作节点204)的数量为1,因此数据节点202的出度为1。类似地,由于数据节点208的前续操作节点和后续操作节点的数量均为1,因此其入度和出度都为1。同样地,对于数据节点210,由于其是计算图中的最终节点,即后续操作节点的数量为0,因此其出度为0,并且由于其具有1个前续操作节点,因此其入度为1。
上文结合图2对本披露的出入度信息以及出度和入度进行了描述,下面返回到图1继续方法100的描述。在确定每个数据节点在数据图中的出入度信息后,方法100前进到步骤S104处。在该步骤处,方法100根据所述出入度信息来确定由主机和设备中的一个执行针对于所述数据的布局操作。换句话说,方法100利用该数据节点的出入度信息来判断其数据由主机和设备中的哪一方来执行布局操作。
在一个实施例中,当数据节点在计算图中的出度和入度都大于0时,则可以确定由所述设备来执行布局操作。如上文所述,当出度和入度都大于0时,可以确定该数据节点位于计算图中的中间位置,也即该数据节点即不是初始节点也不是最终节点。由于上述计算图由设备执行,因此本披露将计算图中间位置的数据节点相关联数据的数据布局安排在设备处执行,可以减少数据节点相关联数据在主机和设备之间的数据拷贝,降低IO开销操作。同时,考虑到该数据节点在计算图中的运算参与度,本披露提出将针对这样的数据节点的数据布局操作安排在设备处执行,从而可以提高设备处数据处理和运算的效率,同时也缓解主机端编译操作的工作量。
在一个实施例中,当上述的出度和入度中的一个等于0时,则确定由主机来执行布局操作。如上文所述,当一个数据节点的出度或入度中的一个等于0时,也即隐含指示该数据节点是计算图中的初始节点(入度为0,如图2中的数据节点202)或最终节点(出度为0,如图2中的数据节点210)。鉴于该数据节点是计算图中的初始节点或最终节点,本披露提出将针对此类数据节点的数据布局操作安排在主机处执行,由此既减轻了设备端数据布局的工作量,同时又可以提升异构***的整体性能。此后,主机可以将数据节点完成数据布局操作之后的关联数据从主机端拷贝至设备端,从而使得设备端可以直接根据该完成数据布局操作之后的关联数据进行运算,进而可以提高了设备的运算效率。
在一个实施例中,当数据节点的出度和入度中的一个等于0时,所述方法还可以包括将所述数据的数据量与阈值进行比较,以确定由主机和设备中的哪一方来执行针对该数据节点的数据布局操作。具体来说,当数据节点的出度和入度中的一个等于0,且所述数据量大于或等于阈值时,则可以确定由主机执行布局操作。对应地,当数据节点的出度和入度中的一个等于0,且数据量小于阈值时,则可以确定由设备执行布局操作。可以看出,在该实施例中,本披露的方案不仅考虑数据节点在计算图中的位置,还考虑到在该数据节点处的数据量大小。特别地,即使数据节点是计算图中的初始节点或最终节点,也不直接将其划分给主机来进行数据布局。相反,本披露提出对数据节点的数据量大小进行统计和比较,当数据量在该数据节点处过大时,例如超过了预定的阈值,则此时选择由主机而非设备来执行数据布局。换句话说,在该情形中,本披露将数据布局操作布置于主机端,从而有效缓解设备端的布局压力,由此也充分发挥主机的处理能力,以加快数据处理和运算。
图3是示出根据本披露实施例的用于在主机和设备之间进行数据布局的方法300的详细流程图。为了便于描述,图中假设计算图中包括共计N个数据节点,其中对于第n个数据节点,其出度表示为“o”,入度表示为“i”,数据节点处的数据量表示为“s”,其中n=1,2,……N。
如图3中所示,在步骤S302,方法300初始化指示具体数据节点的变量n为1。接着,在步骤S304和S305处,方法300分别确定第1个数据节点的入度i和出度o,关于具体的确定操作已经结合图2进行了详细地描述,此处不再赘述。在获得关于出度和入度的出入度信息后,流程前进到步骤S308处,方法300在此处确定出度和入度二者是否都大于0。当二者都大于0时,则在步骤S310处,方法300确定在设备端执行数据布局,也即将关于第1个数据节点的数据布局安排在设备端处执行。在一个实现场景中,这可以通过编译器生成相应的布局指令来实现。接着,在步骤S312处,方法300判断n是否小于N,即此时的数据节点是否是计算图中遍历的最后一个数据节点。如果判断为“否”,则在步骤S314处,方法300令变量n增1(此时n的值变为“2”),以便在步骤S304处开始对第2个数据节点执行流程中所示的操作。
当在步骤S308处判断第1个数据节点的出度和入度中的至少一个不大于0(即等于0),即判断结果为否,则流程前进到步骤S316。此处,方法300确定第1个数据节点的数据量大小s。此处,根据数据结构的不同可以有不同的数据量确定方式和与阈值的比较方式。例如,对于张量数据(如三维张量数据),可以计算其在三个维度的元素总数,并且乘以单位元素的存储占用空间来获得该张量数据的数据量大小。接着,在步骤S318处,方法300可以将该数据量大小与预定的阈值来进行比较,该阈值可以是以字节或比特位计的数值。当比较结果为“否”时,则在步骤S310处,方法300确定在设备端执行数据布局操作。换句话说,本披露将初始或最终数据节点中数据量小的节点的数据布局操作安排在设备端执行。当在步骤S318处确定数据量大小s大于阈值,则在步骤S320处,方法300确定在主机端执行关于该第1个数据节点的数据布局,并且在步骤S312处判断该数据节点是否是计算图中的最终数据节点,否则流程前进到步骤S314处对变量n增1,并返回到步骤S304处,执行对下一数据节点的处理。
针对计算图中的每个数据节点来反复执行图3中所示步骤,直到n=N,即遍历了计算图中的所有数据节点,从而方法300结束于步骤S322。需要理解的是图3中所示步骤及其执行顺序仅仅是示例性的而非限制性的,本领域技术人员根据本披露公开的内容也容易想到替代或改变相关步骤及其顺序。例如,尽管以先后顺序示出步骤S304和S306,但替代地也可以先执行步骤S306后执行步骤S304,或者同时执行二者。另外,尽管图3中是对数据节点逐个地确定其数据的布局方式,但替代地也可以成组地或并发地对多个数据节点的布局方式进行确定。
图4是示出根据本披露实施例的编译器400的结构框图。在本披露的异构网络中,该编译器可以是运行于主机端的软件程序,并且经编译器编译后得到的可执行程序(包括数据布局指令的二进制指令)可以经由驱动程序接口传递到设备端以进行执行。可以理解的是,编译器400可以执行结合图1-图3所描述的操作,因此前文关于图1-图3的技术描述同样也适用于编译器400,并且相同的内容下文不再赘述。
如图4中所示,编译器400可以是神经网络编译器,其可以应用于TVM、Mindspore等框架编译器,也可以应用于Tensorflow、Pytorch等神经网络框架中,此处不做具体限定。该编译器400包括遍历单元402,其配置成对包括多个数据节点的计算图(如图2中所示出的)进行遍历,以便确定每个数据节点的出入度信息,其中每个所述数据节点具有关联的数据。该编译器400还包括数据布局优化单元404,其可以配置成根据出入度信息来生成数据布局指令,其中数据布局指令由主机和设备中的一个用于执行针对于所述数据的布局操作。
在一个实施例中,遍历单元可以包括出入度计数器406,其可以配置成对每个所述数据节点的出度和入度进行计数。进一步,数据布局优化单元可以包括阈值判定器408,其可以配置成将所述出度和入度与零进行比较,以得到第一比较结果(也即图3中步骤S308的执行结果)。在一个实施例中,本披露的编译器400还可以包括指令生成器410,其可以配置成根据第一比较结果来生成数据布局指令。
在一个实施例中,当上述的第一比较结果是出度和入度都大于零时,指令生成器可以配置成生成由设备用于执行布局操作的数据布局指令。相对应地,当第一比较结果是出度和入度之一等于零,则指令生成器可以配置成生成由主机用于执行布局操作的数据布局指令。
在一个实施例中,本披露的遍历单元还可以包括数据量计算器412,其可以配置成对数据节点的数据量大小进行计算和统计。阈值判定器可以配置成在出度和入度中的一个等于零时,将前述的数据量大小与阈值进行比较,以得到第二比较结果。在该情形下,当第二比较结果是数据量大小大于或等于阈值时,则所述指令生成器可以配置成生成由主机用于执行布局操作的数据布局指令。相应地,当第二比较结果是数据量大小小于阈值时,则指令生成器可以配置成根据第二比较结果来生成由设备用于执行布局操作的数据布局指令。可以看出,编译器400通过生成相应的数据布局指令的方式来实现图3步骤S320和步骤S310处的操作。
可以理解的是,针对于在设备端和主机端的数据布局操作,指令生成器所生成的数据布局指令也不尽相同。在一个实施例中,本披露的数据布局指令可以包括主机布局指令和设备布局指令,其中主机布局指令使得所述主机针对数据来进行布局操作,而所述设备布局指令被用于加入到设备待执行的指令组中,以便传送到设备处进行布局操作。在一个应用场景中,在主机端,经编译器生成的主机布局指令可以被传送至主机端内的用于执行数据布局的转换单元,以便在原始数据输入进主机端时,由转换单元根据主机布局指令进行布局。对应地,生成的设备布局指令可以被***或放置到由设备将要执行的指令组中,以便经由例如驱动程序接口下发到设备端。由此,设备端根据接收到的设备布局指令来对数据进行布局。
替代地或可选地,本披露的编译器400还可以包括标签发送器414。在该实施例中,当数据节点在计算图中的出度和入度中的一个等于零(也即前述的第一比较结果)时,标签发送器可以配置成将所述数据节点的标签信息发送至所述主机的第一布局单元(如图5中所示的第一布局单元506),以便主机的第一布局单元根据前述的标签信息来进行布局。可以看出,在该实施例中,指令生成器并不需要再生成如前所述的、针对于主机的数据布局指令。换句话说,指令生成器在该实施例中仅需要生成用于设备的数据布局指令,在该实施例中,指令生成器可以根据数据节点的标签信息生成用于设备的数据布局指令。
当然,基于本披露公开的内容,本领域技术人员能够想到令指令生成器也可以根据数据节点的标签信息来生成相应的数据布局指令,包括但不限于用于主机的数据布局指令和用于设备的数据布局指令,具体的指令生成过程可参见上文的描述。
针对于上述的标签信息,本披露的编译器可以首先遍历神经网络的计算图,并分别确定该神经网络中各个数据节点的标签信息。在一个实施例中,该数据节点的标签信息可以包括动态标签信息和静态标签信息,并且编译器将数据的标签信息绑定至对应的数据节点。
在一个实施方式中,上述的静态标签信息可以用于表征数据参与神经网络运算的相关联信息,其可以包括以下至少一项:数据类别、静态数据类型、静态数据维度、静态数据维度顺序以及对应每个静态数据维度的维度值等信息。作为示例,该静态标签信息可以下面的格式给出:
Static:classification,type1,DIM_A1…An,{x1…xn}
其中,static为表示标签信息为静态标签信息的标识。classification表示数据类别,type1表示静态数据类型。DIM_A1…An中的n表示静态数据维度,A1…An表示静态数据维度顺序为A1…An。A1的维度值为x1…An的维度值为xn。例如,某数据节点的静态标签信息为:Static:IW,Float32,DIM_HW,{10,4},则表示该数据节点相关的数据为输入权值(数据类别)、32位浮点数(静态数据类型)、二维行优先(静态数据维度及静态数据维度顺序)、行具有10个数(维度值)、列具有4个数(维度值)。
在一个实施方式中,前述的动态标签信息用于表征所述数据与处理器相关联的信息,其可以根据多核处理器的架构具体确定。动态标签信息可以包括以下至少一项:动态数据类型、动态数据维度顺序、分片参数、填充参数和数据尺寸、拆分索引、目标存储空间的标识以及目标交换层级等信息。作为示例,动态标签信息可以下面的格式给出:
dynamic:type2,DIM_B1…Bn,tiling,padding,size
其中,dynamic表示该标签信息为动态标签信息的标识。type2表示动态数据类型。DIM_B1…Bn表示动态数据维度顺序为B1…Bn。Tiling为分片参数。Padding为填充参数,size为数据尺寸。例如,假定静态标签信息为Static:IW,Float32,DIM_HW,{10,4}。进一步,假定执行该神经网络计算图的处理器采用列优先方式存储数据,能够对16位浮点数进行处理,每次最多可进行8个数的计算,则待处理数据的动态标签信息中tiling=8,padding=tiling-(10-tiling)=6,size=(10+6)×4×2(16位浮点数所占用的字节)=128Byte。由此,该待处理数据的动态标签信息可以表示为dynamic:Float16,DIM_WH,8,6,128Byte。
图5是示出根据本披露实施例的用于机器学习的异构***500的架构框图。如图5中所示,该异构***500包括互联的主机502和设备508,其中所述主机包括结合图4所描述的编译器400。根据不同的实施例,编译器可以配置成生成主机数据布局指令和设备数据布局指令,或者可以配置成向主机发送标签信息和生成设备数据布局指令。鉴于此,所述主机配置成根据主机数据布局指令或标签信息来执行数据布局,并且所述设备配置成根据从主机接收到的设备数据布局指令来执行数据布局。在一个实施例中,所述主机包括第一布局单元506,其配置成根据所述主机数据布局指令来执行数据布局或配置成根据标签信息来执行数据布局。当使用所述标签信息时,在动态标签中动态数据维度顺序和静态标签中的静态数据维度顺序不一致时,主机端的第一布局单元可以将数据节点的数据维度顺序从静态数据维度顺序转换为动态数据维度顺序,从而实现数据布局操作。
在一个应用场景中,该第一布局单元可以是主机端的数据转换单元,以实现对数据的例如空间转换(如行转列或列转行)等的布局操作。相应地,在一个实施例中,所述设备可以包括第二布局单元510,其可以配置成根据从所述主机接收到的所述设备数据布局指令来执行数据布局。与第一布局单元类似,该第二布局单元在一些应用场景中也可以实现为设备端的一个数据转换单元。
在一个实施例中,本披露的主机和设备可以通过驱动程序(如“driver_api”)来进行信息交互。基于此,本披露的编译器可以将设备数据布局指令***在设备端将要执行的指令组中,并且在编译生成可执行程序后,经由驱动程序传递至设备处。由此,设备基于该数据布局指令来进行针对运算所需的数据布局操作。
图6是示出根据本披露实施例的一种组合处理装置的结构图。如图6中所示,该组合处理装置600包括计算处理装置602、接口装置604、其他处理装置606和存储装置608。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置610,该计算装置可以配置用于执行各类计算操作,例如人工智能领域内的机器学习所涉及的各类运算。
在不同的实施例中,本披露的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。
在示例性的操作中,本披露的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本披露的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。在该情形下,此处的计算处理装置可以视为相当于本披露结合图1-图5所描述的设备,而其他处理装置可以视为相当于本披露结合图1-图5所描述的主机。
在一个或多个实施例中,该其他处理装置可以作为本披露的计算处理装置(其可以具体化为人工智能例如神经网络运算的相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。在一些场景中,该接口装置还可以实现为计算处理装置和其他处理装置之间的应用编程接口,包括例如驱动程序接口,以便在二者之间传递由计算处理装置将要执行的各类指令和程序。
附加地或可选地,本披露的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
在一些实施例里,本披露还公开了一种芯片(例如图7中示出的芯片702)。在一种实现中,该芯片是一种***级芯片(System on Chip,SoC)。该芯片可以通过对外接口装置(如图7中示出的对外接口装置706)与其他相关部件相连接。该相关部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。在一些应用场景中,该芯片上可以集成有其他处理单元(例如视频编解码器)和/或接口模块(例如DRAM接口)等。在一些实施例中,本披露还公开了一种芯片封装结构,其包括了上述芯片。在一些实施例里,本披露还公开了一种板卡,其包括上述的芯片封装结构。下面将结合图7对该板卡进行详细地描述。
图7是示出根据本披露实施例的一种板卡700的结构示意图,其可以包括本披露结合图1-图5所描述的异构***。如图7中所示,该板卡包括用于存储数据的存储器件704,其包括一个或多个存储单元710。该存储器件可以通过例如总线等方式与控制器件708和上文所述的芯片702进行连接和数据传输。进一步,该板卡还包括对外接口装置706,其配置用于芯片(或芯片封装结构中的芯片)与外部设备712(例如服务器或计算机)之间的数据中继或转接功能。例如,待处理的数据可以由外部设备通过对外接口装置传递至芯片。又例如,所述芯片的计算结果可以经由所述对外接口装置传送回外部设备。根据不同的应用场景,所述对外接口装置可以具有不同的接口形式,例如其可以采用标准PCIE接口等。
在一个或多个实施例中,本披露板卡中的控制器件可以配置用于对所述芯片的状态进行调控。为此,在一个应用场景中,该控制器件可以包括单片机(Micro ControllerUnit,MCU),以用于对所述芯片的工作状态进行调控。
根据上述结合图6和图7的描述,本领域技术人员可以理解本披露也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个***,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款A1、一种用于在主机和设备之间进行数据布局的方法,包括:
遍历计算图中的多个数据节点,以确定每个数据节点在所述计算图中的出入度信息,其中每个所述数据节点具有关联的数据;以及
根据所述出入度信息来确定由主机和设备中的一个执行针对于所述数据的布局操作。
条款A2、根据条款A1所述的方法,其中所述出入度信息包括所述数据节点在所述计算图中的出度和入度。
条款A3、根据条款A2所述的方法,其中根据所述出入度信息来确定由主机和设备中的一个执行所述布局操作包括:
当所述出度和入度都大于零时,确定由所述设备执行所述布局操作。
条款A4、根据条款A3所述的方法,其中当所述出度和入度中的一个等于零时,确定由所述主机执行所述布局操作。
条款A5、根据条款A3所述的方法,其中当所述出度和入度中的一个等于零时,所述方法还包括:
将所述数据的数据量与阈值进行比较;
当所述数据量大于或等于所述阈值时,确定由所述主机执行所述布局操作;以及
当所述数据量小于所述阈值时,确定由所述设备执行所述布局操作。
条款A6、一种用于在主机和设备之间进行数据布局的设备,包括:
至少一个处理器;
至少一个存储器,其用于存储计算机程序指令,当所述计算机程序指令由所述至少一个处理器执行时,使得所述设备执行根据条款A1-A5的任意一项所述的方法。
条款A7、一种计算机可读存储介质,其存储有用于在主机和设备之间进行数据布局的计算机程序指令,当所述计算机程序指令由至少一个处理器来执行时,实现根据条款A1-A5的任意一项所述的方法。
条款A8、一种用于在主机和设备之间进行数据布局的编译器,包括:
遍历单元,其配置成对包括多个数据节点的计算图进行遍历,以便确定每个数据节点的出入度信息,其中每个所述数据节点具有关联的数据;以及
数据布局优化单元,其配置成根据所述出入度信息来确定由主机和设备中的一个执行针对于所述数据的布局操作。
条款A9、根据条款A8所述的编译器,其中所述出入度信息包括所述数据节点在所述计算图中的出度和入度。
条款A10、根据条款A9所述的编译器,其中所述遍历单元包括出入度计数器,其配置成对每个所述数据节点的出度和入度进行计数;
所述数据布局优化单元包括阈值判定器,其配置成将所述出度和入度与零进行比较以得到第一比较结果,并根据所述第一比较结果来确定由主机和设备中的一个执行针对于所述数据的布局操作。
条款A11、根据条款A10所述的编译器,其中所述编译器还包括指令生成器,其配置成根据所述第一比较结果来生成所述数据布局指令。
条款A12、根据条款A11所述的编译器,其中:
所述第一比较结果是所述出度和入度都大于零,所述指令生成器配置成根据所述第一比较结果来生成由所述设备用于执行所述布局操作的数据布局指令;或者
所述第一比较结果是所述出度和入度中的一个等于零,所述指令生成器配置成根据所述第一比较结果来生成由所述主机用于执行所述布局操作的数据布局指令。
条款A13、根据条款A12所述的编译器,其中所述遍历单元还包括数据量计算器,其配置成计算每个数据节点的所述数据的数据量大小;并且其中:
所述阈值判定器还配置成在所述第一比较结果是所述出度和入度中的一个等于零时,将所述数据量大小与阈值比较,以得到第二比较结果;以及
所述指令生成器配置成根据所述第二比较结果来生成所述数据布局指令。
条款A14、根据条款A13所述的编译器,其中:
当所述第二比较结果是所述数据量大小大于或等于阈值时,所述指令生成器配置成根据所述第二比较结果来生成由所述主机用于执行所述布局操作的数据布局指令;以及
当所述第二比较结果是所述数据量大小小于所述阈值时,所述指令生成器配置成根据所述第二比较结果来生成由所述设备用于执行所述布局操作的数据布局指令。
条款A15、根据条款A8-A14的任意一项所述的编译器,其中所述数据布局指令包括主机布局指令和设备布局指令,其中所述主机布局指令使得所述主机针对数据来进行布局操作;所述设备布局指令被用于加入到设备待执行的指令组中,以便传送到设备处进行布局操作。
条款A16、根据条款A10所述的编译器,其中所述主机包括用于执行布局操作的第一布局单元,并且所述编译器还包括指令生成器和标签发送器,其中:
在所述第一比较结果是所述出度和入度都大于零时,所述指令生成器配置成根据所述第一比较结果来生成由所述设备用于执行所述布局操作的数据布局指令;以及
在所述第一比较结果是所述出度和入度中的一个等于零时,所述标签发送器配置成将所述数据节点的标签信息发送至所述主机的所述第一布局单元。
条款A17、根据条款A16所述的编译器,其中所述遍历单元还包括数据量计算器,其配置成计算每个数据节点的所述数据的数据量大小;并且其中:
所述阈值判定器还配置成在所述第一比较结果是所述出度和入度中的一个等于零时,将所述数据量大小与阈值比较,以得到第二比较结果;
当所述第二比较结果是所述数据量大小小于所述阈值时,所述指令生成器配置成根据所述第二比较结果来生成由所述设备用于执行所述布局操作的数据布局指令;
所述第二比较结果是所述数据量大小大于或等于阈值时,所述标签发送器配置成将所述数据节点的标签信息发送至主机的第一布局单元。
条款A18、一种用于机器学习的异构***,包括互联的主机和设备,其中:
所述主机包括:
根据条款A8-A17的任意一项所述的编译器;以及
第一布局单元,其配置成根据所述主机布局指令或所述标签信息
来执行数据布局;以及
所述设备包括:
第二布局单元,其配置成根据从所述主机接收到的所述设备数据布局指令来执行数据布局。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。

Claims (18)

1.一种用于在主机和设备之间进行数据布局的方法,包括:
遍历计算图中的多个数据节点,以确定每个数据节点在所述计算图中的出入度信息,其中每个所述数据节点具有关联的数据;以及
根据所述出入度信息来确定由主机和设备中的一个执行针对于所述数据的布局操作。
2.根据权利要求1所述的方法,其中所述出入度信息包括所述数据节点在所述计算图中的出度和入度。
3.根据权利要求2所述的方法,其中根据所述出入度信息来确定由主机和设备中的一个执行所述布局操作包括:
当所述出度和入度都大于零时,确定由所述设备执行所述布局操作。
4.根据权利要求3所述的方法,其中当所述出度和入度中的一个等于零时,确定由所述主机执行所述布局操作。
5.根据权利要求3所述的方法,其中当所述出度和入度中的一个等于零时,所述方法包括:
将所述数据的数据量与阈值进行比较;
当所述数据量大于或等于所述阈值时,确定由所述主机执行所述布局操作;以及
当所述数据量小于所述阈值时,确定由所述设备执行所述布局操作。
6.一种用于在主机和设备之间进行数据布局的设备,包括:
至少一个处理器;
至少一个存储器,其用于存储计算机程序指令,当所述计算机程序指令由所述至少一个处理器执行时,使得所述设备执行根据权利要求1-5的任意一项所述的方法。
7.一种计算机可读存储介质,其存储有用于在主机和设备之间进行数据布局的计算机程序指令,当所述计算机程序指令由至少一个处理器来执行时,实现根据权利要求1-5的任意一项所述的方法。
8.一种用于在主机和设备之间进行数据布局的编译器,包括:
遍历单元,其配置成对包括多个数据节点的计算图进行遍历,以便确定每个数据节点的出入度信息,其中每个所述数据节点具有关联的数据;以及
数据布局优化单元,其配置成根据所述出入度信息来确定由主机和设备中的一个执行针对于所述数据的布局操作。
9.根据权利要求8所述的编译器,其中所述出入度信息包括所述数据节点在所述计算图中的出度和入度。
10.根据权利要求9所述的编译器,其中所述遍历单元包括出入度计数器,其配置成对每个所述数据节点的出度和入度进行计数;
所述数据布局优化单元包括阈值判定器,其配置成将所述出度和入度与零进行比较以得到第一比较结果,并根据所述第一比较结果来确定由主机和设备中的一个执行针对于所述数据的布局操作。
11.根据权利要求10所述的编译器,其中所述编译器还包括指令生成器,其配置成根据所述第一比较结果来生成所述数据布局指令。
12.根据权利要求11所述的编译器,其中:
所述第一比较结果是所述出度和入度都大于零,所述指令生成器配置成根据所述第一比较结果来生成由所述设备用于执行所述布局操作的数据布局指令;或者
所述第一比较结果是所述出度和入度中的一个等于零,所述指令生成器配置成根据所述第一比较结果来生成由所述主机用于执行所述布局操作的数据布局指令。
13.根据权利要求12所述的编译器,其中所述遍历单元还包括数据量计算器,其配置成计算每个数据节点的所述数据的数据量大小;并且其中:
所述阈值判定器还配置成在所述第一比较结果是所述出度和入度中的一个等于零时,将所述数据量大小与阈值比较,以得到第二比较结果;以及
所述指令生成器配置成根据所述第二比较结果来生成所述数据布局指令。
14.根据权利要求13所述的编译器,其中:
当所述第二比较结果是所述数据量大小大于或等于阈值时,所述指令生成器配置成根据所述第二比较结果来生成由所述主机用于执行所述布局操作的数据布局指令;以及
当所述第二比较结果是所述数据量大小小于所述阈值时,所述指令生成器配置成根据所述第二比较结果来生成由所述设备用于执行所述布局操作的数据布局指令。
15.根据权利要求8-14的任意一项所述的编译器,其中所述数据布局指令包括主机布局指令和设备布局指令,其中所述主机布局指令使得所述主机针对数据来进行布局操作;所述设备布局指令被用于加入到设备待执行的指令组中,以便传送到设备处进行布局操作。
16.根据权利要求10所述的编译器,其中所述主机包括用于执行布局操作的第一布局单元,并且所述编译器还包括指令生成器和标签发送器,其中:
在所述第一比较结果是所述出度和入度都大于零时,所述指令生成器配置成根据所述第一比较结果来生成由所述设备用于执行所述布局操作的数据布局指令;以及
在所述第一比较结果是所述出度和入度中的一个等于零时,所述标签发送器配置成将所述数据节点的标签信息发送至所述主机的所述第一布局单元。
17.根据权利要求16所述的编译器,其中所述遍历单元还包括数据量计算器,其配置成计算每个数据节点的所述数据的数据量大小;并且其中:
所述阈值判定器还配置成在所述第一比较结果是所述出度和入度中的一个等于零时,将所述数据量大小与阈值比较,以得到第二比较结果;
当所述第二比较结果是所述数据量大小小于所述阈值时,所述指令生成器配置成根据所述第二比较结果来生成由所述设备用于执行所述布局操作的数据布局指令;
所述第二比较结果是所述数据量大小大于或等于阈值时,所述标签发送器配置成将所述数据节点的标签信息发送至主机的第一布局单元。
18.一种用于机器学习的异构***,包括互联的主机和设备,其中:
所述主机包括:
根据权利要求8-17的任意一项所述的编译器;以及
第一布局单元,其配置成根据所述主机布局指令或所述标签信息来执行数据布局;以及
所述设备包括:
第二布局单元,其配置成根据从所述主机接收到的所述设备数据布局指令来执行数据布局。
CN202011463516.1A 2020-12-11 2020-12-11 在主机和设备之间进行数据布局的方法、设备和异构*** Pending CN114625370A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011463516.1A CN114625370A (zh) 2020-12-11 2020-12-11 在主机和设备之间进行数据布局的方法、设备和异构***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011463516.1A CN114625370A (zh) 2020-12-11 2020-12-11 在主机和设备之间进行数据布局的方法、设备和异构***

Publications (1)

Publication Number Publication Date
CN114625370A true CN114625370A (zh) 2022-06-14

Family

ID=81895190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011463516.1A Pending CN114625370A (zh) 2020-12-11 2020-12-11 在主机和设备之间进行数据布局的方法、设备和异构***

Country Status (1)

Country Link
CN (1) CN114625370A (zh)

Similar Documents

Publication Publication Date Title
CN112799726A (zh) 数据处理装置、方法及相关产品
CN114580606A (zh) 数据处理方法、装置、计算机设备和存储介质
CN112465133B (zh) 控制流多核并行方法、计算机设备和存储介质
CN112463159B (zh) 编译方法、装置、电子设备和存储介质
CN112070202B (zh) 一种融合图的生成方法、生成装置和计算机可读存储介质
CN114035916A (zh) 计算图的编译、调度方法及相关产品
CN116185942A (zh) 数据处理方法、装置、存储介质以及电子设备
CN111767995B (zh) 运算方法、装置及相关产品
CN112463160A (zh) 编译方法、装置、电子设备和存储介质
WO2024149112A1 (zh) 卷积算子的编译方法及相关产品
CN113469336A (zh) 优化神经网络模型的编译方法、执行方法及相关产品
CN112084023A (zh) 数据并行处理的方法、电子设备及计算机可读存储介质
US20230259737A1 (en) Integrated computing apparatus, chip, board card, device and computing method
CN114625370A (zh) 在主机和设备之间进行数据布局的方法、设备和异构***
CN112948001A (zh) 设定张量硬件配置的方法、可读存储介质及装置
CN115840894A (zh) 一种用于处理多维张量数据的方法及其相关产品
CN114281561A (zh) 处理单元、用于处理单元的同步方法及相应产品
CN112465116A (zh) 运算方法、装置、电子设备和存储介质
CN113742266B (zh) 集成电路装置、电子设备、板卡和计算方法
CN112232498B (zh) 一种数据处理装置、集成电路芯片、电子设备、板卡和方法
CN114282679A (zh) 数据处理方法、装置和存储介质
CN116302459A (zh) 用于人工智能计算***的内存管理的方法及其相关产品
CN115543329A (zh) 对运行于人工智能芯片上的区域候选网络进行优化的编译方法及其相关产品
CN114281405A (zh) 数据处理方法、装置和存储介质
CN118210552A (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