CN114791786A - 任务映射、任务控制、任务处理方法及处理核、电子设备 - Google Patents
任务映射、任务控制、任务处理方法及处理核、电子设备 Download PDFInfo
- Publication number
- CN114791786A CN114791786A CN202110103025.4A CN202110103025A CN114791786A CN 114791786 A CN114791786 A CN 114791786A CN 202110103025 A CN202110103025 A CN 202110103025A CN 114791786 A CN114791786 A CN 114791786A
- Authority
- CN
- China
- Prior art keywords
- matrix
- layer
- sub
- processing core
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0626—Reducing size or complexity of storage systems
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Complex Calculations (AREA)
Abstract
本公开提供了一种任务映射方法,包括:根据第一矩阵确定多层第二矩阵,每一层第二矩阵划分为至少一个第二子矩阵;其中,第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应,第1层第二子矩阵为所述第一矩阵的子矩阵;将每一层第二矩阵中的至少一个第二子矩阵映射到众核系统中的多个处理核,每一个所述处理核对应一个第二子矩阵,以使所述处理核计算其对应的第二子矩阵的转置并存储计算结果;其中,N为正整数。本公开还提供一种任务控制方法、一种任务处理方法、一种电子设备、一种处理核、一种电子设备。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种任务映射方法、一种任务控制方法、一种任务处理方法、一种电子设备、一种处理核、一种电子设备。
背景技术
稀疏矩阵是指零元素的数目远远多于非零元素的数目、且非零元素的分布无规律的矩阵。稀疏矩阵在现实生活被广泛使用,特别地,稀疏矩阵经常出现在高性能计算和机器学习中,例如,包含计数的数据、映射类别的数据编码、以及自然语言处理(NLP,NaturalLanguage Processing)等机器学习的子领域。
在对稀疏矩阵进行转置等运算存储稀疏矩阵时,需要存储稀疏矩阵中各个元素的值及其在稀疏矩阵中的坐标。但是,在一些相关技术中,当稀疏矩阵规模较大时,稀疏矩阵需要占用较多的存储空间,且计算量较大,涉及稀疏矩阵的运算的效率较低。
发明内容
本公开提供一种任务映射方法、一种任务控制方法、一种任务处理方法、一种电子设备、一种处理核、一种电子设备。
第一方面,本公开提供了一种任务映射方法,包括:
根据第一矩阵确定多层第二矩阵,每一层第二矩阵划分为至少一个第二子矩阵;其中,第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应,第1层第二子矩阵为所述第一矩阵的子矩阵;
将每一层第二矩阵中的至少一个第二子矩阵映射到众核系统中的多个处理核,每一个所述处理核对应一个第二子矩阵,以使所述处理核计算其对应的第二子矩阵的转置并存储计算结果;
其中,N为正整数。
在一些实施例中,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;将每一层第二矩阵中的至少一个第二子矩阵映射到众核系统中的多个处理核的步骤包括:
将每一层第二矩阵中的各个非零第二子矩阵分别映射到多个所述处理核。
在一些实施例中,对应第N层第二子矩阵的处理核为第N层处理核;将每一层第二矩阵中的各个非零第二子矩阵分别映射到多个所述处理核的步骤包括:
将第1层第二矩阵中的第1层非零第二子矩阵传输到第1层处理核,以使第1层处理核计算其对应的第1层非零第二子矩阵的转置;
将第N层处理核与第一坐标的第一对应关系传输到第N+1层处理核,以使第N+1层处理核根据所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;所述第一坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标。
在一些实施例中,根据第一矩阵确定多层第二矩阵的步骤包括:
根据所述第一矩阵的尺寸确定目标尺寸,所述目标尺寸为每一层第二子矩阵的尺寸;
根据所述第一矩阵和所述目标尺寸,确定多层第二矩阵。
在一些实施例中,每一层第二子矩阵为方阵。
第二方面,本公开实施例提供一种任务控制方法,包括:
根据多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系,确定目标处理核;所述目标处理核为多个所述处理核中存储目标数据的至少一者;所述目标数据为待处理任务的任务数据对应的第一矩阵的子矩阵的转置矩阵;
将所述任务数据传输到所述目标处理核,以使所述目标处理核读取所述目标数据,并执行所述任务数据对应的运算;
其中,所述多层第二矩阵为根据所述第一矩阵确定的,每一层第二矩阵划分为至少一个第二子矩阵;第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应,第1层第二子矩阵为所述第一矩阵的子矩阵;多个所述处理核中的每一个所述处理核对应一个第二子矩阵,所述处理核存储有计算其对应的第二子矩阵的转置得到的计算结果;N为正整数。
在一些实施例中,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系为每一层第二矩阵中的各个非零第二子矩阵与多个所述处理核的映射关系;对应第N层第二子矩阵的处理核为第N层处理核;第1层处理核存储有计算其对应的第1层非零第二子矩阵的转置得到的计算结果;第N+1层处理核中存储有根据第N层处理核与第一坐标的第一对应关系确定的第N层处理核与第二坐标的第二对应关系;所述第一坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;所述目标处理核为至少一个第1层处理核中的一者;根据多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系,确定目标处理核的步骤包括:
在N大于1的情况下,根据所述目标数据对应的第N层处理核存储的所述第二对应关系,确定所述目标数据对应的第N-1层处理核;
在N等于1的情况下,将存储所述目标数据的第1层处理核作为所述目标处理核。
在一些实施例中,所述任务控制方法还包括:
根据每一层处理核中存储的所述第二对应关系,确定各个目标计算结果在片外存储中的存储空间的地址;所述目标计算结果为第1层处理核计算其对应的第1层非零第二子矩阵的转置并存储的计算结果;
控制各个第1层处理核根据所述第1层处理核存储的目标计算结果在所述片外存储中的存储空间的地址,将所述第1层处理核存储的目标计算结果写入所述片外存储,其中,各个所述目标计算结果在所述片外存储中拼接成所述第一矩阵的转置矩阵。
第三方面,本公开实施例提供一种任务处理方法,包括:
接收多层第二矩阵中第N层处理核与第一坐标的第一对应关系;
根据所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;
其中,所述多层第二矩阵中每一层第二矩阵划分为至少一个第二子矩阵;第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应;众核系统中的多个处理核中的每一个所述处理核对应一个第二子矩阵;所述第一坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;N为正整数。
第四方面,本公开实施例提供一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开实施例第一方面所述的任务映射方法;
一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
第五方面,本公开实施例提供一种处理核,包括:
包括计算单元和缓存;
所述计算单元能够实现本公开实施例第二方面所述的任务控制方法;和/或
本公开实施例第三方面所述的任务处理方法。
第六方面,本公开实施例提供一种电子设备,包括:
多个处理核;以及
片上网络,被配置为交互所述多个处理核间的数据和外部数据;
一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行本公开实施例第二方面所述的任务控制方法;和/或
本公开实施例第三方面所述的任务处理方法
在本公开实施例中,提供一种利用众核系统执行稀疏矩阵的转置运算的方案,根据需要执行转置运算的第一矩阵确定多层第二矩阵,每一层第二矩阵的第二子矩阵的规模都远远小于第一矩阵的规模;将各层第二矩阵的第二子矩阵映射到众核系统中的多个处理核执行转置运算,最终得到第一矩阵的转置运算结果,从而能够实现对矩阵中元素坐标维度的较高压缩率,大大降低内存开销;转置运算的计算结果存储在众核系统的各个处理核中,无需写入内存等片外存储中,还避免了数据的重复搬运,提高了超大规模稀疏矩阵转置运算的效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1是本公开实施例中一种任务映射方法的流程图;
图2是本公开实施例中多层第二矩阵到处理核的映射示意图;
图3是本公开实施例中另一种任务映射方法中部分步骤的流程图;
图4是本公开实施例中又一种任务映射方法中部分步骤的流程图;
图5是本公开实施例中再一种任务映射方法中部分步骤的流程图;
图6是本公开实施例中一种任务控制方法的流程图;
图7是本公开实施例中另一种任务控制方法中部分步骤的流程图;
图8是本公开实施例中又一种任务控制方法中部分步骤的流程图;
图9是本公开实施例中一种任务处理方法的流程图;
图10是本公开实施例提供的一种电子设备的组成框图;
图11是本公开实施例提供的一种处理核的组成框图;
图12是本公开实施例提供的一种电子设备的组成框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
经本公开的发明人研究发现,在一些相关技术中,稀疏矩阵规模越大,存储稀疏矩阵中的每个元素的坐标需要的比特位数越多。例如,存储百亿维矩阵中的元素的坐标需要行、列各35比特(bit)。对于超大规模的稀疏矩阵,不仅要占用大量的存储空间来存储元素的坐标,而且执行涉及稀疏矩阵的运算的速率也较慢。此外,在一些相关技术中,执行稀疏矩阵的转置运算后,需要将转置运算的结果传输到内存(例如双倍速率同步动态随机存储器(DDR,Double Data Rate))中,并在内存中拼接出完整的稀疏矩阵的转置矩阵;在执行后续运算时,需要从内存中读取稀疏矩阵的转置矩阵。上述反复搬运数据的过程进一步降低了涉及稀疏矩阵的运算效率。
有鉴于此,第一方面,参照图1,本公开提供了一种任务映射方法,包括:
在步骤S110中,根据第一矩阵确定多层第二矩阵,每一层第二矩阵划分为至少一个第二子矩阵;其中,第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应,第1层第二子矩阵为所述第一矩阵的子矩阵;
在步骤S120中,将每一层第二矩阵中的至少一个第二子矩阵映射到众核系统中的多个处理核,每一个所述处理核对应一个第二子矩阵,以使所述处理核计算其对应的第二子矩阵的转置并存储计算结果;其中,N为正整数。
本公开实施例提供一种利用众核系统执行稀疏矩阵的转置运算的方案。在本公开实施例中,众核系统可以是单个芯片构成的,芯片具有多个处理核,处理核是众核系统中可独立调度并拥有完整计算能力的最小计算单元;众核系统还可以是由多个芯片构成的,每个芯片可以具有多个处理核。本公开实施例对此不做特殊限定。
需要说明的是,在本公开实施例中,众核系统中的多个处理核可以分别独立运行程序指令,也可以联合工作,利用并行计算的能力加快程序的运行速度,并提供多任务处理能力。还需要说明的是,在本公开实施例中,众核系统中的每个处理核都具有独立的缓存,能够存储处理核执行运算得到的计算结果等数据。
在本公开实施例中,通过步骤S110至步骤S120旨在计算第一矩阵的转置,其中,第一矩阵为稀疏矩阵。通过步骤S110确定的多层第二矩阵中,第1层第二矩阵即第一矩阵。第1层第二矩阵划分得到的多个第1层第二子矩阵即按照相同规则划分第一矩阵得到的第一矩阵的子矩阵。
作为一种可选的实施方式,每一层第二矩阵都为实数矩阵,其中,第二矩阵中的元素都为实数。例如,若第N+1层第二矩阵中的元素对应的第N层第二子矩阵为非零矩阵,则该元素为1;若第N+1层第二矩阵中的元素对应的第N层第二子矩阵为零矩阵,则该元素为0。还可以用其他数值作为第二矩阵中的元素,本公开实施例对此不做特殊限定。
如图2所示,第一矩阵被划分为16个4*4子矩阵,对应第1层第二矩阵;第2层第二矩阵包括16个元素,与第一矩阵的16个子矩阵一一对应。需要说明的是,划分第一矩阵得到的子矩阵可以为非零矩阵,也可以为零矩阵。当作为稀疏矩阵的第一矩阵较稀疏时,划分第一矩阵得到的零矩阵的数量可以大于非零矩阵的数量。划分每一层第二矩阵得到的第二子矩阵可以为非零矩阵,也可以为零矩阵。
需要说明的是,在步骤S110中,在总共有M层第二矩阵、且第1层第二矩阵为第一矩阵的情况下,第1层第二矩阵、第2层第二矩阵、……、第M-1层第二矩阵划分为多个第二子矩阵;第M层第二矩阵划分为一个第二子矩阵,即,第M层第二子矩阵为第M层第二矩阵本身。
在本公开实施例中,通过步骤S120将多层第二子矩阵分别映射到众核系统的多个处理核,由处理核计算对应的第二子矩阵的转置,并存储计算结果。由矩阵的运算法则可知,本公开实施例中由众核系统中的多个处理核分别计算各层第二子矩阵的转置,能够得到第一矩阵的转置。
作为一种可选的实施方式,通过预编译的方式,步骤S120中的多个处理核中已经配置有计算第二子矩阵的转置所需的算子、参数等运算指令,例如,处理核能够确定计算多大规模的转置运算。第二子矩阵以数据流的方式通过片上网络(NOC,Network On Chip)传输到处理核。
需要说明的是,在本公开实施例中,各层第二子矩阵的规模均小于第一矩阵的规模,众核系统中存储各层第二子矩阵及转置运算的结果需要的存储空间大大小于存储第一矩阵及转置运算的结果需要的存储空间,而且各处理核在执行第二子矩阵的转置运算时的计算量也大大小于执行第一矩阵的转置运算时的计算量。例如,如图2所示将16*16第一矩阵划分为16个4*4子矩阵,对应第1层第二矩阵;第2层第二矩阵也为4*4矩阵。存储16*16第一矩阵中的元素的坐标需要行、列各4bits,而处理核存储一个4*4子矩阵中的元素的坐标需要行、列各2bits。本公开实施例由多个第一处理核计算子矩阵的转置、由第二处理核计算分块矩阵的转置的分层矩阵转置方案能够实现对矩阵中元素坐标维度的较高压缩率,能够大大降低内存开销。
在本公开实施例提供的任务映射方法中,提供一种利用众核系统执行稀疏矩阵的转置运算的方案,根据需要执行转置运算的第一矩阵确定多层第二矩阵,每一层第二矩阵的第二子矩阵的规模都远远小于第一矩阵的规模;将各层第二矩阵的第二子矩阵映射到众核系统中的多个处理核执行转置运算,最终得到第一矩阵的转置运算结果,从而能够实现对矩阵中元素坐标维度的较高压缩率,大大降低内存开销;转置运算的计算结果存储在众核系统的各个处理核中,无需写入内存等片外存储中,还避免了数据的重复搬运,提高了超大规模稀疏矩阵转置运算的效率。
在本公开实施例中,通过步骤S120将每一层第二矩阵中的至少一个第二子矩阵分别映射到众核系统中的多个处理核时,可以将每一层第二矩阵中的所有第二子矩阵映射到众核系统中的多个处理核;也可以将每一层第二矩阵中的非零第二子矩阵映射到众核系统中的多个处理核。需要说明的是,在第一矩阵为稀疏矩阵的情况下,第一矩阵的子矩阵包括多个零矩阵;在确定多层第二矩阵时,若第N+1层第二矩阵中的元素对应的第N层第二子矩阵为非零矩阵,则该元素为1;若第N+1层第二矩阵中的元素对应的第N层第二子矩阵为零矩阵,则该元素为0。因此,每一层第二矩阵的第二子矩阵包括非零矩阵和/或零矩阵。在步骤S120中,将每一层第二矩阵中的非零第二子矩阵映射到众核系统中的多个处理核,能够进一步降低对存储资源和计算资源的占用。图2示出了将每一层第二矩阵中的非零第二子矩阵映射到众核系统中的多个处理核的一种可选实施方式。
相应地,在一些实施例中,参照图3,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;步骤S120包括:
在步骤S121中,将每一层第二矩阵中的各个非零第二子矩阵分别映射到多个所述处理核。
在本公开实施例中,对应第N层第二子矩阵的处理核为第N层处理核。第1层第二子矩阵即第一矩阵的子矩阵,第1层处理核计算第一矩阵的子矩阵并存储第一矩阵的子矩阵的转置矩阵;第N+1层处理核根据转置前第N层处理核对应的第N+1层第二矩阵中的坐标,确定转置后第N层处理核对应的第N+1层第二矩阵的转置矩阵中的坐标。当后续运算需要第一矩阵的转置运算结果时,能够根据各层处理核存储的处理核与坐标的对应关系,逐层确定存储第1层第二子矩阵的转置矩阵的第1层处理核,即第一矩阵的子矩阵的转置矩阵。
相应地,在一些实施例中,对应第N层第二子矩阵的处理核为第N层处理核;参照图4,步骤S121包括:
在步骤S121a中,将第1层第二矩阵中的第1层非零第二子矩阵传输到第1层处理核,以使第1层处理核计算其对应的第1层非零第二子矩阵的转置;
在步骤S121b中,将第N层处理核与第一坐标的第一对应关系传输到第N+1层处理核,以使第N+1层处理核根据所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;所述第一坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标。
在本公开实施例中,各层第二子矩阵的尺寸可以相同,也可以不同。本公开实施例对此不做特殊限定。
相应地,在一些实施例中,参照图5,步骤S110包括:
在步骤S111中,根据所述第一矩阵的尺寸确定目标尺寸,所述目标尺寸为每一层第二子矩阵的尺寸;
在步骤S112中,根据所述第一矩阵和所述目标尺寸,确定多层第二矩阵。
在本公开实施例中,对第二子矩阵的尺寸不做特殊限定。可以根据众核系统的计算能力、存储大小、以及对运算效率的需求确定第二子矩阵的大小。
本公开实施例对第二子矩阵也不做特殊限定。在一些实施例中,每一层第二子矩阵为方阵。
第二方面,参照图6,本公开实施例提供一种任务控制方法,包括:
在步骤S210中,根据多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系,确定目标处理核;所述目标处理核为多个所述处理核中存储目标数据的至少一者;所述目标数据为待处理任务的任务数据对应的第一矩阵的子矩阵的转置矩阵的至少一者;
在步骤S220中,将所述任务数据传输到所述目标处理核,以使所述目标处理核读取所述目标数据,并执行所述任务数据对应的运算;
其中,所述多层第二矩阵为根据所述第一矩阵确定的,每一层第二矩阵划分为至少一个第二子矩阵;第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应,第1层第二子矩阵为所述第一矩阵的子矩阵;多个所述处理核中的每一个所述处理核对应一个第二子矩阵,所述处理核存储有计算其对应的第二子矩阵的转置得到的计算结果;N为正整数。
在本公开实施例中,多个处理核计算第二子矩阵的转置后,将转置运算的结果存储在处理核中。当众核系统执行涉及转置运算的结果的待处理任务时,由控制核执行步骤S210至步骤S220,将待处理任务的任务数据传输到目标处理核中,由目标处理核执行任务数据对应的运算。本公开实施例对任务数据对应的运算不做特殊限定。例如,第一矩阵的子矩阵的转置矩阵与任务数据的矩阵乘运算、矩阵加/减运算。
控制核可以是众核系统中的任意一个处理核。在本公开实施例中,控制核可以是计算第二子矩阵的转置并存储计算结果的多个处理核以外的任意一个处理核;也可以是计算第二子矩阵的转置并存储计算结果的多个处理核中的一者。本公开实施例对此不做特殊限定。例如,在总共有M层第二矩阵、且第1层第二矩阵为第一矩阵的情况下,第M层第二矩阵对应的第M层处理核为控制核。
在本公开实施例提供的任务控制方法中,转置运算的计算结果存储在众核系统的各个处理核中,当需要执行涉及转置运算的待处理任务时,将待处理任务的任务数据传输到目标处理核中,由目标处理核执行任务数据对应的运算,无需将各个处理核计算得到的第一矩阵的子矩阵的转置矩阵先传输到内存等片外存储、再从片外存储读取第一矩阵的转置结果,从而避免了数据的重复搬运,提高了超大规模稀疏矩阵转置运算的效率
在一些实施例中,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系为每一层第二矩阵中的各个非零第二子矩阵与多个所述处理核的映射关系;对应第N层第二子矩阵的处理核为第N层处理核;第1层处理核存储有计算其对应的第1层非零第二子矩阵的转置得到的计算结果;第N+1层处理核中存储有根据第N层处理核与第一坐标的第一对应关系确定的第N层处理核与第二坐标的第二对应关系;所述第一坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;所述目标处理核为至少一个第1层处理核中的一者;参照图7,步骤S210包括:
在步骤S211中,在N大于1的情况下,根据所述目标数据对应的第N层处理核存储的所述第二对应关系,确定所述目标数据对应的第N-1层处理核;
在步骤S212中,在N等于1的情况下,将存储所述目标数据的第1层处理核作为所述目标处理核。
需要说明的是,在总共有M层第二矩阵、且第1层第二矩阵为第一矩阵的情况下,从第M层处理核起,在N大于1的情况下,通过迭代执行步骤S211逐层确定目标数据对应的各层处理核,直到N等于1,将存储目标数据的第1层处理核作为目标处理核。即,在N大于1的情况下,执行一次步骤S211,并将N减小1;若减小1后N仍大于1,则继续执行步骤S211;若减小1后N等于1,则执行步骤S212。
在本公开实施例中,控制核还可以控制多个处理核将多个处理核中的转置运算的结果输出到内存等片外存储中。在后续计算中,可以从片外存储获取第一矩阵的转置结果。需要说明的是,在将多个处理核中的转置运算的结果输出到内存等片外存储时,直接存储为第一矩阵的转置矩阵。
需要说明的是,在将每一层第二矩阵中的非零第二子矩阵映射到众核系统中的多个处理核的情况下,将多个处理核中的转置运算的结果输出到内存等片外存储时需要补充各第一矩阵的子矩阵中的零矩阵。其中,由控制核确定各个处理核中存储的转置运算的结果在片外存储中的地址,从而确保各个处理核将存储的转置元素的结果写入片外存储后,能够拼接成第一矩阵的转置矩阵。
相应地,在一些实施例中,参照图8,所述任务映射方法还包括:
在步骤S231中,根据每一层处理核中存储的所述第二对应关系,确定各个目标计算结果在片外存储中的存储空间的地址;所述目标计算结果为第1层处理核计算其对应的第1层非零第二子矩阵的转置并存储的计算结果;;
在步骤S232中,控制各个第1层处理核根据所述第1层处理核存储的目标计算结果在所述片外存储中的存储空间的地址,将所述第1层处理核存储的目标计算结果写入所述片外存储,其中,各个所述目标计算结果在所述片外存储中拼接成所述第一矩阵的转置矩阵。
第三方面,参照图9,本公开实施例提供一种任务处理方法,包括:
在步骤S310中,接收多层第二矩阵中第N层处理核与第一坐标的第一对应关系;
在步骤S320中,根据所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;
其中,所述多层第二矩阵中每一层第二矩阵划分为至少一个第二子矩阵;第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应;众核系统中的多个处理核中的每一个所述处理核对应一个第二子矩阵;所述第一坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;N为正整数。
在本公开实施例提供的任务处理方法中,众核系统的处理核能够根据转置前第N层处理核对应的第N+1层第二矩阵中的坐标,确定转置后第N层处理核对应的第N+1层第二矩阵的转置矩阵中的坐标,使得众核系统能够根据需要执行转置运算的第一矩阵确定多层第二矩阵,并将各层第二矩阵的第二子矩阵映射到众核系统中的多个处理核执行转置运算,最终得到第一矩阵的转置运算结果,从而能够实现对矩阵中元素坐标维度的较高压缩率,大大降低内存开销;转置运算的计算结果存储在众核系统的处理核中,无需写入内存等片外存储中,还避免了数据的重复搬运,提高了超大规模稀疏矩阵转置运算的效率。
第四方面,参照图10,本公开实施例提供一种电子设备,包括:
一个或多个处理器101;
存储器102,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本公开实施例第一方面所述的任务映射方法;
一个或多个I/O接口103,连接在处理器与存储器之间,配置为实现处理器与存储器的信息交互。
其中,处理器101为具有数据处理能力的器件,其包括但不限于中央处理器(CPU)等;存储器102为具有数据存储能力的器件,其包括但不限于随机存取存储器(RAM,更具体如SDRAM、DDR等)、只读存储器(ROM)、带电可擦可编程只读存储器(EEPROM)、闪存(FLASH);I/O接口(读写接口)103连接在处理器101与存储器102间,能实现处理器101与存储器102的信息交互,其包括但不限于数据总线(Bus)等。
在一些实施例中,处理器101、存储器102和I/O接口103通过总线104相互连接,进而与计算设备的其它组件连接。
第五方面,参照图11,本公开实施例提供一种处理核,包括:
包括计算单元201和缓存202;
所述计算单元201能够实现本公开实施例本公开实施例第二方面所述的任务控制方法;和/或本公开实施例第三方面所述的任务处理方法。
第六方面,参照图12,本公开实施例提供一种电子设备,包括:
多个处理核301;以及
片上网络302,被配置为交互所述多个处理核301间的数据和外部数据;
一个或多个所述处理核301中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核301执行,以使一个或多个所述处理核301能够执行本公开实施例第二方面所述的任务控制方法;和/或本公开实施例第三方面所述的任务处理方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
Claims (12)
1.一种任务映射方法,包括:
根据第一矩阵确定多层第二矩阵,每一层第二矩阵划分为至少一个第二子矩阵;其中,第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应,第1层第二子矩阵为所述第一矩阵的子矩阵;
将每一层第二矩阵中的至少一个第二子矩阵映射到众核系统中的多个处理核,每一个所述处理核对应一个第二子矩阵,以使所述处理核计算其对应的第二子矩阵的转置并存储计算结果;
其中,N为正整数。
2.根据权利要求1所述的任务映射方法,其中,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;将每一层第二矩阵中的至少一个第二子矩阵映射到众核系统中的多个处理核的步骤包括:
将每一层第二矩阵中的各个非零第二子矩阵分别映射到多个所述处理核。
3.根据权利要求2所述的任务映射方法,其中,对应第N层第二子矩阵的处理核为第N层处理核;将每一层第二矩阵中的各个非零第二子矩阵分别映射到多个所述处理核的步骤包括:
将第1层第二矩阵中的第1层非零第二子矩阵传输到第1层处理核,以使第1层处理核计算其对应的第1层非零第二子矩阵的转置;
将第N层处理核与第一坐标的第一对应关系传输到第N+1层处理核,以使第N+1层处理核根据所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;所述第一坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标。
4.根据权利要求1至3中任意一项所述的任务映射方法,其中,根据第一矩阵确定多层第二矩阵的步骤包括:
根据所述第一矩阵的尺寸确定目标尺寸,所述目标尺寸为每一层第二子矩阵的尺寸;
根据所述第一矩阵和所述目标尺寸,确定多层第二矩阵。
5.根据权利要求1至3中任意一项所述的任务映射方法,其中,每一层第二子矩阵为方阵。
6.一种任务控制方法,包括:
根据多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系,确定目标处理核;所述目标处理核为多个所述处理核中存储目标数据的至少一者;所述目标数据为待处理任务的任务数据对应的第一矩阵的子矩阵的转置矩阵;
将所述任务数据传输到所述目标处理核,以使所述目标处理核读取所述目标数据,并执行所述任务数据对应的运算;
其中,所述多层第二矩阵为根据所述第一矩阵确定的,每一层第二矩阵划分为至少一个第二子矩阵;第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应,第1层第二子矩阵为所述第一矩阵的子矩阵;多个所述处理核中的每一个所述处理核对应一个第二子矩阵,所述处理核存储有计算其对应的第二子矩阵的转置得到的计算结果;N为正整数。
7.根据权利要求6所述的任务控制方法,其中,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系为每一层第二矩阵中的各个非零第二子矩阵与多个所述处理核的映射关系;对应第N层第二子矩阵的处理核为第N层处理核;第1层处理核存储有计算其对应的第1层非零第二子矩阵的转置得到的计算结果;第N+1层处理核中存储有根据第N层处理核与第一坐标的第一对应关系确定的第N层处理核与第二坐标的第二对应关系;所述第一坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;所述目标处理核为至少一个第1层处理核中的一者;根据多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系,确定目标处理核的步骤包括:
在N大于1的情况下,根据所述目标数据对应的第N层处理核存储的所述第二对应关系,确定所述目标数据对应的第N-1层处理核;
在N等于1的情况下,将存储所述目标数据的第1层处理核作为所述目标处理核。
8.根据权利要求7所述的任务控制方法,其中,所述任务控制方法还包括:
根据每一层处理核中存储的所述第二对应关系,确定各个目标计算结果在片外存储中的存储空间的地址;所述目标计算结果为第1层处理核计算其对应的第1层非零第二子矩阵的转置并存储的计算结果;
控制各个第1层处理核根据所述第1层处理核存储的目标计算结果在所述片外存储中的存储空间的地址,将所述第1层处理核存储的目标计算结果写入所述片外存储,其中,各个所述目标计算结果在所述片外存储中拼接成所述第一矩阵的转置矩阵。
9.一种任务处理方法,包括:
接收多层第二矩阵中第N层处理核与第一坐标的第一对应关系;
根据所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;
其中,所述多层第二矩阵中每一层第二矩阵划分为至少一个第二子矩阵;第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应;众核系统中的多个处理核中的每一个所述处理核对应一个第二子矩阵;所述第一坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;N为正整数。
10.一种电子设备,包括:
一个或多个处理器;
存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现根据权利要求1至5中任意一项所述的任务映射方法;
一个或多个I/O接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
11.一种处理核,包括:
包括计算单元和缓存;
所述计算单元能够实现根据权利要求6至8中任意一项所述的任务控制方法;和/或
根据权利要求9所述的任务处理方法。
12.一种电子设备,包括:
多个处理核;以及
片上网络,被配置为交互所述多个处理核间的数据和外部数据;
一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行根据权利要求6至8中任意一项所述的任务控制方法;和/或
根据权利要求9所述的任务处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110103025.4A CN114791786A (zh) | 2021-01-26 | 2021-01-26 | 任务映射、任务控制、任务处理方法及处理核、电子设备 |
PCT/CN2022/073984 WO2022161394A1 (zh) | 2021-01-26 | 2022-01-26 | 任务映射方法、任务处理方法、处理核和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110103025.4A CN114791786A (zh) | 2021-01-26 | 2021-01-26 | 任务映射、任务控制、任务处理方法及处理核、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114791786A true CN114791786A (zh) | 2022-07-26 |
Family
ID=82459975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110103025.4A Pending CN114791786A (zh) | 2021-01-26 | 2021-01-26 | 任务映射、任务控制、任务处理方法及处理核、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114791786A (zh) |
-
2021
- 2021-01-26 CN CN202110103025.4A patent/CN114791786A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951962B (zh) | 用于神经网络的复合运算单元、方法和电子设备 | |
EP3640863B1 (en) | Computation device and method | |
CN111915001B (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN112214727A (zh) | 运算加速器 | |
US20210209450A1 (en) | Compressed weight distribution in networks of neural processors | |
US20230068450A1 (en) | Method and apparatus for processing sparse data | |
US20230041850A1 (en) | Adaptive matrix multiplication accelerator for machine learning and deep learning applications | |
TW201732645A (zh) | 矩陣處理裝置 | |
CN113222102A (zh) | 用于神经网络模型量化的优化方法 | |
CN114138231B (zh) | 执行矩阵乘法运算的方法、电路及soc | |
CN112596872A (zh) | 任务调度、预处理、处理方法及设备、处理单元、介质 | |
CN116862750A (zh) | 电力矩阵lu分解加速方法、装置、设备及存储介质 | |
CN114791786A (zh) | 任务映射、任务控制、任务处理方法及处理核、电子设备 | |
CN114791849A (zh) | 任务映射、任务处理方法及处理核、电子设备 | |
CN114169510A (zh) | 存储装置及其操作方法 | |
US20230169144A1 (en) | Operation method, processor, and related product | |
CN113454612B (zh) | 存储装置操作编排 | |
CN116301727A (zh) | 数据处理方法及加速单元 | |
WO2022161394A1 (zh) | 任务映射方法、任务处理方法、处理核和电子设备 | |
US20230161479A1 (en) | Zero skipping techniques for reducing data movement | |
CN111832714A (zh) | 运算方法及装置 | |
US20230259579A1 (en) | Runtime predictors for computation reduction in dependent computations | |
CN118013181A (zh) | 矩阵乘数据的处理方法、装置、电子设备和存储介质 | |
US20220222041A1 (en) | Method and apparatus for processing data, and related product | |
KR20240087527A (ko) | 입력 행렬의 밀도에 기반하여 선택적 희소 행렬 곱셈을 위한 장치 및 방법 |
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 |