CN110377877B - 一种数据处理方法、装置、设备及存储介质 - Google Patents

一种数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN110377877B
CN110377877B CN201910683612.8A CN201910683612A CN110377877B CN 110377877 B CN110377877 B CN 110377877B CN 201910683612 A CN201910683612 A CN 201910683612A CN 110377877 B CN110377877 B CN 110377877B
Authority
CN
China
Prior art keywords
matrix
data
symmetric matrix
memory
symmetric
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
Application number
CN201910683612.8A
Other languages
English (en)
Other versions
CN110377877A (zh
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201910683612.8A priority Critical patent/CN110377877B/zh
Publication of CN110377877A publication Critical patent/CN110377877A/zh
Application granted granted Critical
Publication of CN110377877B publication Critical patent/CN110377877B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请公开了一种数据处理方法、装置、设备及存储介质。该方法的步骤包括:接收第一对称矩阵;将第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器;单侧矩阵数据包括第一对称矩阵的主对角线位置的矩阵数据,以及主对角线的目标单侧位置的矩阵数据;接收第二对称矩阵;读取存储器中的单侧矩阵数据,并根据单侧矩阵生成第一对称矩阵;执行第二对称矩阵与第一对称矩阵的乘积运算,生成运算结果。本方法相对降低了因运算设备缓存对称矩阵数据而对数据处理资源造成的占用,进而相对确保了运算设备进行数据处理时的工作稳定性。此外,本申请还提供一种数据处理装置、设备及存储介质,有益效果同上所述。

Description

一种数据处理方法、装置、设备及存储介质
技术领域
本申请涉及数据处理领域,特别是涉及一种数据处理方法、装置、设备及存储介质。
背景技术
伴随移动互联网、人工智能、5G、云计算以及大数据等新兴技术领域的蓬勃发展,当前对于数据的计算需求也在迅速增长,而对称矩阵的乘积运算是上述各技术方向中经常涉及到的数据运算方式。
随着摩尔定律几近失效,运算芯片的物理材料没有取得新的重大突破之前,通用处理器的对于数据的整体处理性能已经相对逼近极限,因此对于数据的处理过程应相对降低对于处理器的资源开销,而当前处理器在进行对称矩阵的乘积运算时,通常需要占用处理器大量的可用资源,因此极易发生数据处理资源的枯竭,从而对处理器的工作稳定性造成影响。
由此可见,提供一种数据处理方法,以相对降低对称矩阵乘积运算时对运算设备中数据处理资源的占用量,进而确保运算设备进行数据处理时的工作稳定性,是本领域技术人员需要解决的问题。
发明内容
本申请的目的是提供一种数据处理方法、装置、设备及存储介质,以相对降低对称矩阵乘积运算时对运算设备中数据处理资源的占用量,进而确保运算设备进行数据处理时的工作稳定性。
为解决上述技术问题,本申请提供一种数据处理方法,包括:
接收第一对称矩阵;
将第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器;单侧矩阵数据包括第一对称矩阵的主对角线位置的矩阵数据,以及主对角线的目标单侧位置的矩阵数据;
接收第二对称矩阵;
读取存储器中的单侧矩阵数据,并根据单侧矩阵生成第一对称矩阵;
执行第二对称矩阵与第一对称矩阵的乘积运算,生成运算结果。
优选的,执行第二对称矩阵与第一对称矩阵的乘积运算,包括:
依照并行方式执行第二对称矩阵与第一对称矩阵之间对应数据元素的乘积运算。
优选的,将第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器,包括:
将第一对称矩阵中的单侧矩阵数据按照行列位置关系逐行缓存至存储器,单侧矩阵数据中各行的数据元素缓存至存储器中不同的存储地址区间。
优选的,目标单侧位置包括行坐标大于列坐标的位置,以及列坐标大于行坐标的位置。
优选的,执行第二对称矩阵与第一对称矩阵的乘积运算,包括:
通过FPGA或ASIC芯片执行第二对称矩阵与第一对称矩阵的乘积运算。
此外,本申请还提供一种数据处理装置,包括:
第一接收模块,用于接收第一对称矩阵;
缓存模块,用于将第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器;单侧矩阵数据包括第一对称矩阵的主对角线位置的矩阵数据,以及主对角线的目标单侧位置的矩阵数据;
第二接收模块,用于接收第二对称矩阵;
矩阵恢复模块,用于读取存储器中的单侧矩阵数据,并根据单侧矩阵生成第一对称矩阵;
矩阵运算模块,用于执行第二对称矩阵与第一对称矩阵的乘积运算,生成运算结果。
优选的,矩阵运算模块包括:
并行运算单元,用于依照并行方式执行第二对称矩阵与第一对称矩阵之间对应数据元素的乘积运算。
优选的,缓存模块包括:
逐行缓存单元,用于将第一对称矩阵中的单侧矩阵数据按照行列位置关系逐行缓存至存储器,单侧矩阵数据中各行的数据元素缓存至存储器中不同的存储地址区间。
此外,本申请还提供一种数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的数据处理方法的步骤。
此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的数据处理方法的步骤。
本申请所提供的数据处理方法,首先接收第一对称矩阵,进而在对第一对称矩阵进行缓存时,仅将第一矩阵主对角线位置的矩阵数据以及主对角线单侧位置的矩阵数据进行存储,进而在接收到第二对称矩阵后,读取缓存器中的单侧矩阵数据,并根据对称矩阵所具有的基于主对角线对称的特性将单侧矩阵数据恢复为第一对称矩阵,进而执行第一对称矩阵与第二对称矩阵之间的乘积运算,生成运算结果。由于本方法中在接收到第一对称矩阵后,仅对第一对称矩阵的一半数据进行缓存,进而当接收到第二对称矩阵时并不对第二对称矩阵进行缓存,而是直接将所缓存的数据对称恢复为第一对称数据,并进行第一对称矩阵与第二对称矩阵之间的乘积运算,因此相对降低了因运算设备缓存对称矩阵数据而对数据处理资源造成的占用,进而相对确保了运算设备进行数据处理时的工作稳定性。此外,本申请还提供一种数据处理装置、设备及存储介质,有益效果同上所述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据处理方法的流程图;
图2为本申请实施例提供的一种数据处理装置的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。
随着摩尔定律几近失效,运算芯片的物理材料没有取得新的重大突破之前,通用处理器的对于数据的整体处理性能已经相对逼近极限,因此对于数据的处理过程应相对降低对于处理器的资源开销,而当前处理器在进行对称矩阵的乘积运算时,通常需要占用处理器大量的可用资源,因此极易发生数据处理资源的枯竭,从而对处理器的工作稳定性造成影响。
为此,本申请的核心是提供一种数据处理方法,以相对降低对称矩阵乘积运算时对运算设备中数据处理资源的占用量,进而确保运算设备进行数据处理时的工作稳定性。本申请的另一核心是提供一种数据处理装置、设备及存储介质。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。
图1为本申请实施例提供的一种数据处理方法的流程图。请参考图1,数据处理方法的具体步骤包括:
步骤S10:接收第一对称矩阵。
需要说明的是,对称矩阵是指以主对角线为对称轴,对称轴两侧各元素对应相等的矩阵。另外,本方法中的第一对称矩阵与第二对称矩阵是参与乘积运算的两个对称矩阵,第一对称矩阵与第二对称矩阵是相对而言的,最先接收到的对称矩阵即为第一对称矩阵,在第一对称矩阵之后接收到的对称矩阵即为第二对称矩阵。
步骤S11:将第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器。
单侧矩阵数据包括第一对称矩阵的主对角线位置的矩阵数据,以及主对角线的目标单侧位置的矩阵数据。
在接收到第一对称矩阵时,为了能够确保第一对称矩阵中数据的可用性,进而确保在接收到第二对称矩阵后能够正常执行第一对称矩阵与第二对称矩阵之间的乘积运算,需要对第一对称矩阵进行缓存,而本步骤的重点在于,利用对称矩阵所具有的对称性,在对第一对称矩阵进行缓存时,仅存储第一对称矩阵的单侧矩阵数据,单侧矩阵数据包括第一对称矩阵主对角线位置的矩阵数据以及主对角线为界的目标单侧位置处的矩阵数据。需要强调的是,为了确保在后续过程中,能够根据单侧矩阵数据正确生成第一矩阵数据,本步骤需要将第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器,以此确保单侧矩阵数据中各数据元素之间的相对位置是正确的,具体可以通过预先对单侧矩阵数据中的各数据元素标记在第一对称矩阵中相应的位置坐标,进而将单侧矩阵数据中的各数据元素与相应的位置坐标对应存储至存储器中,以此在存储器中读取单侧矩阵数据中的各数据元素时,能够根据位置坐标确定各数据元素之间的相对位置关系。
更进一步的,目标单侧位置可以具体包括行坐标大于列坐标的位置,以及列坐标大于行坐标的位置。也就是说,基于对称矩阵主对角线两侧的数据对应相同的特征,在对第一对称矩阵进行缓存时,可以仅缓存第一对称矩阵主对角线位置的数据以及主对角线上方位置的数据,或仅缓存第一对称矩阵主对角线位置的数据以及主对角线下方位置的数据,具体可以根据实际情况而定,在此不做具体限定。
步骤S12:接收第二对称矩阵。
步骤S13:读取存储器中的单侧矩阵数据,并根据单侧矩阵生成第一对称矩阵。
步骤S14:执行第二对称矩阵与第一对称矩阵的乘积运算,生成运算结果。
需要说明的是,本方法的另一重点是在接收到第二对称矩阵后,不对第二对称矩阵进行缓存,而是直接根据存储器中的单侧矩阵数据生成第一对称矩阵,并进行第一对称矩阵与第二对称矩阵之间的乘积运算,进而生成运算结果,由于在接收到第二对称矩阵后并没有采取对第二对称矩阵的缓存策略,因此能够进一步减轻对于存储器中可用资源的占用程度,确保硬件设备整体运行的稳定性。另外,由于矩阵之间进行乘积运算的具体执行步骤是本领域技术人员公知的技术内容,故在此不做具体赘述。
本申请所提供的数据处理方法,首先接收第一对称矩阵,进而在对第一对称矩阵进行缓存时,仅将第一矩阵主对角线位置的矩阵数据以及主对角线单侧位置的矩阵数据进行存储,进而在接收到第二对称矩阵后,读取缓存器中的单侧矩阵数据,并根据对称矩阵所具有的基于主对角线对称的特性将单侧矩阵数据恢复为第一对称矩阵,进而执行第一对称矩阵与第二对称矩阵之间的乘积运算,生成运算结果。由于本方法中在接收到第一对称矩阵后,仅对第一对称矩阵的一半数据进行缓存,进而当接收到第二对称矩阵时并不对第二对称矩阵进行缓存,而是直接将所缓存的数据对称恢复为第一对称数据,并进行第一对称矩阵与第二对称矩阵之间的乘积运算,因此相对降低了因运算设备缓存对称矩阵数据而对数据处理资源造成的占用,进而相对确保了运算设备进行数据处理时的工作稳定性。
在上述实施例的基础上,本申请还提供如下一系列优选的实施方式。
作为一种优选的实施方式,执行第二对称矩阵与第一对称矩阵的乘积运算,包括:
依照并行方式执行第二对称矩阵与第一对称矩阵之间对应数据元素的乘积运算。
需要说明的是,由于考虑到在进行第二对称矩阵与第一对称矩阵之间乘积运算的本质是进行第二对称矩阵与第一对称矩阵之间各个对应位置数据元素之间的乘积运算,因此在第二对称矩阵与第一对称矩阵进行乘积运算的过程中,为了进一步提高运算效率,本实施方式采用并行的方式执行第二对称矩阵与第一对称矩阵之间对应数据元素的乘积运算,即两个对称矩阵之间各对应数据元素在单位内并行相乘,以此确保在单位时间内,运算更多的乘积结果,进而相对提高第二对称矩阵与第一对称矩阵之间的乘积运算效率。
此外,作为一种优选的实施方式,将第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器,包括:
将第一对称矩阵中的单侧矩阵数据按照行列位置关系逐行缓存至存储器,单侧矩阵数据中各行的数据元素缓存至存储器中不同的存储地址区间。
需要说明的是,本实施方式的重点在于对单侧矩阵数据进行缓存时,是按照单侧矩阵数据中各数据元素的行列位置关系逐行进行存储的,并且单侧矩阵数据中的各行数据分别存储至存储器中不同的存储地址区间,也就是将单侧矩阵数据中同属于第一对称矩阵相同行的数据元素存储至存储器中与该行对应的存储地址区间,以此能够建立存储地址区间与单侧矩阵数据中目标行之间的对应关系,进而在存储器中去读单侧矩阵数据时,能够在各存储地址区间中整行读取数据元素,相对确保了对单侧矩阵数据读取的高效性以及准确性。
此外,作为一种优选的实施方式,执行第二对称矩阵与第一对称矩阵的乘积运算,包括:
通过FPGA或ASIC芯片执行第二对称矩阵与第一对称矩阵的乘积运算。
需要说明的是,ASIC芯片是用于供专门应用的集成电路(ASIC,ApplicationSpecific Integrated Circuit)芯片技术,是一种为专门目的而设计的集成电路,因此ASIC芯片的计算能力和计算效率都直接根据特定的算法的需要进行定制的,所以其可以实现高可靠性、计算效率高等优势。另外,FPGA(现场可编程门阵列)是一直可编程的半定制芯片,具有并行处理优势。因此本实施方式通过FPGA或ASIC芯片执行第二对称矩阵与第一对称矩阵的乘积运算,能够相对确保第二对称矩阵与第一对称矩阵的乘积运算的整体效率以及可靠性。
为了进一步加深对于本申请技术方案的阐述,下面提供一种具体场景下的场景实施例:
1、预先设置A、B对称矩阵的尺寸N,至CFG模块,由于A、B是方阵,因此只传递一个参数即可。
2、接收驱动下发的A对称矩阵数据,采取按行下发的策略。
3、根据参数N,产生A对称矩阵数据的行号line_num和列号column_num,产生方法:
A对称矩阵line_num=A_data_num/N;
column_num=A_data_num%N(/表示取整操作,%表示取余操作)。
其中A_data_num为当前数据在A轮矩阵中的输入次序,初始化为0,驱动每输入一个数据,该变量加1,完成A对称矩阵全部输入后,该变量重新置为0.
4、当输入的A对称矩阵的数据元素在A对称矩阵中所属的行号>列号时,不进行缓存,因此存储器中只存储A对称矩阵数据元素中line_num<=column_num的数据。
5、产生读存储器中数据的逻辑,将存储器的数据按行恢复出N行。
其中恢复后每行对应的存储器读地址为:
第0行数据在存储器中的地址为0、1、2、……N-1;
第1行数据在存储器中的地址为1、1*N、N+1……2N-1-(1);
第2行数据在存储器中的地址为2、N+1、2N-1、2N、……3N-1-(1+2);
第3行数据在存储器中的地址为3、N+2、2N、3N-(1+2)...4N-1-(1+2+3);
第M行数据在存储器中的地址为M、M+N-1、M+N-1+N-2、M+N-1+N-2+N-3、……M+N-1+N-2+N-3+…N-M+1、M*N-(1+2+…M-1)……(M+1)*N-1-(1+2+3…M);
6、驱动下发B对称矩阵数据,采取按列下发的策略。不进行存储器存储,直接与A对称矩阵进行乘积运算,以节省硬件资源存储空间。
7、将A对称矩阵中所有的行,与B当前列完成对应位置上的乘积,并且累加乘积结果。
操作如下:
A对称矩阵中第M行数据表示为A[M,0]、A[M,1]……A[M,N-1],与B对称矩阵当前列(比如第current_num列)乘积累积结果为:
B[current_num,0]、B[current_num,1]、B[current_num,N-1]完成对应位置相乘,并且累加result[M,current_num]=A[M,0]*B[current_num,0]+A[M,1]*B[current_num,1]+A[M,N-1]*B[current_num,N-1]。
得到最终A与B对称矩阵相乘的result[M,current_num]。因此当驱动输入完矩阵B的当前列之后,即可得到乘积结果的current_num列的所有值。
在本方案中,采取并行运算,即当下发B[current_num,0]时,A中所有行的第0个元素,即A[0,0]、A[1,0]……A[N-1,0]同时完成与B[current_num,0]的乘积运算,得到:
A[0,0]*B[current_num,0]
A[1,0]*B[current_num,0]
……
A[N-1,0]*B[current_num,0]
当下发B[current_num,m]时,A中所有行的第m个元素(m<=N),即A[0,m]、A[1,m]……A[N-1,m]同时完成与B[current_num,m]的乘积运算,得到:
A[0,m]*B[current_num,m]
A[1,m]*B[current_num,m]
……
A[N-1,m]*B[current_num,m]
通过并行运算,当B对称矩阵输入完当前列的最后一个数据B[current_num,N-1]时,已完A对称矩阵所有数据与B当前列的乘积,然后再累加起来即可生成最终运算结果。
8、完成一轮A、B乘积后,驱动再下发下一轮乘积运算的A、B对称矩阵的值,以此重复过程2-7即可。
图2为本申请实施例提供的一种数据处理装置的结构图。本申请实施例提供的数据处理装置,包括:
第一接收模块10,用于接收第一对称矩阵;
缓存模块11,用于将第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器;单侧矩阵数据包括第一对称矩阵的主对角线位置的矩阵数据,以及主对角线的目标单侧位置的矩阵数据;
第二接收模块12,用于接收第二对称矩阵;
矩阵恢复模块13,用于读取存储器中的单侧矩阵数据,并根据单侧矩阵生成第一对称矩阵;
矩阵运算模块14,用于执行第二对称矩阵与第一对称矩阵的乘积运算,生成运算结果。
此外,在上述数据处理装置的基础上,本申请还提供以下优选的实施方式。
作为一种优选的实施方式,矩阵运算模块包括:
并行运算单元,用于依照并行方式执行第二对称矩阵与第一对称矩阵之间对应数据元素的乘积运算。
作为一种优选的实施方式,缓存模块包括:
逐行缓存单元,用于将第一对称矩阵中的单侧矩阵数据按照行列位置关系逐行缓存至存储器,单侧矩阵数据中各行的数据元素缓存至存储器中不同的存储地址区间。
本申请所提供的数据处理装置,首先接收第一对称矩阵,进而在对第一对称矩阵进行缓存时,仅将第一矩阵主对角线位置的矩阵数据以及主对角线单侧位置的矩阵数据进行存储,进而在接收到第二对称矩阵后,读取缓存器中的单侧矩阵数据,并根据对称矩阵所具有的基于主对角线对称的特性将单侧矩阵数据恢复为第一对称矩阵,进而执行第一对称矩阵与第二对称矩阵之间的乘积运算,生成运算结果。由于本装置中在接收到第一对称矩阵后,仅对第一对称矩阵的一半数据进行缓存,进而当接收到第二对称矩阵时并不对第二对称矩阵进行缓存,而是直接将所缓存的数据对称恢复为第一对称数据,并进行第一对称矩阵与第二对称矩阵之间的乘积运算,因此相对降低了因运算设备缓存对称矩阵数据而对数据处理资源造成的占用,进而相对确保了运算设备进行数据处理时的工作稳定性。
此外,本申请还提供一种数据处理设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的数据处理方法的步骤。
本申请所提供的数据处理设备,首先接收第一对称矩阵,进而在对第一对称矩阵进行缓存时,仅将第一矩阵主对角线位置的矩阵数据以及主对角线单侧位置的矩阵数据进行存储,进而在接收到第二对称矩阵后,读取缓存器中的单侧矩阵数据,并根据对称矩阵所具有的基于主对角线对称的特性将单侧矩阵数据恢复为第一对称矩阵,进而执行第一对称矩阵与第二对称矩阵之间的乘积运算,生成运算结果。由于本设备中在接收到第一对称矩阵后,仅对第一对称矩阵的一半数据进行缓存,进而当接收到第二对称矩阵时并不对第二对称矩阵进行缓存,而是直接将所缓存的数据对称恢复为第一对称数据,并进行第一对称矩阵与第二对称矩阵之间的乘积运算,因此相对降低了因运算设备缓存对称矩阵数据而对数据处理资源造成的占用,进而相对确保了运算设备进行数据处理时的工作稳定性。
此外,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的数据处理方法的步骤。
本申请所提供的计算机可读存储介质,首先接收第一对称矩阵,进而在对第一对称矩阵进行缓存时,仅将第一矩阵主对角线位置的矩阵数据以及主对角线单侧位置的矩阵数据进行存储,进而在接收到第二对称矩阵后,读取缓存器中的单侧矩阵数据,并根据对称矩阵所具有的基于主对角线对称的特性将单侧矩阵数据恢复为第一对称矩阵,进而执行第一对称矩阵与第二对称矩阵之间的乘积运算,生成运算结果。由于本计算机可读存储介质中在接收到第一对称矩阵后,仅对第一对称矩阵的一半数据进行缓存,进而当接收到第二对称矩阵时并不对第二对称矩阵进行缓存,而是直接将所缓存的数据对称恢复为第一对称数据,并进行第一对称矩阵与第二对称矩阵之间的乘积运算,因此相对降低了因运算设备缓存对称矩阵数据而对数据处理资源造成的占用,进而相对确保了运算设备进行数据处理时的工作稳定性。
以上对本申请所提供的一种数据处理方法、装置、设备及存储介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (9)

1.一种数据处理方法,其特征在于,包括:
接收驱动下发的第一对称矩阵;
将所述第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器;所述单侧矩阵数据包括所述第一对称矩阵的主对角线位置的矩阵数据,以及所述主对角线的目标单侧位置的矩阵数据;
接收所述驱动按列进行下发的第二对称矩阵;
读取所述存储器中的所述单侧矩阵数据,并根据所述单侧矩阵生成所述第一对称矩阵;
依照并行方式执行所述第二对称矩阵与所述第一对称矩阵之间对应数据元素的乘积运算,生成运算结果;
所述读取所述存储器中的所述单侧矩阵数据包括:
将所述存储器中的所述单侧矩阵数据按行恢复出N行;其中,恢复后每行数据对应的存储器读地址为:
第0行数据在存储器中的地址为:0、1、2……N-1;
第1行数据在存储器中的地址为:1、1*N、N+1……2N-1-(1);
第2行数据在存储器中的地址为:2、N+1、2N-1、2N……3N-1-(1+2);
第3行数据在存储器中的地址为:3、N+2、2N、3N-(1+2)……4N-1-(1+2+3);
第M行数据在存储器中的地址为:M、M+N-1、M+N-1+N-2、M+N-1+N-2+N-3……M+N-1+N-2+N-3+…+N-M+1、M*N-(1+2+…M-1)……(M+1)*N-1-(1+2+3…M);
所述依照并行方式执行所述第二对称矩阵与所述第一对称矩阵之间对应数据元素的乘积运算,生成运算结果包括:
将所述第一对称矩阵中所有的行与所述驱动按列进行下发的所述第二对称矩阵的当前列,完成对应位置上的乘积,并累加乘积结果生成运算结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述将所述第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器,包括:
将所述第一对称矩阵中的单侧矩阵数据按照行列位置关系逐行缓存至存储器,所述单侧矩阵数据中各行的数据元素缓存至所述存储器中不同的存储地址区间。
3.根据权利要求1所述的数据处理方法,其特征在于,所述目标单侧位置包括行坐标大于列坐标的位置,以及列坐标大于行坐标的位置。
4.根据权利要求1至3任意一项所述的数据处理方法,其特征在于,所述执行所述第二对称矩阵与所述第一对称矩阵的乘积运算,包括:
通过FPGA或ASIC芯片执行所述第二对称矩阵与所述第一对称矩阵的乘积运算。
5.一种数据处理装置,其特征在于,包括:
第一接收模块,用于接收驱动下发的第一对称矩阵;
缓存模块,用于将所述第一对称矩阵中的单侧矩阵数据按照行列位置关系缓存至存储器;所述单侧矩阵数据包括所述第一对称矩阵的主对角线位置的矩阵数据,以及所述主对角线的目标单侧位置的矩阵数据;
第二接收模块,用于接收所述驱动按列进行下发的第二对称矩阵;
矩阵恢复模块,用于读取所述存储器中的所述单侧矩阵数据,并根据所述单侧矩阵生成所述第一对称矩阵;
矩阵运算模块,用于依照并行方式执行所述第二对称矩阵与所述第一对称矩阵之间对应数据元素的乘积运算,生成运算结果;
所述读取所述存储器中的所述单侧矩阵数据包括:
将所述存储器中的所述单侧矩阵数据按行恢复出N行;其中,恢复后每行数据对应的存储器读地址为:
第0行数据在存储器中的地址为:0、1、2……N-1;
第1行数据在存储器中的地址为:1、1*N、N+1……2N-1-(1);
第2行数据在存储器中的地址为:2、N+1、2N-1、2N……3N-1-(1+2);
第3行数据在存储器中的地址为:3、N+2、2N、3N-(1+2)……4N-1-(1+2+3);
第M行数据在存储器中的地址为:M、M+N-1、M+N-1+N-2、M+N-1+N-2+N-3……M+N-1+N-2+N-3+…+N-M+1、M*N-(1+2+…M-1)……(M+1)*N-1-(1+2+3…M);
所述依照并行方式执行所述第二对称矩阵与所述第一对称矩阵之间对应数据元素的乘积运算,生成运算结果包括:
将所述第一对称矩阵中所有的行与所述驱动按列进行下发的所述第二对称矩阵的当前列,完成对应位置上的乘积,并累加乘积结果生成运算结果。
6.根据权利要求5所述的数据处理装置,其特征在于,所述矩阵运算模块包括:
并行运算单元,用于依照并行方式执行所述第二对称矩阵与所述第一对称矩阵之间对应数据元素的乘积运算。
7.根据权利要求5所述的数据处理装置,其特征在于,所述缓存模块包括:
逐行缓存单元,用于将所述第一对称矩阵中的单侧矩阵数据按照行列位置关系逐行缓存至存储器,所述单侧矩阵数据中各行的数据元素缓存至所述存储器中不同的存储地址区间。
8.一种数据处理设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的数据处理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的数据处理方法的步骤。
CN201910683612.8A 2019-07-26 2019-07-26 一种数据处理方法、装置、设备及存储介质 Active CN110377877B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910683612.8A CN110377877B (zh) 2019-07-26 2019-07-26 一种数据处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910683612.8A CN110377877B (zh) 2019-07-26 2019-07-26 一种数据处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN110377877A CN110377877A (zh) 2019-10-25
CN110377877B true CN110377877B (zh) 2022-12-23

Family

ID=68256513

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910683612.8A Active CN110377877B (zh) 2019-07-26 2019-07-26 一种数据处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN110377877B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111427747B (zh) * 2020-03-24 2023-11-03 京东科技控股股份有限公司 一种Redis客户端性能监测方法及装置
CN112261242B (zh) * 2020-10-21 2022-09-27 合肥芯颖科技有限公司 一种图像数据处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411558A (zh) * 2011-10-31 2012-04-11 中国人民解放军国防科学技术大学 面向向量处理器的大矩阵相乘的向量化实现方法
CN109614149A (zh) * 2018-11-06 2019-04-12 海南大学 对称矩阵的上三角部分存储装置和并行读取方法
CN109635236A (zh) * 2018-11-06 2019-04-16 海南大学 对称矩阵的下三角部分存储装置和并行读取方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411558A (zh) * 2011-10-31 2012-04-11 中国人民解放军国防科学技术大学 面向向量处理器的大矩阵相乘的向量化实现方法
CN109614149A (zh) * 2018-11-06 2019-04-12 海南大学 对称矩阵的上三角部分存储装置和并行读取方法
CN109635236A (zh) * 2018-11-06 2019-04-16 海南大学 对称矩阵的下三角部分存储装置和并行读取方法

Also Published As

Publication number Publication date
CN110377877A (zh) 2019-10-25

Similar Documents

Publication Publication Date Title
CN108133270B (zh) 卷积神经网络加速方法及装置
US10140251B2 (en) Processor and method for executing matrix multiplication operation on processor
US11023801B2 (en) Data processing method and apparatus
CN110377877B (zh) 一种数据处理方法、装置、设备及存储介质
CN111199273A (zh) 卷积计算方法、装置、设备及存储介质
CN109597647B (zh) 数据处理方法及设备
CN115880132B (zh) 图形处理器、矩阵乘法任务处理方法、装置及存储介质
CN112835552A (zh) 一种外积累加求解稀疏矩阵与稠密矩阵内积的方法
CN111639701B (zh) 一种图像特征提取的方法、系统、设备及可读存储介质
CN111325332B (zh) 卷积神经网络的处理方法和装置
US20220253668A1 (en) Data processing method and device, storage medium and electronic device
CN103544111B (zh) 一种基于实时性处理的混合基fft方法
CN110580522A (zh) 卷积计算方法及相关设备
CN113485750B (zh) 数据处理方法及数据处理装置
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN111047037B (zh) 数据处理方法、装置、设备及存储介质
CN112929300B (zh) 一种数据处理装置、方法、基站和存储介质
CN104715422A (zh) 一种基于对称稀疏矩阵技术的因子表法求取电力系统节点阻抗矩阵的方法
CN107678781B (zh) 处理器以及用于在处理器上执行指令的方法
CN111356151B (zh) 一种数据处理方法及装置、计算机可读存储介质
CN109669666B (zh) 乘累加处理器
CN112765540A (zh) 数据处理方法、装置及相关产品
CN110704799B (zh) 一种数据处理设备及系统
CN112668709A (zh) 计算装置以及用于数据重用的方法
CN103049487B (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