CN114791849A - 任务映射、任务处理方法及处理核、电子设备 - Google Patents

任务映射、任务处理方法及处理核、电子设备 Download PDF

Info

Publication number
CN114791849A
CN114791849A CN202110111060.0A CN202110111060A CN114791849A CN 114791849 A CN114791849 A CN 114791849A CN 202110111060 A CN202110111060 A CN 202110111060A CN 114791849 A CN114791849 A CN 114791849A
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
Application number
CN202110111060.0A
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.)
Beijing Lynxi Technology Co Ltd
Original Assignee
Beijing Lynxi 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 Lynxi Technology Co Ltd filed Critical Beijing Lynxi Technology Co Ltd
Priority to CN202110111060.0A priority Critical patent/CN114791849A/zh
Priority to PCT/CN2022/073984 priority patent/WO2022161394A1/zh
Publication of CN114791849A publication Critical patent/CN114791849A/zh
Pending legal-status Critical Current

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/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (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层第二矩阵的转置矩阵中的坐标。
在一些实施例中,所述任务映射方法还包括:
根据每一层处理核中存储的所述第二对应关系,确定各个目标计算结果在片外存储中的存储空间的地址;所述目标计算结果为第1层处理核计算其对应的第1层非零第二子矩阵的转置并存储的计算结果;
控制各个第1层处理核根据所述第1层处理核存储的目标计算结果在所述片外存储中的存储空间的地址,将所述第1层处理核存储的目标计算结果写入所述片外存储,其中,各个所述目标计算结果在所述片外存储中拼接成所述第一矩阵的转置矩阵。
在一些实施例中,根据第一矩阵确定多层第二矩阵的步骤包括:
根据所述第一矩阵的尺寸确定目标尺寸,所述目标尺寸为每一层第二子矩阵的尺寸;
根据所述第一矩阵和所述目标尺寸,确定多层第二矩阵。
在一些实施例中,每一层第二子矩阵为方阵。
在一些实施例中,将每一层第二矩阵中的至少一个第二子矩阵和所述运算指令映射到众核系统中的多个处理核的步骤之后,所述任务映射方法还包括:
根据多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系,确定目标处理核;所述目标处理核为多个所述处理核中存储目标数据的至少一者;所述目标数据为待处理任务的任务数据对应的所述第一矩阵的子矩阵的转置矩阵;
将所述任务数据传输到所述目标处理核,以使所述目标处理核读取所述目标数据,并执行所述任务数据对应的运算。
在一些实施例中,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系为每一层第二矩阵中的各个非零第二子矩阵与多个所述处理核的映射关系;对应第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层处理核作为所述目标处理核。
第二方面,本公开实施例提供一种任务处理方法,包括:
接收运算指令和多层第二矩阵中第N层处理核与第一坐标的第一对应关系;
根据所述运算指令、所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;
其中,所述多层第二矩阵中每一层第二矩阵划分为至少一个第二子矩阵;第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应;众核系统中的多个处理核中的每一个所述处理核对应一个第二子矩阵;所述第一坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;N为正整数。
第三方面,本公开实施例提供一种处理核,包括:
包括计算单元和缓存;
所述计算单元能够实现本公开实施例第一方面所述的任务映射方法;和/或本公开实施例第二方面所述的任务处理方法。
第四方面,本公开实施例提供一种电子设备,包括:
多个处理核;以及
片上网络,被配置为交互所述多个处理核间的数据和外部数据;
一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行第一方面所述的任务映射方法;和/或
本公开实施例第二方面所述的任务处理方法。
在本公开实施例中,由众核系统中的控制核根据需要执行转置运算的第一矩阵确定多层第二矩阵和运算指令,每一层第二矩阵的第二子矩阵的规模都远远小于第一矩阵的规模;将各层第二矩阵的第二子矩阵和运算指令映射到众核系统中的多个处理核执行转置运算,最终得到第一矩阵的转置运算结果,从而能够实现对矩阵中元素坐标维度的较高压缩率,大大降低内存开销;转置运算的计算结果存储在众核系统的各个处理核中,无需写入内存等片外存储中,还避免了数据的重复搬运,提高了超大规模稀疏矩阵转置运算的效率。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,在附图中:
图1是本公开实施例中一种任务映射方法的流程图;
图2是本公开实施例中多层第二矩阵到处理核的映射示意图;
图3是本公开实施例中另一种任务映射方法中部分步骤的流程图;
图4是本公开实施例中又一种任务映射方法中部分步骤的流程图;
图5是本公开实施例中再一种任务映射方法中部分步骤的流程图;
图6是本公开实施例中再一种任务映射方法中部分步骤的流程图;
图7是本公开实施例中再一种任务映射方法中部分步骤的流程图;
图8是本公开实施例中一种任务处理方法的流程图;
图9是本公开实施例提供的一种处理核的组成框图;
图10是本公开实施例提供的一种电子设备的组成框图。
具体实施方式
为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由……制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
经本公开的发明人研究发现,在一些相关技术中,稀疏矩阵规模越大,存储稀疏矩阵中的每个元素的坐标需要的比特位数越多。例如,存储百亿维矩阵中的元素的坐标需要行、列各35比特(bit)。对于超大规模的稀疏矩阵,不仅要占用大量的存储空间来存储元素的坐标,而且执行涉及稀疏矩阵的运算的速率也较慢。此外,在一些相关技术中,执行稀疏矩阵的转置运算后,需要将转置运算的结果传输到内存(例如双倍速率同步动态随机存储器(DDR,Double Data Rate))中,并在内存中拼接出完整的稀疏矩阵的转置矩阵;在执行后续运算时,需要从内存中读取稀疏矩阵的转置矩阵。上述反复搬运数据的过程进一步降低了涉及稀疏矩阵的运算效率。
有鉴于此,第一方面,参照图1,本公开提供了一种任务映射方法,包括:
在步骤S110中,根据第一矩阵确定多层第二矩阵,每一层第二矩阵划分为至少一个第二子矩阵;其中,第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应,第1层第二子矩阵为所述第一矩阵的子矩阵;
在步骤S120中,确定各个第二子矩阵对应的运算指令;
在步骤S130中,将每一层第二矩阵中的至少一个第二子矩阵及第二子矩阵对应的运算指令映射到众核系统中的多个处理核,每一个所述处理核对应一个第二子矩阵及对应的运算指令,以使所述处理核根据其对应的所述运算指令计算其对应的第二子矩阵的转置并存储计算结果;其中,N为正整数。
本公开实施例提供一种利用众核系统执行稀疏矩阵的转置运算的方案。在本公开实施例中,众核系统可以是单个芯片构成的,芯片具有多个处理核,处理核是众核系统中可独立调度并拥有完整计算能力的最小计算单元;众核系统还可以是由多个芯片构成的,每个芯片可以具有多个处理核。本公开实施例对此不做特殊限定。
需要说明的是,在本公开实施例中,众核系统中的多个处理核可以分别独立运行程序指令,也可以联合工作,利用并行计算的能力加快程序的运行速度,并提供多任务处理能力。还需要说明的是,在本公开实施例中,众核系统中的每个处理核都具有独立的缓存,能够存储处理核执行运算得到的计算结果等数据。
在本公开实施例中,步骤S110至步骤S130是在众核系统中的控制核执行的。其中,控制核可以是众核系统中的任意一个处理核。例如,控制核可以是步骤S130中的多个处理核以外的任意一个处理核;也可以是步骤S130中的多个处理核中的一者,具体来说,在总共有M层第二矩阵、且第1层第二矩阵为第一矩阵的情况下,第M层第二矩阵对应的第M层处理核为控制核。本公开实施例对此不做特殊限定。
在本公开实施例中,通过步骤S110至步骤S130旨在计算第一矩阵的转置,其中,第一矩阵为稀疏矩阵。通过步骤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确定各个第二子矩阵对应的运算指令,运算指令包括处理核计算第二子矩阵的转置所需的算子、参数等。例如,运算指令指示处理核计算多大规模的转置运算。在本公开实施例中,控制核根据第一矩阵动态确定执行转置运算的处理核,并确定各个处理核的运算指令。其中,第一矩阵的尺寸可以为任意维。
在本公开实施例中,控制核通过执行步骤S130将多层第二子矩阵和运算指令分别映射到众核系统的多个处理核,由处理核计算对应的第二子矩阵的转置,并存储计算结果。由矩阵的运算法则可知,本公开实施例中由众核系统中的多个处理核分别计算各层第二子矩阵的转置,能够得到第一矩阵的转置。
需要说明的是,在本公开实施例中,各层第二子矩阵的规模均小于第一矩阵的规模,众核系统中存储各层第二子矩阵及转置运算的结果需要的存储空间大大小于存储第一矩阵及转置运算的结果需要的存储空间,而且各处理核在执行第二子矩阵的转置运算时的计算量也大大小于执行第一矩阵的转置运算时的计算量。例如,如图2所示将16*16第一矩阵划分为16个4*4子矩阵,对应第1层第二矩阵;第2层第二矩阵也为4*4矩阵。存储16*16第一矩阵中的元素的坐标需要行、列各4bits,而处理核存储一个4*4子矩阵中的元素的坐标需要行、列各2bits。本公开实施例由多个第一处理核计算子矩阵的转置、由第二处理核计算分块矩阵的转置的分层矩阵转置方案能够实现对矩阵中元素坐标维度的较高压缩率,能够大大降低内存开销。
在本公开实施例提供的任务映射方法中,由众核系统中的控制核根据需要执行转置运算的第一矩阵确定多层第二矩阵和运算指令,每一层第二矩阵的第二子矩阵的规模都远远小于第一矩阵的规模;将各层第二矩阵的第二子矩阵和运算指令映射到众核系统中的多个处理核执行转置运算,最终得到第一矩阵的转置运算结果,从而能够实现对矩阵中元素坐标维度的较高压缩率,大大降低内存开销;转置运算的计算结果存储在众核系统的各个处理核中,无需写入内存等片外存储中,还避免了数据的重复搬运,提高了超大规模稀疏矩阵转置运算的效率。
在本公开实施例中,通过步骤S130将每一层第二矩阵中的至少一个第二子矩阵和运算指令映射到众核系统中的多个处理核时,可以将每一层第二矩阵中的所有第二子矩阵映射到众核系统中的多个处理核;也可以将每一层第二矩阵中的非零第二子矩阵映射到众核系统中的多个处理核。需要说明的是,在第一矩阵为稀疏矩阵的情况下,第一矩阵的子矩阵包括多个零矩阵;在确定多层第二矩阵时,若第N+1层第二矩阵中的元素对应的第N层第二子矩阵为非零矩阵,则该元素为1;若第N+1层第二矩阵中的元素对应的第N层第二子矩阵为零矩阵,则该元素为0。因此,每一层第二矩阵的第二子矩阵可能包括零矩阵。在步骤S130中,将每一层第二矩阵中的非零第二子矩阵映射到众核系统中的多个处理核,能够进一步降低对存储资源和计算资源的占用。图2示出了将每一层第二矩阵中的非零第二子矩阵映射到众核系统中的多个处理核的一种可选实施方式。
相应地,在一些实施例中,参照图3,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;步骤S130包括:
在步骤S131中,将每一层第二矩阵中的各个非零第二子矩阵分别传输到多个所述处理核;
在步骤S132中,将各个非零第二子矩阵对应的运算指令配置到多个所述处理核中。
在本公开实施例中,对应第N层第二子矩阵的处理核为第N层处理核。第1层第二子矩阵即第一矩阵的子矩阵,第1层处理核计算第一矩阵的子矩阵并存储第一矩阵的子矩阵的转置矩阵;第N+1层处理核根据转置前第N层处理核对应的第N+1层第二矩阵中的坐标,确定转置后第N层处理核对应的第N+1层第二矩阵的转置矩阵中的坐标。当后续运算需要第一矩阵的转置运算结果时,能够根据各层处理核存储的处理核与坐标的对应关系,逐层确定存储第1层第二子矩阵的转置矩阵的第1层处理核,即第一矩阵的子矩阵的转置矩阵。
相应地,在一些实施例中,对应第N层第二子矩阵的处理核为第N层处理核;参照图4,步骤S131包括:
在步骤S131a中,将第1层第二矩阵中的第1层非零第二子矩阵传输到第1层处理核,以使第1层处理核计算其对应的第1层非零第二子矩阵的转置;
在步骤S131b中,将第N层处理核与第一坐标的第一对应关系传输到第N+1层处理核,以使第N+1层处理核根据所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;所述第一坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标。
在本公开实施例中,控制核还可以控制多个处理核将多个处理核中的转置运算的结果输出到内存等片外存储中。在后续计算中,可以从片外存储获取第一矩阵的转置结果。需要说明的是,在将多个处理核中的转置运算的结果输出到内存等片外存储时,直接存储为第一矩阵的转置矩阵。
还需要说明的是,在将每一层第二矩阵中的非零第二子矩阵映射到众核系统中的多个处理核的情况下,将多个处理核中的转置运算的结果输出到内存等片外存储时需要补充各第一矩阵的子矩阵中的零矩阵。其中,由控制核确定各个处理核中存储的转置运算的结果在片外存储中的地址,从而确保各个处理核将存储的转置元素的结果写入片外存储后,能够拼接成第一矩阵的转置矩阵。
相应地,在一些实施例中,参照图5,所述任务映射方法还包括:
在步骤S141中,根据每一层处理核中存储的所述第二对应关系,确定各个目标计算结果在片外存储中的存储空间的地址;所述目标计算结果为第1层处理核计算其对应的第1层非零第二子矩阵的转置并存储的计算结果;
在步骤S142中,控制各个第1层处理核根据所述第1层处理核存储的目标计算结果在所述片外存储中的存储空间的地址,将所述第1层处理核存储的目标计算结果写入所述片外存储,其中,各个所述目标计算结果在所述片外存储中拼接成所述第一矩阵的转置矩阵。
在本公开实施例中,各层第二子矩阵的尺寸可以相同,也可以不同。本公开实施例对此不做特殊限定。
相应地,在一些实施例中,参照图5,步骤S110包括:
在步骤S111中,根据所述第一矩阵的尺寸确定目标尺寸,所述目标尺寸为每一层第二子矩阵的尺寸;
在步骤S112中,根据所述第一矩阵和所述目标尺寸,确定多层第二矩阵。
在本公开实施例中,对第二子矩阵的尺寸不做特殊限定。可以根据众核系统的计算能力、存储大小、以及对运算效率的需求确定第二子矩阵的大小。
本公开实施例对第二子矩阵也不做特殊限定。在一些实施例中,每一层第二子矩阵为方阵。
在本公开实施例中,转置运算的计算结果存储在众核系统的各个处理核中,当需要执行涉及到转置运算的结果的后续运算时,将后续运算的数据传输到对应的处理核中,由该处理核执行该后续运算,无需将各个处理核计算得到的第一矩阵的子矩阵的转置矩阵先传输到内存等片外存储、再从片外存储读取第一矩阵的转置结果,从而还避免了数据的重复搬运,提高了超大规模稀疏矩阵转置运算的效率。
相应地,在一些实施例中,参照图6,在步骤S130之后,所述任务映射方法还包括:
在步骤S161中,根据多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系,确定目标处理核;所述目标处理核为多个所述处理核中存储目标数据的至少一者;所述目标数据为待处理任务的任务数据对应的所述第一矩阵的子矩阵的转置矩阵;
在步骤S162中,将所述任务数据传输到所述目标处理核,以使所述目标处理核读取所述目标数据,并执行所述任务数据对应的运算。
在一些实施例中,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系为每一层第二矩阵中的各个非零第二子矩阵与多个所述处理核的映射关系;对应第N层第二子矩阵的处理核为第N层处理核;第1层处理核存储有计算其对应的第1层非零第二子矩阵的转置得到的计算结果;第N+1层处理核中存储有根据第N层处理核与第一坐标的第一对应关系确定的第N层处理核与第二坐标的第二对应关系;所述第一坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层非零第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;所述目标处理核为至少一个第1层处理核中的一者;参照图7,步骤S161包括:
在步骤S161a中,在N大于1的情况下,根据所述目标数据对应的第N层处理核存储的所述第二对应关系,确定所述目标数据对应的第N-1层处理核;
在步骤S161b中,在N等于1的情况下,将存储所述目标数据的第1层处理核作为所述目标处理核。
需要说明的是,在总共有M层第二矩阵、第1层第二矩阵为第一矩阵的情况下,从第M层处理核起,在N大于1的情况下,通过迭代执行步骤161a逐层确定目标数据对应的各层处理核,直到N等于1,将存储目标数据的第1层处理核作为目标处理核。即,在N大于1的情况下,执行一次步骤S161a,并将N减小1;若减小1后N仍大于1,则继续执行步骤S161a;若减小1后N等于1,则执行步骤S161b。
第二方面,参照图8,本公开实施例提供一种任务处理方法,包括:
在步骤S210中,接收运算指令和多层第二矩阵中第N层处理核与第一坐标的第一对应关系;
在步骤S220中,根据所述运算指令、所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;
其中,所述多层第二矩阵中每一层第二矩阵划分为至少一个第二子矩阵;第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应;众核系统中的多个处理核中的每一个所述处理核对应一个第二子矩阵;所述第一坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;N为正整数。
在本公开实施例提供的任务处理方法中,众核系统的处理核能够根据运算指令和转置前第N层处理核对应的第N+1层第二矩阵中的坐标,确定转置后第N层处理核对应的第N+1层第二矩阵的转置矩阵中的坐标,使得众核系统能够根据需要执行转置运算的第一矩阵确定多层第二矩阵,并将各层第二矩阵的第二子矩阵映射到众核系统中的多个处理核执行转置运算,最终得到第一矩阵的转置运算结果,从而能够实现对矩阵中元素坐标维度的较高压缩率,大大降低内存开销;转置运算的计算结果存储在众核系统的处理核中,无需写入内存等片外存储中,还避免了数据的重复搬运,提高了超大规模稀疏矩阵转置运算的效率。
第三方面,参照图9,本公开实施例提供一种处理核,包括:
包括计算单元101和缓存102;
所述计算单元101能够实现本公开实施例第一方面所述的任务映射方法;和/或
本公开实施例第二方面所述的任务处理方法。
第四方面,参照图10,本公开实施例提供一种电子设备,包括:
多个处理核201;以及
片上网络202,被配置为交互所述多个处理核201间的数据和外部数据;
一个或多个所述处理核201中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核201执行,以使一个或多个所述处理核201能够执行第一方面所述的任务映射方法;和/或
本公开实施例第二方面所述的任务处理方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
本文已经公开了示例实施例,并且虽然采用了具体术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。

Claims (11)

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.根据权利要求3所述的任务映射方法,其中,所述任务映射方法还包括:
根据每一层处理核中存储的所述第二对应关系,确定各个目标计算结果在片外存储中的存储空间的地址;所述目标计算结果为第1层处理核计算其对应的第1层非零第二子矩阵的转置并存储的计算结果;
控制各个第1层处理核根据所述第1层处理核存储的目标计算结果在所述片外存储中的存储空间的地址,将所述第1层处理核存储的目标计算结果写入所述片外存储,其中,各个所述目标计算结果在所述片外存储中拼接成所述第一矩阵的转置矩阵。
5.根据权利要求1至4中任意一项所述的任务映射方法,其中,根据第一矩阵确定多层第二矩阵的步骤包括:
根据所述第一矩阵的尺寸确定目标尺寸,所述目标尺寸为每一层第二子矩阵的尺寸;
根据所述第一矩阵和所述目标尺寸,确定多层第二矩阵。
6.根据权利要求1至4中任意一项所述的任务映射方法,其中,每一层第二子矩阵为方阵。
7.根据权利要求1至3中任意一项所述的任务映射方法,其中,将每一层第二矩阵中的至少一个第二子矩阵和所述运算指令映射到众核系统中的多个处理核的步骤之后,所述任务映射方法还包括:
根据多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系,确定目标处理核;所述目标处理核为多个所述处理核中存储目标数据的至少一者;所述目标数据为待处理任务的任务数据对应的所述第一矩阵的子矩阵的转置矩阵;
将所述任务数据传输到所述目标处理核,以使所述目标处理核读取所述目标数据,并执行所述任务数据对应的运算。
8.根据权利要求7所述的任务映射方法,其中,每一层第二矩阵的至少一个第二子矩阵中包括至少一个非零第二子矩阵;多层第二矩阵中的至少一个第二子矩阵与众核系统中的多个处理核的映射关系为每一层第二矩阵中的各个非零第二子矩阵与多个所述处理核的映射关系;对应第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层处理核作为所述目标处理核。
9.一种任务处理方法,包括:
接收运算指令和多层第二矩阵中第N层处理核与第一坐标的第一对应关系;
根据所述运算指令、所述第一对应关系确定第N层处理核与第二坐标的第二对应关系;
其中,所述多层第二矩阵中每一层第二矩阵划分为至少一个第二子矩阵;第N+1层第二矩阵中的元素与多个第N层第二子矩阵一一对应;众核系统中的多个处理核中的每一个所述处理核对应一个第二子矩阵;所述第一坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵中的坐标;所述第二坐标为第N层第二子矩阵对应的第N+1层第二矩阵中的元素在第N+1层第二矩阵的转置矩阵中的坐标;N为正整数。
10.一种处理核,包括:
包括计算单元和缓存;
所述计算单元能够实现根据权利要求1至8中任意一项所述的任务映射方法;和/或
根据权利要求9所述的任务处理方法。
11.一种电子设备,包括:
多个处理核;以及
片上网络,被配置为交互所述多个处理核间的数据和外部数据;
一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行根据权利要求1至8中任意一项所述的任务映射方法;和/或
根据权利要求9所述的任务处理方法。
CN202110111060.0A 2021-01-26 2021-01-26 任务映射、任务处理方法及处理核、电子设备 Pending CN114791849A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110111060.0A CN114791849A (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
CN202110111060.0A CN114791849A (zh) 2021-01-26 2021-01-26 任务映射、任务处理方法及处理核、电子设备

Publications (1)

Publication Number Publication Date
CN114791849A true CN114791849A (zh) 2022-07-26

Family

ID=82460310

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110111060.0A Pending CN114791849A (zh) 2021-01-26 2021-01-26 任务映射、任务处理方法及处理核、电子设备

Country Status (1)

Country Link
CN (1) CN114791849A (zh)

Similar Documents

Publication Publication Date Title
US10599935B2 (en) Processing artificial neural network weights
CN110415157B (zh) 一种矩阵乘法的计算方法及装置
CN102918495A (zh) 用于执行算术运算的硬件
US20230068450A1 (en) Method and apparatus for processing sparse data
US20230041850A1 (en) Adaptive matrix multiplication accelerator for machine learning and deep learning applications
CN112596872A (zh) 任务调度、预处理、处理方法及设备、处理单元、介质
CN115186802A (zh) 基于卷积神经网络的块稀疏方法、装置及处理单元
CN113222102A (zh) 用于神经网络模型量化的优化方法
CN117217318B (zh) 基于Transformer网络模型的文本生成方法和装置
CN114791849A (zh) 任务映射、任务处理方法及处理核、电子设备
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN114791786A (zh) 任务映射、任务控制、任务处理方法及处理核、电子设备
US20190221006A1 (en) Selecting encoding options
CN116301727A (zh) 数据处理方法及加速单元
CN114546251A (zh) 权重矩阵数据存储方法、数据获取方法和装置、电子设备
WO2022161394A1 (zh) 任务映射方法、任务处理方法、处理核和电子设备
CN114527930A (zh) 权重矩阵数据存储方法、数据获取方法和装置、电子设备
CN110929854B (zh) 一种数据处理方法、装置及硬件加速器
US20230161479A1 (en) Zero skipping techniques for reducing data movement
CN114169510A (zh) 存储装置及其操作方法
CN111832714A (zh) 运算方法及装置
CN113469333B (zh) 执行神经网络模型的人工智能处理器、方法及相关产品
US20220222041A1 (en) Method and apparatus for processing data, and related product
US20150019604A1 (en) Function accelerator
US20230259579A1 (en) Runtime predictors for computation reduction in dependent computations

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