CN105608056A - 一种基于Flink的大规模矩阵并行化的计算方法 - Google Patents
一种基于Flink的大规模矩阵并行化的计算方法 Download PDFInfo
- Publication number
- CN105608056A CN105608056A CN201510764595.2A CN201510764595A CN105608056A CN 105608056 A CN105608056 A CN 105608056A CN 201510764595 A CN201510764595 A CN 201510764595A CN 105608056 A CN105608056 A CN 105608056A
- Authority
- CN
- China
- Prior art keywords
- matrix
- block
- extensive
- flink
- inversion
- 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
- 239000011159 matrix material Substances 0.000 title claims abstract description 216
- 238000004364 calculation method Methods 0.000 title claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 11
- 239000013598 vector Substances 0.000 claims description 29
- 238000000638 solvent extraction Methods 0.000 claims description 12
- 238000000205 computational method Methods 0.000 claims description 10
- 238000013461 design Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 claims description 3
- 230000008859 change Effects 0.000 claims description 2
- 230000008030 elimination Effects 0.000 claims description 2
- 238000003379 elimination reaction Methods 0.000 claims description 2
- 238000005457 optimization Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- OOIBFPKQHULHSQ-UHFFFAOYSA-N (3-hydroxy-1-adamantyl) 2-methylprop-2-enoate Chemical compound C1C(C2)CC3CC2(O)CC1(OC(=O)C(=C)C)C3 OOIBFPKQHULHSQ-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000007799 cork Substances 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于Flink的大规模矩阵并行化的计算方法,主要包括以下步骤:利用FlinkDataSet对大规模矩阵数据进行存储,在单个计算机上对矩阵进行计算时采用BLAS对矩阵计算进行加速;设计并实现了矩阵的相加、相减等一系列矩阵操作;设计了并行化的方案并结合Flink和算法的特点设计了三种优化手段提升不同形状的矩阵相乘运算的性能,包括:基于方块划分方式的矩阵分块相乘、基于CARMA划分方式的矩阵分块相乘和基于广播方式的矩阵分块相乘。本发明解决了传统单个计算机情形下大规模矩阵计算开销大甚至无法计算的问题,具有很好地扩展性。
Description
技术领域
本发明涉及分布式计算领域,尤其涉及一种基于Flink的大规模矩阵计算库的设计与实现方法。
背景技术
矩阵计算在众多工业界、学术界的领域起着重要的作用,例如大规模数值分析、数据挖掘、物理计算以及图像渲染等。一直以来,人们都在研究高效的矩阵相乘、求逆等诸多算法,以追求提升构建在矩阵计算之上的应用的性能。在如今“大数据”的时代背景下,随着数据量的飞速增长,矩阵的规模往往也会变得非常的庞大,以至于传统的单个计算机已经无法对之进行存储、计算。
矩阵运算包括矩阵的相加、相减、相乘、求逆等诸多操作。矩阵的相加、相减等计算较为简单,一般通过join(连接)两个矩阵即可完成。矩阵相乘运算相对于矩阵相加、相减等操作复杂度较高。一般分布式矩阵相乘采用矩阵的分块相乘算法。这种算法通过将矩阵划分成一个个相对较小的块矩阵,一方面保证了每次计算的矩阵变得较小,避免了过大的矩阵无法计算的问题,另一方面又因为各个块矩阵的计算是相互独立的,使得算法可并行化。矩阵求逆运算通常采用Gauss-Jordan消元算法。在求解方程AX=E的过程时,我们只需要对A进行初等列变换,将其转化为一个单位矩阵,同时E也跟着做相同的变换,则最终E将会变成A矩阵的逆矩阵,其中A为所需求逆的矩阵,E为单位矩阵。Gauss-Jordan消元求逆算法同样可以并行化,在对大规模的矩阵进行求逆时使用并行化的Gauss-Jordan求逆算法可以加快矩阵求逆的速度。
已有的一些分布式矩阵相乘算法,如SUMMA、HAMA等,是基于MPI或者HadoopMapReduce等分布式计算框架上实现的。MPI编程十分繁琐,有太多与算法无关的细节需要开发者去考虑,并且其扩展性也不够理想,当计算机数量不断的增加时,MPI的性能甚至可能会下降很多。另外,MPI并不提供容错,这也需要开发者去实现容错或直接放弃系统的容错。利用HadoopMapReduce来实现矩阵的分块相乘计算也不够理想。HadoopMapReduce的每次计算都会将中间结果存储到磁盘中去,这就大大降低了程序的计算效率。另外MapReduce只提供map和reduce两种操作方式,这使开发复杂的矩阵相乘计算变得更加困难。对于大规模矩阵的求逆计算,也有在MPI上的实现,这类算法也同样存在那些MPI上的缺陷。还有人利用GPU的并行计算能力来实现矩阵的求逆计算,但由于高性能的GPU本身的价格过于昂贵,其实用程度也大大的降低了。
Flink是一个高效的基于内存计算的分布式数据处理平台,是Apache的顶级项目之一。它的核心是一个流式数据流引擎(Streamingdataflowengine),提供了数据流的分布式数据分布、通信和容错功能,具有高效、可靠、可扩展等特性,并且与Hadoop生态系统有着很好的兼容性。Flink使用DataSet来描述并行计算的数据集,并对相应的数据集提供了丰富的诸如map、reduce、join、group之类数据处理接口。然而,标准的Flink提供的并行化操作算子都比较底层,不易于高层的算法分析人员掌握,且使用方式不如矩阵等线性代数的接口清晰简洁。另一方面,目前还没有基于Flink设计实现的大规模分布式矩阵计算库。
发明内容
发明目的:针对上述现有技术的不足与缺陷,本发明的目的是提供一种基于Flink的大规模矩阵并行化的计算方法,能够高效地对大规模矩阵进行相加、相乘、求逆等计算。
技术方案:为实现上述发明目的,本发明采用技术的方案为一种基于Flink的大规模矩阵并行化的计算方法。包括以下步骤:
(1)首先,利用FlinkDataSet(数据集数据结构)对大规模矩阵数据进行存储。在单个计算机上对矩阵进行计算时采用BLAS(基础线性代数子程序库)对矩阵计算进行加速;
(2)然后,利用FlinkDataSet的join操作,对两个矩阵对应位置的元素进行运算,从而实现了大规模矩阵的相加、相减、标量运算等一些较为简单的矩阵计算;
(3)接着,对于大规模矩阵相乘,采用分布式矩阵分块相乘算法实现。针对三种不同规模的矩阵采用了相应的优化算法来优化矩阵的运算:对于两个维度规模近似方形矩阵的矩阵,采用基于方块划分方式的矩阵分块相乘;对于维度规模相差较大(一般指相差一个数量级,即10倍或10倍以上)的两个矩阵,采用基于标准的CARMA划分方式的矩阵分块相乘;对于两个矩阵中有一个规模较小的矩阵(一般矩阵元素总数在10000个之内),则采用基于广播方式的矩阵分块相乘;
(4)最后,对于大规模矩阵求逆算法,通过改进Gauss-Jordan消元求逆算法每次迭代只使用一列向量来更新矩阵的缺点,使得矩阵求逆过程中一次迭代可以用多列向量来更新整个矩阵,从而减少了矩阵求逆算法的迭代次数。
进一步地,所述步骤(1)中,使用了矩阵行向量存储方式和块矩阵存储方式,分别用于矩阵的描述和矩阵的乘法与求逆计算。
进一步地,所述步骤(1)中,使用Net-lib的JNI(JavaNativeInterface)调用底层CPU来实现java对BLAS的调用以加速矩阵的计算效率。
进一步地,所述步骤(2)中,对行向量矩阵和块矩阵分别实现相应相加、相减等操作。
进一步地,所述步骤(3)中,使用一个判别算法来对矩阵选择不同优化算法进行相乘计算:当两个矩阵为方形矩阵或者是近似方形的矩阵时,选择基于方块划分的方式对矩阵进行分块;当矩阵的两维相差较大时,选择基于CARMA(Communication-AvoidingRecursiveMatrixMultiply,通信避免的递归矩阵乘法)的划分方式来对矩阵进行分块;当相乘的两个矩阵中有一块较小时,广播较小的矩阵到大矩阵所在的计算机进行相乘计算。
进一步地,所述步骤(4)中,不再像Gauss-Jordan消元求逆算法那样每次迭代只用一列列向量去更新整个矩阵,而是每次用多个列向量去更新整个矩阵,从而降低了算法的迭代次数,减少了迭代所带来的开销,提高了算法的效率。
有益效果:本发明能够有效地实现大规模矩阵的计算:第一,利用Flink的DataSet来实现大规模矩阵的存储并在每个计算机上都使用BLAS来加速矩阵的计算速度。在大规模矩阵的计算过程中,矩阵以及矩阵计算的中间结果可能无法存储到单个计算机的内存中。利用FlinkDataSet能够使数据尽可能地存储在集群上的计算机的内存中,从而有效地提高了计算效率。在每个计算机上,使用底层线性代数计算库来加速矩阵的计算。第二,提供了诸多分布式环境下的大规模矩阵计算接口。本发明实现了包括矩阵的相加、相减、相乘、求逆等运算,使用户在面对大规模矩阵时能够轻松地使用矩阵的各类计算实现所需的应用。第三,在处理大规模矩阵相乘时,本发明采用了三种不同的优化算法来针对不同规模矩阵相乘的情况,从而提高了不同规模矩阵相乘的效率。同时,本发明还提供了一种自动选择方案来针对各类矩阵相乘的情况选择相应的相乘算法,保证了算法对用户的透明性和易用性。第四,在处理大规模矩阵求逆时,本发明提出了一种基于Gauss-Jordan消元求逆算法的优化算法。通过降低原有算法的迭代次数,减少了迭代所带来的额外开销,从而提高了大规模矩阵的求逆效率。
附图说明
图1为本发明的系统框架图。
图2为本发明中基于方阵划分方式的矩阵分块相乘算法示意图。
图3为本发明中优化后的矩阵求逆算法示意图。
图4为本发明中三种矩阵分块相乘优化算法的效果图。
图5为本发明中优化后的矩阵求逆算法与未优化的矩阵求逆算法效果图。
具体实施方式
本发明是一种基于Flink的大规模矩阵并行化的计算方法,提供了包括了矩阵的加、减、点乘、点除、矩阵相乘、矩阵求逆等一系列矩阵运算接口并在系统底层使用BLAS来加速矩阵运算的效率。本发明的系统框架如图1所示。
本发明使用了两种数据结构来描述矩阵:行向量矩阵和块矩阵。行向量矩阵描述的是矩阵最普遍、直观的表示形式,它是一个由矩阵行号和该行号所对应的行向量构成的元组的集合所组成,我们从文件读入或写出到文件中时都是这种形式的矩阵。块矩阵则是一组已经分好块的矩阵块和对应的块编号的集合,因为在矩阵的一些运算中,经常可以看到并行化的算法都需要对矩阵进行分块,在矩阵相乘和矩阵求逆时就利用块矩阵来对矩阵进行并行化计算。另外这两种矩阵之间可以相互转换。
对于矩阵的加法、减法、点乘、点除等操作,本发明利用了Flink的join操作对相应的行向量之间进行操作。矩阵的转置操作是将行向量矩阵转化成块矩阵,然后并行地对每个块矩阵进行求逆,同时交换块编号中的行坐标和列坐标。而对于矩阵的最大值、最小值等操作则是利用了FlinkDataSet中所提供的相应的操作符来实现。
本发明中,矩阵的乘法运算都是采用的矩阵分块相乘算法。针对不同类型的矩阵,使用了3种矩阵相乘的算法。当两个矩阵都为方形矩阵或近似方形矩阵时,我们采用均等分的划分方式来对矩阵进行划分。图2展示了该划分算法下的分布式矩阵分块相乘算法的示意图。在这种划分方式下,两个相乘的矩阵都被划分成了n×n的块矩阵,同时每个矩阵块都有着自己的编号,用于记录该矩阵块在原矩阵中的位置(行坐标、列坐标),并且用一个seq标记来区分同一个坐标下不同的块矩阵。然后我们对每一个块矩阵进行flatMap,生成一组n个相同的块矩阵,每组新生成的块矩阵都有着不同的块行号、块列号和seq值,但它们的数据却完全相同。之后按块矩阵编号对所有的块矩阵进行join操作,将编号完全相同的两个块矩阵聚成一组。再对join后的每一组块矩阵进行相乘(map)。接着将所有的数据按块编号进行groupBy操作,最后将每个group中的块矩阵进行累加(reduce),便形成了最终的矩阵相乘的结果。最终的计算结果仍然是一个n×n的块矩阵。当处理两个相乘的矩阵并不都是方形矩阵的时候,此时若划分块的行数、列数完全相同,并不合适。于是我们采用了标准CARMA(Communication-AvoidingRecursiveMatrixMultiply,通信避免的递归矩阵乘法)的划分方式对矩阵进行划分。CARMA对矩阵进行划分的算法是一种递归的算法,它每次选取两个相乘矩阵中最大的维度划分,同时为划分出来的块分配资源(处理器),直至资源被分配完则停止划分。在利用Flink进行计算时,我们要尽量避免数据打乱(shuffle),因为数据打乱重新整理所花费的网络开销是比较大的。使用CARMA划分法对矩阵进行划分时,设划分的块数为m、k、n,即左矩阵被划分成m×k块,而右矩阵被划分成k×n块矩阵,当k=1时,此时再join和map操作之后,矩阵相乘的结果已经出来了,而不需要再进行group和reduce操作,以避免不需要的开销。当处理一个极大的矩阵与一个很小的矩阵相乘的情况时,如果仍然对两个矩阵都进行分块的话,在join操作时这两个矩阵的块矩阵都将要被shuffle,而前述分析,shuffle在计算过程中所占的开销是很大的。此时如果我们利用了Flink的BroadcastVariable机制将小的矩阵广播到大矩阵每个分块所在的计算机上,就可以避免了大矩阵在join过程中被shuffle了。这种算法是矩阵分块相乘算法的一种特殊形式,即两个矩阵按照m×1×1或1×1×n的方式进行划分,即只划分大矩阵并且采用了广播小矩阵的方式取代了前两种方法所用的join方式,从而避免了不必要的网络传输开销。
对于矩阵的求逆计算,本发明提出了一种基于Gauss-Jordan求逆算法的优化计算方法。在分布式的情况下,各计算机之间的shuffle、同步等操作是必不可少的,但这些操作的时间开销是比较大,在进行上千次迭代计算的时候,仍然要花费很长的时间,这就直接导致了在Flink上对大规模矩阵进行Gauss-Jordan求逆计算时的效率并不高。研究如何降低迭代的次数成为提高Flink矩阵求逆算法的关键。通过观察可以发现,我们每次都是将一个主元所对应的列向量广播给分块矩阵的每一个块,这就是导致迭代次数非常大的原因。如果我们可以一次同时广播多个主元以及主元所对应的列向量给各个块,那么便可以有效的减少算法的迭代时间。因此,本发明提出的Gauss-Jordan优化方法如下:通过观察可以发现,第k次的主元的列向量只与第1~k次的主元向量相关,然而在k之后的迭代计算中,主元及其列向量也被之后的计算覆盖了。所以,如果我们希望一次广播多个主元和主元所对应的列向量,则需要预先将主元和列向量计算生成好。显然,主元及其列向量是不会一次生成完的(否则矩阵求逆的计算便直接完成了),但事实是,在计算到第k列时,我们是可以计算出k之后所有列的主元及其列向量,而不需要其他任何信息。所以,在一个块矩阵之前所有块矩阵都计算完成的情况下,我们可以求出该块矩阵每一列所对应的主元及其列矩阵。如图3所示,我们可以利用这个性质,依次选取出每一个块矩阵,然后计算选取块中每一列向量的主元以及主元列向量,然后将其分发到其他各个块,并行地对整个矩阵进行更新。当整个矩阵更新完毕时,便进入了下一次迭代,选取下一个分块矩阵,进行新块矩阵的主元和主元列向量的计算。本算法将迭代次数由原先的矩阵的维数降低到分块的块数,有效的减少了迭代所带来的额外开销。
本发明基于已有的一些开源软件实现了一个原型系统。其中大规模数据处理平台Flink、基础线性代数子程序库BLAS,这两个软件不属于本发明的内容。
基于不同规模的矩阵,本发明对于矩阵的相乘和矩阵的求逆进行了一些评测。图4展示了三种不同的优化算法在不同维度下的计算效果,证明了三种优化算法的有效性。图5展示了未优化的Gauss-Jordan的消元求逆算法和优化后的Gauss-Jordan求逆算法的对比图,证明了优化后的算法的有效性。
Claims (6)
1.一种基于Flink的大规模矩阵并行化的计算方法,包括以下步骤:
(1)利用FlinkDataSet对大规模矩阵数据进行存储,并且在单个计算机上对矩阵进行计算时采用BLAS对矩阵计算进行加速;
(2)利用FlinkDataSet的连接操作,对两个矩阵对应位置的元素进行运算,从而实现了大规模矩阵的相加、相减、标量运算;
(3)对于矩阵的相乘计算,采用分布式矩阵分块相乘算法实现,并针对三种不同形状的矩阵采用了相应的优化算法来优化矩阵的运算:对于方形矩阵或者近似方形的矩阵时,采用基于方块划分方式的矩阵分块相乘算法;对于维度规模相差较大的两个矩阵,采用基于标准的CARMA划分方式的矩阵分块相乘算法;对于两个矩阵中有一个较小的矩阵时,则采用基于广播方式的矩阵分块相乘算法;
(4)对于矩阵的求逆计算,通过改进的Gauss-Jordan消元求逆算法每次迭代只使用一列向量来更新矩阵的缺点,使得矩阵求逆过程中一次迭代可以用多列向量来更新整个矩阵,从而减少了矩阵求逆算法的迭代次数。
2.根据权利要求1所述一种基于Flink的大规模矩阵并行化的计算方法,其特征在于:所述步骤(1)中,使用了矩阵行向量存储方式和块矩阵存储方式,分别用于矩阵的描述和矩阵的乘法与求逆计算,将使用行向量存储方式的矩阵和使用块矩阵存储方式的矩阵分别称作行向量矩阵和块矩阵。
3.根据权利要求1所述一种基于Flink的大规模矩阵并行化的计算方法,其特征在于:所述步骤(1)中,使用Net-lib的JNI来实现java对BLAS的调用以加速矩阵的计算效率。
4.根据权利要求1所述一种基于Flink的大规模矩阵并行化的计算方法,其特征在于:所述步骤(2)中,对行向量矩阵和块矩阵分别实现相应相加、相减操作。
5.根据权利要求1所述一种基于Flink的大规模矩阵计算库的设计与实现,其特征在于:所述步骤(3)中,如果两个矩阵的维度规模相差10倍或10倍以上,则认为所述维度规模相差较大;如果矩阵元素总数不超过10000个,则认为矩阵较小;所述基于广播方式的矩阵分块相乘算法为:广播较小的矩阵到大矩阵所在的计算机进行相乘计算。
6.根据权利要求1所述一种基于Flink的大规模矩阵并行化的计算方法,其特征在于:所述步骤(4)中,所述改进的Gauss-Jordan消元求逆算法为:每次迭代开始先计算出多列主元向量,而不是原先Gauss-Jordan消元算法中每次迭代只计算一列主元向量;并且,每次迭代都是用多个列向量去并行地更新整个块矩阵中各个矩阵块,从而降低了整个求逆过程的迭代次数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510764595.2A CN105608056A (zh) | 2015-11-09 | 2015-11-09 | 一种基于Flink的大规模矩阵并行化的计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510764595.2A CN105608056A (zh) | 2015-11-09 | 2015-11-09 | 一种基于Flink的大规模矩阵并行化的计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105608056A true CN105608056A (zh) | 2016-05-25 |
Family
ID=55988002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510764595.2A Pending CN105608056A (zh) | 2015-11-09 | 2015-11-09 | 一种基于Flink的大规模矩阵并行化的计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105608056A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391447A (zh) * | 2017-07-26 | 2017-11-24 | 成都网烁信息科技有限公司 | 一种电脑加速系统及方法 |
CN110083390A (zh) * | 2017-08-31 | 2019-08-02 | 北京中科寒武纪科技有限公司 | 一种gemv运算运算方法及装置 |
CN112559515A (zh) * | 2020-07-08 | 2021-03-26 | 北京德风新征程科技有限公司 | 一种矩阵计算求变过程中优化数据存储空间的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794355A (zh) * | 2010-03-26 | 2010-08-04 | 中国人民解放军空军工程大学 | 电大物体电磁辐射和散射的计算机核外并行计算方法 |
CN102880594A (zh) * | 2012-10-17 | 2013-01-16 | 电子科技大学 | 基于多核dsp的并行矩阵全选主元高斯约旦求逆算法 |
CN104298649A (zh) * | 2014-09-24 | 2015-01-21 | 江苏中兴微通信息科技有限公司 | 一种低复杂度的快速并行矩阵求逆方法 |
-
2015
- 2015-11-09 CN CN201510764595.2A patent/CN105608056A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794355A (zh) * | 2010-03-26 | 2010-08-04 | 中国人民解放军空军工程大学 | 电大物体电磁辐射和散射的计算机核外并行计算方法 |
CN102880594A (zh) * | 2012-10-17 | 2013-01-16 | 电子科技大学 | 基于多核dsp的并行矩阵全选主元高斯约旦求逆算法 |
CN104298649A (zh) * | 2014-09-24 | 2015-01-21 | 江苏中兴微通信息科技有限公司 | 一种低复杂度的快速并行矩阵求逆方法 |
Non-Patent Citations (6)
Title |
---|
ALEXANDER ALEXANDROV等: "Implicit Parallelism through Deep Language Embedding", 《SIGMOD’15》 * |
RONG GU等: "Efficient Large Scale Distributed Matrix Computation with Spark", 《2015 IEEE INTERNATIONAL CONFERENCE ON BIG DATA》 * |
朱道立: "大系统优化概述", 《运筹学杂志》 * |
毛飞等: "使用CUDA平台关于并行高斯-约当消去法的研究与比较", 《计算机应用与软件》 * |
石虎等: "全主元高斯消去法在有限元并行计算中的应用", 《湖北工业大学学报》 * |
苗海珍: "一种基于云计算的Pagerank算法", 《阴山学刊》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391447A (zh) * | 2017-07-26 | 2017-11-24 | 成都网烁信息科技有限公司 | 一种电脑加速系统及方法 |
CN110083390A (zh) * | 2017-08-31 | 2019-08-02 | 北京中科寒武纪科技有限公司 | 一种gemv运算运算方法及装置 |
CN110222308A (zh) * | 2017-08-31 | 2019-09-10 | 北京中科寒武纪科技有限公司 | 一种矩阵乘矩阵运算方法及装置 |
CN110231958A (zh) * | 2017-08-31 | 2019-09-13 | 北京中科寒武纪科技有限公司 | 一种矩阵乘向量运算方法及装置 |
CN110245751A (zh) * | 2017-08-31 | 2019-09-17 | 北京中科寒武纪科技有限公司 | 一种gemm运算运算方法及装置 |
CN110245751B (zh) * | 2017-08-31 | 2020-10-09 | 中科寒武纪科技股份有限公司 | 一种gemm运算方法及装置 |
CN110222308B (zh) * | 2017-08-31 | 2020-12-29 | 安徽寒武纪信息科技有限公司 | 一种矩阵乘矩阵运算方法及装置 |
CN112559515A (zh) * | 2020-07-08 | 2021-03-26 | 北京德风新征程科技有限公司 | 一种矩阵计算求变过程中优化数据存储空间的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110826719B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
JP4339381B2 (ja) | 共有メモリ型マルチプロセッサシステム及びその情報処理方法 | |
US20190266217A1 (en) | Apparatus and method for matrix computation | |
Yu et al. | Scalable coordinate descent approaches to parallel matrix factorization for recommender systems | |
CN110516810B (zh) | 一种量子程序的处理方法、装置、存储介质和电子装置 | |
CN102043761B (zh) | 一种基于可重构技术的傅立叶变换的实现方法 | |
CN111563598B (zh) | 预估量子计算模拟时间的方法、系统 | |
CN103984527A (zh) | 优化稀疏矩阵向量乘提升不可压缩管流模拟效率的方法 | |
WO2018027706A1 (zh) | Fft处理器及运算方法 | |
CN105608056A (zh) | 一种基于Flink的大规模矩阵并行化的计算方法 | |
CN111160560B (zh) | 预估模拟量子计算所需资源的方法、系统 | |
Sun et al. | An I/O bandwidth-sensitive sparse matrix-vector multiplication engine on FPGAs | |
Bekas et al. | Low‐cost data uncertainty quantification | |
CN106933777B (zh) | 基于国产申威26010处理器的基2一维fft的高性能实现方法 | |
CN105404611A (zh) | 一种基于矩阵模型的多计算引擎的自动选择方法 | |
JP4511469B2 (ja) | 情報処理方法及び情報処理システム | |
CN107273333A (zh) | 基于gpu+cpu异构平台的三维大地电磁反演并行方法 | |
CN106371808B (zh) | 一种并行计算的方法及终端 | |
Demirci et al. | Cartesian partitioning models for 2d and 3d parallel spgemm algorithms | |
CN115408061B (zh) | 复数矩阵运算的硬件加速方法、装置、芯片及存储介质 | |
JP4881435B2 (ja) | メモリ共有型並列処理システムにおいて表形式データを集計する方法及び装置 | |
McColl | Mathematics, Models and Architectures | |
CN113704691A (zh) | 一种申威众核处理器的小规模对称矩阵并行三对角化方法 | |
CN107529638B (zh) | 线性求解器的加速方法、存储数据库及gpu系统 | |
CN117112145B (zh) | 训练模型分配方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160525 |