CN113094648B - 外积累加求解三角矩阵与矩阵内积的方法 - Google Patents

外积累加求解三角矩阵与矩阵内积的方法 Download PDF

Info

Publication number
CN113094648B
CN113094648B CN202110361259.9A CN202110361259A CN113094648B CN 113094648 B CN113094648 B CN 113094648B CN 202110361259 A CN202110361259 A CN 202110361259A CN 113094648 B CN113094648 B CN 113094648B
Authority
CN
China
Prior art keywords
triangular matrix
matrix
compressed
triangular
outer product
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
CN202110361259.9A
Other languages
English (en)
Other versions
CN113094648A (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.)
Qiaochao (Shenzhen) Microelectronics Co.,Ltd.
Original Assignee
Computing Chip Shenzhen Information 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 Computing Chip Shenzhen Information Technology Co ltd filed Critical Computing Chip Shenzhen Information Technology Co ltd
Priority to CN202110361259.9A priority Critical patent/CN113094648B/zh
Publication of CN113094648A publication Critical patent/CN113094648A/zh
Application granted granted Critical
Publication of CN113094648B publication Critical patent/CN113094648B/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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明属于计算机应用技术领域,尤其涉及一种外积累加求解三角矩阵与矩阵内积的方法。包括以下有效步骤:首先对三角矩阵与矩阵的原始数据的完成读取;对三角矩阵进行数据压缩,将二维布局的三角矩阵压缩为一维布局的压缩三角矩阵;读取压缩三角矩阵第i列以及读取矩阵中第i行外积运算生成ci;对所得到的外积结果进行累加,即可得到三角矩阵与矩阵内积;本发明根据三角矩阵的特性,采用元素方块压缩的方式将将原有的二维布局的三角矩阵压缩为一维布局的压缩三角矩阵,除去了三角矩阵的零元素值,进而避免了无效数值的计算,达到节省内存访问和无效运算的目的,从而提高了运算效率,为数值计算、机器学习、工程模拟相关技术的快速运算提供保障。

Description

外积累加求解三角矩阵与矩阵内积的方法
技术领域
本发明属于计算机应用技术领域,尤其涉及一种外积累加求解三角矩阵与矩阵内积的方法。
背景技术
在数学上,矩阵是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。矩阵内积乘法是数值计算、机器学习、工程模拟等众多领域算法的基础。
目前,在现有的矩阵内积乘法计算中,最经常涉及到的矩阵就是上三角矩阵、下三角矩阵、三角矩阵以及稠密矩阵,其中,上三角矩阵和下三角矩阵为主对角线以下或以上都是零的方阵,这部分零元素是可以不参与计算依然保证运算结果的正确性,同时对于零元素可以直接放弃存储来提升内存的利用效率。
但是在计算和存储的过程中对三角矩阵A之中零元素的忽略导致内存访问的不连续,不利于利用现代处理器架构中的各级高速缓存。因而涉及三角矩阵和其他矩阵的外积计算中,三角矩阵中的零元素参与了外积计算,这种计算其不仅降低了外积运算的计算效率也增加了外积计算后零值向内存写入的需求,进而减少了内存写入的有效带宽。
发明内容
本发明针对上述的外积累加求解三角矩阵与矩阵内积时所存在的零元素必须要参与计算的技术问题,提出一种方法简单、操作方便且能够在零元素不参与计算的情况下,保证内存访问连续性的外积累加求解三角矩阵与矩阵内积的方法。
为了达到上述目的,本发明采用的技术方案为,本发明提供一种外积累加求解三角矩阵与矩阵内积的方法,包括以下有效步骤:
a、首先对三角矩阵与矩阵的原始数据的完成读取,其中,所述三角矩阵为上三角矩阵且上三角矩阵的对角线以及对角线以上的元素均为非零元素,所述三角矩阵为偶数行*偶数列的上三角矩阵;
b、对三角矩阵进行数据压缩,将二维布局的三角矩阵压缩为一维布局的压缩三角矩阵;
c、读取压缩三角矩阵第i列以及读取矩阵中第i行外积运算生成ci;
d、对所得到的外积结果进行累加,即可得到三角矩阵与矩阵内积;
其中,所述b步骤,三角矩阵按照下述方案进行压缩:
b1、首先三角矩阵拆分为2行2列大小的元素方块;
b2、以三角矩阵的主对角线为起点,将元素方块内的非零元素以列的顺序依次记录形成一维布局,即可得到一维布局的压缩三角矩阵,其中,所述压缩三角矩阵还包括压缩后总长组,所述压缩后总长组为
Figure 559650DEST_PATH_IMAGE001
,其中,x为压缩后成一维布局的非零元素的总个数,M为三角矩阵的列数。
作为优选,还包括e步骤,e、判断是否完成到三角矩阵的最后一列,如果是,则完成计算;如果否,则 i 自增1,重复c~e步骤。
与现有技术相比,本发明的优点和积极效果在于,
1、本发明提供一种外积累加求解三角矩阵与矩阵内积,根据三角矩阵的特性,采用元素方块压缩的方式将将原有的二维布局的三角矩阵压缩为一维布局的压缩三角矩阵,除去了三角矩阵的零元素值,进而避免了无效数值的计算,达到节省内存访问和无效运算的目的,从而提高了运算效率,为数值计算、机器学习、工程模拟相关技术的快速运算提供保障。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为上三角矩阵依据元素方块压缩存储方式存储的转换过程;
图2为上三角矩阵依据元素方块压缩存储方式存储的其他元素方块的转换过程;
图3为上三角矩阵与稠密矩阵外积累加流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和实施例对本发明做进一步说明。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开说明书的具体实施例的限制。
首先说明,本案所提供的方案适用于任何三角矩阵的外积累加求解的方法,如:
外积方法求解上三角矩阵A(MxM)与稠密矩阵B(MxK)的内积结果C(MxK)
外积方法求解上三角矩阵A(MxM)与三角矩阵B(MxK)的内积结果C(MxK)
外积方法求解上三角矩阵A(MxM)与上三角矩阵B(MxM)的内积结果C(MxM)
外积方法求解上三角矩阵A(MxM)与下三角矩阵B(MxM)的内积结果C(MxM)
外积方法求解稠密矩阵A(MxK)与上三角矩阵B(KxK)的内积结果C(MxK)
外积方法求解三角矩阵A(MxK)与上三角矩阵B(KxK)的内积结果C(MxK)
外积方法求解下三角矩阵A(MxM)与稠密矩阵B(MxK)的内积结果C(MxK)
外积方法求解下三角矩阵A(MxM)与三角矩阵B(MxK)的内积结果C(MxK)
外积方法求解下三角矩阵A(MxM)与上三角矩阵B(MxM)的内积结果C(MxM)
外积方法求解下三角矩阵A(MxM)与下三角矩阵B(MxM)的内积结果C(MxM)
外积方法求解稠密矩阵A(MxK)与下三角矩阵B(KxK)的内积结果C(MxK)
外积方法求解三角矩阵A(MxK)与下三角矩阵B(KxK)的内积结果C(MxK)
在本实施例中,以外积方法求解上三角矩阵A(4x4)与稠密矩阵B(4x3)的内积结果C(MxK)进行举例
实施例1,在本实施例中,假设上三角矩阵A(4x4)为:
Figure 483613DEST_PATH_IMAGE002
稠密矩阵B(4x3)为:
Figure 538156DEST_PATH_IMAGE003
首先,完成对上三角矩阵A(4x4)和稠密矩阵B(4x3)的数据进行读取,根据主对角线以下都是零的方阵称为上三角矩阵定义可以知道,如果构建一个2x2的元素方块,那么在上三角矩阵中主对角线上的元素方块,左下元素总是零,非对角线上的块:要么全是零,要么全是非零,当然,在下三角矩阵中,则是主对角线右上角的元素,总是零,那么,对块进行压缩时,按照块就可以将二维的三角矩阵转换为一维的压缩矩阵,在压缩过程中,可以以列的顺序依次记录形成一维布局,也可以以行的顺序依次记录呈一维数据,比如,第一元素方块有三个元素,其属于第一列和第二列,第二元素方块中,其就含有四个元素,其按照顺序属于第三列和第四列,而第三个元素方块中,其就含有三个元素,其按照顺序属于第三列和第四列,根据形成的一维元素,就可以根据第几个元素,推断出其在原三角矩阵所在的位置,在本实施例中,将所形成的一维元素数组命名为压缩元素值数组,为了更为准确的反向推断出原三角矩阵,在本实施例中,所形成的压缩三维矩阵中还增加有压缩后总长组,压缩后总长为压缩元素值数组的元素的个数,压缩后总长组的数字为
Figure 374525DEST_PATH_IMAGE001
,其中,x为压缩后成一维布局的非零元素的总个数,M为三角矩阵的列数,这样,可以根据x的数值,进一步确保反推后的原三角矩阵的位置,这样,就避免了内存访问的不连续的问题。
列向压缩以后的三角矩阵A(4x4)与稠密矩阵B(4x3)再依据外积累加方法求解矩阵内积的过程。首先依据行索引数组计算出三角矩阵A(4x4)第一列的所有非零元素在非零元素值数组中的位置,然后读取相应范围的数据与稠密矩阵B(4x3)第一行执行外积运算。同样地,计算出三角矩阵A(4x4)第二列的所有非零元素在非零元素值数组中的位置,与稠密矩阵B(4x3)第二行再次执行外积运算。依次执行三角矩阵A(4x4)压缩后的第i列与密矩阵B(4x3)第i行外积运算。
将所有数据计算后,进行外积累加,即可得到上三角矩阵A(4x4)和稠密矩阵B(4x3)的内积。
最后,针对矩阵数量较多的三角矩阵A(MxK)与稠密矩阵B(KxN)可以描述成如图3所示,具体的说,首先由模块完成三角矩阵A(MxK)与稠密矩阵B(KxN)原始数据的读取。模块执行三角矩阵A(MxK)的列向数据压缩,下面执行外积计算,分别由模块读取列向压缩的三角矩阵A(MxK)第i列以及模块读取稠密矩阵稠密矩阵B(KxN)第i行生成ci。再由完成外积累加过程,累加一般是在同一块内存空间之中反复累加,将当前结果叠加到该内存空间的值之上。最后判断是否完成到三角矩阵A(MxK)的最后一列。如果是,则完成计算;如果否,则 i自增1,依次执行模块。
需要说明是,针对其他不同组合的矩阵,也可以按照相同的方式来进行操作,以达到压缩的目的。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

Claims (2)

1.一种外积累加求解三角矩阵与矩阵内积的方法,其特征在于,包括以下有效步骤:
a、首先对三角矩阵与矩阵的原始数据的完成读取,其中,所述三角矩阵为上三角矩阵且上三角矩阵的对角线以及对角线以上的元素均为非零元素,所述三角矩阵为偶数行*偶数列的上三角矩阵;
b、对三角矩阵进行数据压缩,将二维布局的三角矩阵压缩为一维布局的压缩三角矩阵;
c、读取压缩三角矩阵第i列以及读取矩阵中第i行外积运算生成ci;
d、对所得到的外积结果进行累加,即可得到三角矩阵与矩阵内积;
其中,所述b步骤,三角矩阵按照下述方案进行压缩:
b1、首先三角矩阵拆分为2行2列大小的元素方块;
b2、以三角矩阵的主对角线为起点,将元素方块内的非零元素以列的顺序依次记录形成一维布局,即可得到一维布局的压缩三角矩阵,其中,所述压缩三角矩阵还包括压缩后总长组,所述压缩后总长组为
Figure 947761DEST_PATH_IMAGE001
,其中,x为压缩后成一维布局的非零元素的总个数,M为三角矩阵的列数。
2.根据权利要求1所述的外积累加求解三角矩阵与矩阵内积的方法,其特征在于,还包括e步骤,e、判断是否完成到三角矩阵的最后一列,如果是,则完成计算;如果否,则 i 自增1,重复c~e步骤。
CN202110361259.9A 2021-04-02 2021-04-02 外积累加求解三角矩阵与矩阵内积的方法 Active CN113094648B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110361259.9A CN113094648B (zh) 2021-04-02 2021-04-02 外积累加求解三角矩阵与矩阵内积的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110361259.9A CN113094648B (zh) 2021-04-02 2021-04-02 外积累加求解三角矩阵与矩阵内积的方法

Publications (2)

Publication Number Publication Date
CN113094648A CN113094648A (zh) 2021-07-09
CN113094648B true CN113094648B (zh) 2022-08-09

Family

ID=76673294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110361259.9A Active CN113094648B (zh) 2021-04-02 2021-04-02 外积累加求解三角矩阵与矩阵内积的方法

Country Status (1)

Country Link
CN (1) CN113094648B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580675A (zh) * 2019-09-11 2019-12-17 北京华大九天软件有限公司 一种适用于gpu硬件的矩阵存储与计算方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440121B (zh) * 2013-08-20 2016-06-29 中国人民解放军国防科学技术大学 一种面向向量处理器的三角矩阵乘法向量化方法
CN105608059A (zh) * 2015-12-22 2016-05-25 合肥工业大学 一种基于改进的按位替换法求矩阵三角分解的模块
CN106646612B (zh) * 2016-12-20 2018-11-30 中国地质大学(北京) 基于矩阵降秩的地震数据重建方法
CN108897716B (zh) * 2018-07-04 2022-07-01 合肥工业大学 通过存储器读写操作来缩减计算量的数据处理装置及方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110580675A (zh) * 2019-09-11 2019-12-17 北京华大九天软件有限公司 一种适用于gpu硬件的矩阵存储与计算方法

Also Published As

Publication number Publication date
CN113094648A (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
TWI680409B (zh) 適用於人工神經網路之矩陣及向量相乘的方法
JP6736646B2 (ja) 畳み込みニューラルネットワークにおいて畳み込み演算を実行する装置および方法
TWI570573B (zh) 矩陣轉置電路
CN104636273B (zh) 一种带多级Cache的SIMD众核处理器上的稀疏矩阵存储方法
CN112286864B (zh) 加速可重构处理器运行的稀疏化数据处理方法及系统
CN110399591B (zh) 基于卷积神经网络的数据处理方法和装置
CN109840585B (zh) 一种面向稀疏二维卷积的运算方法和系统
CN112835552A (zh) 一种外积累加求解稀疏矩阵与稠密矩阵内积的方法
CN114565501A (zh) 用于卷积运算的数据加载方法及其装置
CN112416433A (zh) 一种数据处理装置、数据处理方法及相关产品
US9336454B2 (en) Vector processor calculation of local binary patterns
CN115309333A (zh) 一种带状稀疏矩阵的数据存储格式及其乘法加速方法
CN109446478B (zh) 一种基于迭代和可重构方式的复协方差矩阵计算系统
CN113094648B (zh) 外积累加求解三角矩阵与矩阵内积的方法
CN113506589A (zh) 一种稀疏矩阵存算系统及方法
CN113254391A (zh) 一种神经网络加速器卷积计算和数据载入并行方法及装置
CN108108189A (zh) 一种计算方法及相关产品
CN112765540A (zh) 数据处理方法、装置及相关产品
CN108184127A (zh) 一种可配置的多尺寸dct变换硬件复用架构
CN110766133B (zh) 嵌入式设备中的数据处理方法、装置、设备和存储介质
CN112015325B (zh) 一种生成解码矩阵的方法、解码方法和对应装置
CN112799635B (zh) 一种新型外积累加求解稠密矩阵与稀疏矩阵内积的方法
CN110728367A (zh) 用于神经网络的数据存储方法及装置
CN110889259A (zh) 针对排列的块对角权重矩阵的稀疏矩阵向量乘法计算单元
CN117131912A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210902

Address after: 518000 floor 71, Ping An financial center, 5033 Yitian Road, Fu'an community, Futian street, Futian District, Shenzhen, Guangdong Province

Applicant after: Computing chip (Shenzhen) Information Technology Co.,Ltd.

Address before: Room 911, block a, Qilu Software Park, 1766 Xinluo street, high tech Industrial Development Zone, Jinan City, Shandong Province

Applicant before: China Mdt InfoTech Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240521

Address after: 518000, Building 5, 208D, Northwest Shenjiu Science and Technology Entrepreneurship Park, intersection of Taohua Road and Binglang Road, Fubao Community, Fubao Street, Futian District, Shenzhen City, Guangdong Province

Patentee after: Qiaochao (Shenzhen) Microelectronics Co.,Ltd.

Country or region after: China

Address before: 518000 floor 71, Ping An financial center, 5033 Yitian Road, Fu'an community, Futian street, Futian District, Shenzhen, Guangdong Province

Patentee before: Computing chip (Shenzhen) Information Technology Co.,Ltd.

Country or region before: China