CN111796796A - 基于稀疏矩阵乘法的fpga存储方法、计算方法、模块和fpga板 - Google Patents

基于稀疏矩阵乘法的fpga存储方法、计算方法、模块和fpga板 Download PDF

Info

Publication number
CN111796796A
CN111796796A CN202010535432.8A CN202010535432A CN111796796A CN 111796796 A CN111796796 A CN 111796796A CN 202010535432 A CN202010535432 A CN 202010535432A CN 111796796 A CN111796796 A CN 111796796A
Authority
CN
China
Prior art keywords
storage
elements
matrix
sparse matrix
fpga
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.)
Granted
Application number
CN202010535432.8A
Other languages
English (en)
Other versions
CN111796796B (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.)
Hangzhou Yunxiang Network Technology Co Ltd
Original Assignee
Hangzhou Yunxiang Network 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 Hangzhou Yunxiang Network Technology Co Ltd filed Critical Hangzhou Yunxiang Network Technology Co Ltd
Priority to CN202010535432.8A priority Critical patent/CN111796796B/zh
Publication of CN111796796A publication Critical patent/CN111796796A/zh
Application granted granted Critical
Publication of CN111796796B publication Critical patent/CN111796796B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • 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

Abstract

本发明公开了一种基于稀疏矩阵乘法的FPGA存储方法,实现方法包括:向量存储改造:将稀疏矩阵向量乘法中的向量按照对应标号和并行度进行取模;矩阵存储改造:对稀疏矩阵向量乘法中的稀疏矩阵的每一行进行新建数组等操作;存储数组元素:将矩阵存储改造步骤中新建的数组元素相同位置的取出来放在一起存储;获得并行计算存储结构:获得一个适合并行计算的存储结构。本发明还实现了一种基于稀疏矩阵乘法的PFGA计算方法,最终计算得到稀疏矩阵向量乘法的结果。本发明还包括用于实现本发明方法的组成模块。基于本发明的方法和模块能够利用FPGA解决稀疏矩阵向量乘法过程中读取不连续向量元素问题。

Description

基于稀疏矩阵乘法的FPGA存储方法、计算方法、模块和FPGA板
技术领域
本发明属于稀疏矩阵乘法的FPGA加速技术领域,具体涉及基于稀疏矩阵乘法的FPGA并行计算存储方法、计算方法、模块和FPGA板。
背景技术
FPGA(Field Programmable Gate Array)是专用集成电路里面一种半定制化的电路,既有比通用计算快的特点,又比专用芯片(ASIC)更加灵活,在科学工程领域尤其是定制计算领域被广泛使用,使用FPGA进行专业加速目前在商业上已经有了很广泛的市场,如今算法迭代迅速,使用FPGA进行定制化计算来加速传统CPU计算成了非常普遍的场景。FPGA有着大量的BlockRAM(bram)资源,每一个bram都可以当作一个独立的小容量的内存来使用。
矩阵向量乘法指一个M×N的矩阵与N×1大小的向量的乘法运算。假设并行度为4,一般来说每次取出矩阵中一行连续的4个元素和向量权重中连续的4个元素分别进行乘法操作,再累加乘法结果。在实际工程应用或科学计算中,利用CPU的一些并行指令如sse、avx等或者利用FPGA并行度往往能达到16甚至32,这样比使用传统CPU进行一一乘法要快得多,加速比甚至能达到接近并行度的数量的水准。
稀疏矩阵向量乘法是一种采取压缩矩阵的方式来储存稀疏矩阵以减少储存空间消耗,采取压缩格式来存储和计算这些稀疏矩阵,可以节省大量零元素的乘法,然而在计算过程中存在以下问题:
CSR(Compressed sparse row)在并行操作时可以通过一次访问从内存拿到众多的矩阵非零元素,这本身不存在瓶颈,但发现这些众多的矩阵非零元在原始矩阵中的列坐标并不是连续的,在做矩阵向量乘法时,还需要使用这些非零元素所对应的向量元素,这时,便出现了需要读取众多不连续的元素的情况,影响FPGA访问存储性能。
发明内容
本发明基于上述背景和现有技术所存在的问题,拟设计一种基于稀疏矩阵乘法的FPGA存储方法,其是一种并行计算存储方法,包括实现此方法依赖的模块,并基于此方法和模块进一步实现一种计算方法及此计算方法对应的模块,其能够利用FPGA解决稀疏矩阵向量乘法过程中读取不连续向量元素问题。本发明提供了一种利用FPGA解决稀疏矩阵向量乘法过程中读取不连续向量元素的方案。
本发明基于稀疏矩阵乘法的FPGA存储方法,具体实现步骤包括:
向量存储改造:将稀疏矩阵向量乘法中的向量按照对应标号和并行度进行取模,用于区分存储位置;
矩阵存储改造:对稀疏矩阵向量乘法中的稀疏矩阵的每一行进行操作,所述操作包括新建数组,所述数组数量和并行度数量相同;
存储数组元素:将矩阵存储改造步骤中新建的数组元素相同位置的取出来放在一起存储,获得并行计算存储结构。
进一步地,所述矩阵存储改造步骤中,以CSR格式存储的矩阵按照非零元素对应列坐标进行划分,将元素本身和对应列坐标存到所有数组里去,以数组元素最多的数组为基准,将其他数组补零至相同长度。
进一步地,所述矩阵存储改造的操作还包括:
将一行中的所有非零元素按照列坐标和并行度进行取模运算,将非零元素和其对应的列坐标存放到和取模结果相同的数组中去;
完成一行中所有元素的存放后,以元素最多的数组为基准,给其他数组补零元素以及列坐标,列坐标和被补数组的标号相同;
将每个数组第一个元素和对应列坐标取出连续地存放在内存中,再将每个数组第二个元素和对应列坐标取出连续地存放在内存中,依次类推,将数组中所有元素都取出存放在内存中;
矩阵下一行重复上述操作直至最后一行。
进一步地,所述存储数组元素,还包括先将所有数组的第一个元素和对应列坐标拿出来放在一起,再将所有数组的第二个元素和对应列坐标拿出来放在一起,以此类推,直到数组中所有元素和其对应的列坐标被取出。
进一步地,所述获得并行计算存储结构,向量存放在所有FPGA的bram中,矩阵和所有FPGA的bram对应的列坐标连续地存放在内存中。
进一步地,所述获得并行计算存储结构后,进行以并行度数量为基础的稀疏矩阵向量乘法计算,通过此种方法扩展,可以进行并行度更高的稀疏矩阵向量乘法计算。
本发明还提供一种基于所述FPGA存储方法的计算方法,基于所述并行计算存储结构,开始计算,最终得到所有输出结果,所述最终的所有输出结果为稀疏矩阵向量乘法的结果。开始计算时,每次从内存中取出连续的和并行度数目相同的元素和这些元素对应的列坐标,将列坐标分别传递到所有FPGA的bram中,从每个bram中获取到对应向量元素,将内存中取到的元素按一一对应的顺序和bram中取出的向量元素进行乘法运算,将所有乘法运算累加,直到矩阵的一行全被取出,将累加结果输出并清空开始下一行的计算。
本发明还提供一种FPGA存储模块,即实现稀疏矩阵乘法的FPGA存储的稀疏矩阵乘法的FPGA并行计算存储模块,模块组成包括:
向量存储改造模块:将稀疏矩阵向量乘法中的向量按照对应标号和并行度进行取模,用于区分存储位置;
矩阵存储改造模块:用于对稀疏矩阵向量乘法中的稀疏矩阵的每一行进行操作,新建数组,所述数组数量和并行度数量相同;
数组元素存储模块:用于将矩阵存储改造模块新建的数组元素相同位置的取出来放在一起存储;
上述三大模块构成用于并行计算的并行计算存储结构。
本发明还提供一种FPGA计算模块,即实现稀疏矩阵乘法的FPGA计算方法的稀疏矩阵乘法的FPGA并行计算模块,模块组成包括:
并行计算存储模块:基于并行计算存储结构,用于向量存储改造,矩阵存储改造,数组元素存储;
计算模块,用于计算得到所有输出结果,所述最终的所有输出结果为稀疏矩阵向量乘法的结果。
此外,本发明还提供了一种FPGA板,包括FPGA板本体,还包括如上所述的FPGA存储模块和一种FPGA计算模块。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。本发明的有益效果包括:通过本发明的基于稀疏矩阵乘法的FPGA存储方法可以得到一个适合并行计算的存储结构,并基于FPGA实现本发明所述矩阵存储改造操作,解决稀疏矩阵向量乘法过程中读取不连续向量元素的问题,并通过本发明的计算方法基于此存储结构进行计算,就能每次从内存中取出连续的和并行度数目相同的数据和它们对应的列坐标,能提高进行基于并行度的稀疏矩阵乘法计算的访问存储性能。并通过此种方法扩展,可以进行并行度更高的稀疏矩阵乘法计算,解决了稀疏矩阵向量乘法过程中读取不连续向量元素的问题。
附图说明
图1为CSR格式储存的稀疏矩阵示意图;
图2为本发明专利提出的用于稀疏矩阵向量乘法储存向量的结构示意图;
图3为本发明专利提出的将原始稀疏矩阵按照对应列坐标取模分配到不同数组的示意图;
图4为本发明专利提出的用于稀疏矩阵向量乘法储存矩阵的结构示意图;
图5为本发明专利提出的用于稀疏矩阵向量乘法的储存结构示意图。
具体实施方式
为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施。下面将附图结合具体实施方式对本发明的技术加以详细说明。
稀疏矩阵一般来说指非零元比例即稀疏度小于25%的矩阵。为节省储存空间,稀疏矩阵通常采取压缩方式来存储,即只存储矩阵中的非零元,稀疏矩阵的压缩存储格式主要分为四大类:位映射(bit map)、地址映射(address map)、行列存储(row-column)、链表(linked list)。这些储存格式在不同的数据集和计算任务上表现各有优劣。稀疏矩阵进行的向量乘法在工程领域有着大量的实际应用。
稀疏矩阵向量乘法是矩阵向量乘法在稀疏矩阵数据集上的体现,往往需要采取压缩矩阵的方式来储存稀疏矩阵以减少储存空间消耗,并且采取这种方式进行计算可以节省大量零元素的乘法,这些零元的乘法对于最终结果来说是没有意义的,可以省略。往往采取压缩格式来存储和计算这些稀疏矩阵,例如CSR格式(Compressed sparse row)。如图1所示,有色方块代表值为非零的元素,使用CSR格式存储后,可以放弃记录零元素,只记录非零元素和这些非零元素的列坐标,以及原始矩阵在新的向量中每行开始的位置。CSR在做矩阵向量乘法时,还需要拿到这些非零元所对应的向量元素,这时,便出现了需要读取众多不连续的元素的情况。
本发明拟设计一种基于稀疏矩阵乘法的FPGA存储方法,其是一种并行计算存储方法,包括实现此方法依赖的模块,并基于此方法和模块进一步实现一种计算方法及此计算方法对应的模块,其能够利用FPGA解决稀疏矩阵向量乘法过程中读取不连续向量元素问题。
下面结合附图,对本发明做详细阐述,本实施例的开发平台为Xilinx公司的U280FPGA板卡。
如图2、图3、图4所示,本发明的基于稀疏矩阵乘法的FPGA存储方法,即基于稀疏矩阵乘法的FPGA并行计算存储方法,具体实现步骤包括:
Step1:向量存储改造:将稀疏矩阵向量乘法中的向量按照对应标号和并行度进行取模,本实施例中并行度为4,按照顺序将向量存到和取模结果标号相同的FPGA的bram中。如图2所示,假设向量有12个元素分别标号为0-11,原本的12个向量元素存在4个block ram中,按照这12个元素标号和并行度为4的取模值来区分到底存在哪一块。
Step2:矩阵存储改造:对稀疏矩阵向量乘法中的稀疏矩阵的每一行进行操作,如图3所示,图中Array为数组名,mod为取模符号,以CSR格式存储的矩阵按照非零元素对应列坐标进行划分,将元素本身和对应列坐标存到4个数组里去,以数组元素最多的数组为基准,将其他数组补零至相同长度。对稀疏矩阵向量乘法中的稀疏矩阵的每一行进行如下操作:
S21:新建和并行度数量相同(对应)的数组,所述并行度数量可以是任意的;
S22:将一行中的所有非零元素按照列坐标和并行度进行取模运算,将非零元素和这些非零元素对应的列坐标存放到和取模结果相同的数组中去;
S23:完成一行中所有元素的存放后,以元素最多的数组为基准,给其他数组补零元素以及列坐标,列坐标和被补数组的标号相同;
S24:将每个数组第一个元素和对应列坐标取出连续地存放在内存中,再将每个数组第二个元素和对应列坐标取出连续地存放在内存中,依次类推,将数组中所有元素都取出存放在内存中;
S25:再对矩阵下一行进行同样的操作。
Step3:存储数组元素:如图4所示,将矩阵存储改造步骤中新建的数组元素相同位置的取出来放在一起存储,先将4个数组的第一个元素和对应列坐标拿出来放在一起,再将4个元素的第2个元素和对应列坐标拿出来放在一起,以此类推,直到数组中所有元素和这些元素对应的列坐标被取出;
Step4:至此得到了如图5所示的存储结构,这是一个适合并行计算的存储结构,向量存放在4个FPGA的bram中,矩阵和此矩阵对应的列坐标连续地存放在内存中,每次从样本矩阵中拿出4个元素进行乘法计算,在读取这个4个元素对应列坐标时会发现此4个元素对应的4个向量元素都分布在不同的block ram(bram)中。分别将4个元素对应的列坐标发送到4个bram中,4个bram分别返回一个向量元素,即4个元素所对应的向量元素,这样就能很好地进行并行度为4的稀疏矩阵乘法计算了,通过此种方法扩展,可以进行并行度更高的稀疏矩阵向量乘法计算。
Step5:开始计算时,每次从内存中取出连续的和并行度数目相同的元素和这些元素对应的列坐标,将列坐标分别传递到所有bram中,从每个bram中获取到对应向量元素,将内存中取到的元素按一一对应的顺序和bram中取出的向量元素进行乘法运算,将所有乘法运算累加,直到矩阵的一行全被取出,将累加结果输出并清空开始下一行的计算。
Step6:完成上述步骤后,完成计算,最终得到所有输出结果,所述最终的所有输出结果为稀疏矩阵向量乘法的结果。
本发明还提供一种FPGA存储模块,即实现稀疏矩阵乘法的FPGA存储方法的稀疏矩阵乘法的FPGA并行计算存储模块,模块组成包括:
向量存储改造模块:将稀疏矩阵向量乘法中的向量按照对应标号和并行度进行取模,用于区分存储位置;
矩阵存储改造模块:用于对稀疏矩阵向量乘法中的稀疏矩阵的每一行进行操作,新建数组,所述数组数量和并行度数量相同,所述并行度数量是任意的;
数组元素存储模块:用于将矩阵存储改造模块新建的数组元素相同位置的取出来放在一起存储;
上述三大模块构成用于并行计算的并行计算存储结构。
本发明还提供一种FPGA计算模块,即实现稀疏矩阵乘法的FPGA计算方法的稀疏矩阵乘法的FPGA并行计算模块,模块组成包括:
并行计算存储模块:基于并行计算存储结构,用于向量存储改造,矩阵存储改造,数组元素存储;
计算模块,用于计算得到所有输出结果,所述最终的所有输出结果为稀疏矩阵向量乘法的结果。
此外,本发明还提供了一种FPGA板,包括FPGA板本体,还包括如上所述的FPGA存储模块和一种FPGA计算模块。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

Claims (10)

1.一种基于稀疏矩阵乘法的FPGA存储方法,其特征在于,具体实现步骤包括:
向量存储改造:将稀疏矩阵向量乘法中的向量按照对应标号和并行度进行取模,用于区分存储位置;
矩阵存储改造:对稀疏矩阵向量乘法中的稀疏矩阵的每一行进行操作,所述操作包括新建数组,所述数组数量和并行度数量相同;
存储数组元素:将矩阵存储改造步骤中新建的数组元素相同位置的取出来放在一起存储,获得并行计算存储结构。
2.根据权利要求1所述基于稀疏矩阵乘法的FPGA存储方法,其特征在于,所述矩阵存储改造步骤中,以CSR格式存储的矩阵按照非零元素对应列坐标进行划分,将元素本身和对应列坐标存到所有数组里去,以数组元素最多的数组为基准,将其他数组补零至相同长度。
3.根据权利要求1所述基于稀疏矩阵乘法的FPGA存储方法,其特征在于,所述矩阵存储改造的操作还包括:
将一行中的所有非零元素按照列坐标和并行度进行取模运算,将非零元素和这些非零元素对应的列坐标存放到和取模结果相同的数组中去;
完成一行中所有元素的存放后,以元素最多的数组为基准,给其他数组补零元素以及列坐标,列坐标和被补数组的标号相同;
将每个数组第一个元素和对应列坐标取出连续地存放在内存中,再将每个数组第二个元素和对应列坐标取出连续地存放在内存中,依次类推,将数组中所有元素都取出存放在内存中;
矩阵下一行重复上述操作直至最后一行。
4.根据权利要求1所述基于稀疏矩阵乘法的FPGA存储方法,其特征在于,所述存储数组元素,还包括先将所有数组的第一个元素和对应列坐标拿出来放在一起,再将所有数组的第二个元素和对应列坐标拿出来放在一起,以此类推,直到数组中所有元素和其对应的列坐标被取出。
5.根据权利要求1所述基于稀疏矩阵乘法的FPGA存储方法,其特征在于,所述获得并行计算存储结构,向量存放在所有FPGA的bram中,矩阵和所有FPGA的bram对应的列坐标连续地存放在内存中。
6.根据权利要求1所述基于稀疏矩阵乘法的FPGA存储方法,其特征在于,所述获得并行计算存储结构后,进行以并行度数量为基础的稀疏矩阵向量乘法计算。
7.一种基于稀疏矩阵乘法的FPGA计算方法,其特征在于,包括:
基于权利要求1所述并行计算存储结构,开始计算,最终得到所有输出结果,所述最终的所有输出结果为稀疏矩阵向量乘法的结果;开始计算时,每次从内存中取出连续的和并行度数目相同的元素和这些元素对应的列坐标,将列坐标分别传递到所有FPGA的bram中,从每个bram中获取到对应向量元素,将内存中取到的元素按一一对应的顺序和bram中取出的向量元素进行乘法运算,将所有乘法运算累加,直到矩阵的一行全被取出,将累加结果输出并清空开始下一行的计算。
8.一种FPGA存储模块,其特征在于,模块组成包括:
向量存储改造模块:将稀疏矩阵向量乘法中的向量按照对应标号和并行度进行取模,用于区分存储位置;
矩阵存储改造模块:用于对稀疏矩阵向量乘法中的稀疏矩阵的每一行进行操作,新建数组,所述数组数量和并行度数量相同,所述并行度数量是任意的;
数组元素存储模块:用于将矩阵存储改造模块新建的数组元素相同位置的取出来放在一起存储;
上述三大模块构成用于并行计算的并行计算存储结构。
9.一种FPGA计算模块,其特征在于,模块组成包括:
并行计算存储模块:基于并行计算存储结构,用于向量存储改造,矩阵存储改造,数组元素存储;
计算模块,用于计算得到所有输出结果,所述最终的所有输出结果为稀疏矩阵向量乘法的结果。
10.一种FPGA板,其特征在于,包括FPGA板本体,还包括如权利要求8所述的FPGA存储模块或如权利要求9所述的一种FPGA计算模块。
CN202010535432.8A 2020-06-12 2020-06-12 基于稀疏矩阵乘法的fpga存储方法、计算方法、模块和fpga板 Active CN111796796B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010535432.8A CN111796796B (zh) 2020-06-12 2020-06-12 基于稀疏矩阵乘法的fpga存储方法、计算方法、模块和fpga板

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010535432.8A CN111796796B (zh) 2020-06-12 2020-06-12 基于稀疏矩阵乘法的fpga存储方法、计算方法、模块和fpga板

Publications (2)

Publication Number Publication Date
CN111796796A true CN111796796A (zh) 2020-10-20
CN111796796B CN111796796B (zh) 2022-11-11

Family

ID=72803240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010535432.8A Active CN111796796B (zh) 2020-06-12 2020-06-12 基于稀疏矩阵乘法的fpga存储方法、计算方法、模块和fpga板

Country Status (1)

Country Link
CN (1) CN111796796B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231630A (zh) * 2020-10-26 2021-01-15 国家超级计算无锡中心 基于fpga并行加速的稀疏矩阵求解方法
CN112507284A (zh) * 2020-12-18 2021-03-16 清华大学 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置
CN113360188A (zh) * 2021-05-18 2021-09-07 中国石油大学(北京) 一种用于优化稀疏矩阵-向量乘的并行处理方法及装置
CN113505342A (zh) * 2021-07-08 2021-10-15 北京华大九天科技股份有限公司 一种rc矩阵向量乘法的改进方法
CN117171497A (zh) * 2023-11-02 2023-12-05 深圳十沣科技有限公司 稀疏矩阵存储方法、装置、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125477A1 (en) * 2003-12-04 2005-06-09 Genov Roman A. High-precision matrix-vector multiplication on a charge-mode array with embedded dynamic memory and stochastic method thereof
US20060026191A1 (en) * 2004-07-30 2006-02-02 Microsoft Corporation Efficiently ranking web pages via matrix index manipulation and improved caching
CN102141976A (zh) * 2011-01-10 2011-08-03 中国科学院软件研究所 稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法
CN106407158A (zh) * 2016-09-12 2017-02-15 东南大学 一种gpu加速的批处理同构稀疏矩阵乘满向量的处理方法
CN107704916A (zh) * 2016-08-12 2018-02-16 北京深鉴科技有限公司 一种基于fpga实现rnn神经网络的硬件加速器及方法
CN108874744A (zh) * 2017-05-08 2018-11-23 辉达公司 矩阵乘积累加运算的广义加速

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050125477A1 (en) * 2003-12-04 2005-06-09 Genov Roman A. High-precision matrix-vector multiplication on a charge-mode array with embedded dynamic memory and stochastic method thereof
US20060026191A1 (en) * 2004-07-30 2006-02-02 Microsoft Corporation Efficiently ranking web pages via matrix index manipulation and improved caching
CN102141976A (zh) * 2011-01-10 2011-08-03 中国科学院软件研究所 稀疏矩阵的对角线数据存储方法及基于该方法的SpMV实现方法
CN107704916A (zh) * 2016-08-12 2018-02-16 北京深鉴科技有限公司 一种基于fpga实现rnn神经网络的硬件加速器及方法
CN106407158A (zh) * 2016-09-12 2017-02-15 东南大学 一种gpu加速的批处理同构稀疏矩阵乘满向量的处理方法
CN108874744A (zh) * 2017-05-08 2018-11-23 辉达公司 矩阵乘积累加运算的广义加速

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
苏锦柱: "二元域大型稀疏矩阵向量乘的FPGA设计与实现", 《计算机工程与科学》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112231630A (zh) * 2020-10-26 2021-01-15 国家超级计算无锡中心 基于fpga并行加速的稀疏矩阵求解方法
CN112231630B (zh) * 2020-10-26 2024-02-02 国家超级计算无锡中心 基于fpga并行加速的稀疏矩阵求解方法
CN112507284A (zh) * 2020-12-18 2021-03-16 清华大学 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置
CN112507284B (zh) * 2020-12-18 2022-08-12 清华大学 稀疏矩阵乘法在可重构处理器阵列上的实现方法及装置
CN113360188A (zh) * 2021-05-18 2021-09-07 中国石油大学(北京) 一种用于优化稀疏矩阵-向量乘的并行处理方法及装置
CN113360188B (zh) * 2021-05-18 2023-10-31 中国石油大学(北京) 一种用于优化稀疏矩阵-向量乘的并行处理方法及装置
CN113505342A (zh) * 2021-07-08 2021-10-15 北京华大九天科技股份有限公司 一种rc矩阵向量乘法的改进方法
CN117171497A (zh) * 2023-11-02 2023-12-05 深圳十沣科技有限公司 稀疏矩阵存储方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111796796B (zh) 2022-11-11

Similar Documents

Publication Publication Date Title
CN111796796B (zh) 基于稀疏矩阵乘法的fpga存储方法、计算方法、模块和fpga板
CN108229645B (zh) 卷积加速和计算处理方法、装置、电子设备及存储介质
CN108205519B (zh) 矩阵乘加运算装置和方法、处理装置、芯片、电子装置
WO2022037257A1 (zh) 卷积计算引擎、人工智能芯片以及数据处理方法
CN111414994B (zh) 一种基于FPGA的Yolov3网络计算加速系统及其加速方法
CN112292816A (zh) 处理核心数据压缩和存储系统
JP2004364233A5 (zh)
JP2010521728A (ja) データ圧縮のための回路及びこれを用いるプロセッサ
CN109840585B (zh) 一种面向稀疏二维卷积的运算方法和系统
CN111931925B (zh) 基于fpga的二值化神经网络的加速系统
WO2022110386A1 (zh) 数据处理方法及人工智能处理器
CN112464296A (zh) 一种用于同态加密技术的大整数乘法器硬件电路
CN114138231B (zh) 执行矩阵乘法运算的方法、电路及soc
CN111008691B (zh) 一种权值和激活值都二值化的卷积神经网络加速器架构
CN111507430B (zh) 基于矩阵乘法的特征编码方法、装置、设备及介质
WO2021168644A1 (zh) 数据处理装置、电子设备和数据处理方法
CN110569970B (zh) 一种应用于卷积神经网络中硬件加速器的数据传输方法
CN112364985A (zh) 一种基于分布式编码的卷积优化方法
TWI779475B (zh) 圖形處理器及其加速方法
CN113128688B (zh) 通用型ai并行推理加速结构以及推理设备
CN103152059A (zh) Ccsds系统rs编码中常系数矩阵的生成装置和方法
CN109635236B (zh) 对称矩阵的下三角部分存储装置和并行读取方法
CN109614582B (zh) 自共轭矩阵的下三角部分存储装置和并行读取方法
CN114691627A (zh) 深度学习加速芯片的数据压缩方法、数据压缩系统及运算方法
KR102572429B1 (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
GR01 Patent grant
GR01 Patent grant