CN110363699B - 一种基于OpenMP和CUDA的图像特征提取并行算法 - Google Patents

一种基于OpenMP和CUDA的图像特征提取并行算法 Download PDF

Info

Publication number
CN110363699B
CN110363699B CN201910548763.2A CN201910548763A CN110363699B CN 110363699 B CN110363699 B CN 110363699B CN 201910548763 A CN201910548763 A CN 201910548763A CN 110363699 B CN110363699 B CN 110363699B
Authority
CN
China
Prior art keywords
matrix
calculating
openmp
gpu
video memory
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
CN201910548763.2A
Other languages
English (en)
Other versions
CN110363699A (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.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
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 Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN201910548763.2A priority Critical patent/CN110363699B/zh
Publication of CN110363699A publication Critical patent/CN110363699A/zh
Application granted granted Critical
Publication of CN110363699B publication Critical patent/CN110363699B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开一种基于OpenMP和CUDA的图像特征提取并行算法,应用于利用内核原型分析算法的图像特征提取,针对图像本身的特点,即在图像处理算法中存在大量矩阵运算,对内核原型分析算法进行了优化。通过在采用FURTHESTSUM算法对内核原型分析算法进行初始化的过程中,使用了OpenMP多线程并行同时结合归约算法对其进行优化,随后在使用投影梯度法更新矩阵的过程中,使用OpenMP和CUDA在GPU中并行执行其中的矩阵乘法运算,使用OpenMP并行执行其中的矩阵减法运算,即通过多线程的计算解决了现有的内核原型分析算法中由于在进行最大值和矩阵运算的计算时使用串行方法计算,导致其计算速度慢,运行效率低等问题。

Description

一种基于OpenMP和CUDA的图像特征提取并行算法
技术领域
本发明涉及图像特征提取技术领域,尤其涉及一种基于OpenMP和CUDA的图像特征提取并行算法。
背景技术
原型分析算法(简称AA算法)是一种先驱无监督学习技术,该算法直接结合了矩阵分解和聚类的优点的灵活性,同时比常见的矩阵分解和聚类方法有着更好的可解释性,同时在预测任务方面有良好的结果。它被认为是PCA的替代方案,用于从高维数据中发现潜在因子,可应用到各种机器学习问题中。在图像特征提取应用中,与PCA相比,AA提取的特征代表更多不同的图像原型,揭示了可变性和图像的多样性。现有的算法将传统AA程序推广到KERNEL-AA,即内核原型分析算法,以便在潜在的无限希尔伯特空间中提取主凸包,并在原型不能表示为观测数据的凸组合时得到AA的松弛,AA算法采用K-Means的FURTHESTFIRST算法进行初始化,随后使用简单的投影梯度法计算并得到结果。
然而,由于图像本身的特点,图像处理算法中存在大量矩阵运算,内核原型分析算法中在进行最大值和矩阵运算的计算时使用串行方法计算,不能最大限度地将算法并行优化,其计算速度慢,运行效率低。
参考文献:Hansen L K.Archetypal analysis for machine learning and datamining[M].Elsevier Science Publishers B.V.2012.
发明内容
本发明为解决现有的内核原型分析算法中在进行最大值和矩阵运算的计算时使用串行方法计算,其计算速度慢,运行效率低等问题,提供了一种基于OpenMP和CUDA的图像特征提取并行算法。
为实现以上发明目的,而采用的技术手段是:
一种基于OpenMP和CUDA的图像特征提取并行算法,应用于利用内核原型分析算法的图像特征提取,包括以下步骤:
S1.获取待处理的图像,所述图像大小为m×n,则所述图像的矩阵为X(m×n),对待处理矩阵进行计算得到核矩阵K(m×m),K=XTX;并作为内核原型分析算法的输入;
S2.设置内核原型分析算法中的初始参数α、δ和原型个数D;
S3.采用FURTHESTSUM算法对内核原型分析算法进行初始化,使用OpenMP和CUDA在GPU中并行执行所述初始化中的候选点提取过程,根据归约算法求取各计算节点中候选点的最大值后得到最终提取的D个候选点;
S4.根据提取得到D个候选点初始化矩阵C(n×D)以及矩阵S(D×n),其中矩阵S中每个元素的值随机生成;
S5.使用投影梯度法更新矩阵C、矩阵S以及矩阵αC得到计算结果;其中使用投影梯度法更新矩阵的过程中,使用OpenMP和CUDA在GPU中并行执行其中的矩阵乘法运算,使用OpenMP并行执行其中的矩阵减法运算;
S6.根据计算结果计算矩阵A=XC即为对图像进行特征提取得到的特征矩阵。
上述方案中,通过在采用FURTHESTSUM算法对内核原型分析算法进行初始化的过程中,使用了OpenMP多线程并行同时结合归约算法对其进行优化,随后在使用投影梯度法更新矩阵的过程中,使用OpenMP和CUDA在GPU中并行执行其中的矩阵乘法运算,使用OpenMP并行执行其中的矩阵减法运算,即通过多线程的计算提高了算法的运行效率和运行速度。
优选的,步骤S1中所述的内核原型分析算法为:
arg minC,SD(X|XCS)
s.t.|cd|1=1,|sn|1=1
C≥0,S≥0
其中C为原始输入数据的权重系数矩阵,S为原始输入数据变换后的比例系数矩阵,α、δ为针对无纯像元存在的情况引入的尺度变量。
优选的,所述步骤S3具体包括以下步骤:
S31.在所述核矩阵K=XTX中随机选择一个点j作为初始候选点,并放到集合N中;
S32.利用OpenMP开启多个线程:
当n≤2048时,开启2个线程;
当2048<n≤10240时,开启4个线程;
当n>10240时,开启8个线程;
当n达到千万级时,则使用CUDA在GPU开启1024个以上的线程;
S33.将除集合N外的点平均分到步骤S32得到的每个线程中,在每个线程计算线程中的点到集合N中候选点的距离,并选出其中的距离最大值;在所有线程的距离最大值中,再次选出最大值,并将该最大值对应的点加入集合N中作为候选点;
S34.重复步骤S33,直至选出D个候选点;
S35.删除步骤S31随机选出的初始候选点j,并通过步骤S33选出最后一个候选点;得到最终提取的D个候选点。
优选的,步骤S5中所述使用投影梯度法更新矩阵C得到计算结果的具体步骤包括:
S5.1.1计算矩阵C的梯度:
Figure BDA0002104873570000031
其中向量α为一维向量,其中的每个元素等于矩阵C每一列元素之和;矩阵diag(α)为以α的元素为对象线元素的矩阵;
Figure BDA0002104873570000032
等价于矩阵C;矩阵K为核矩阵;矩阵
Figure BDA0002104873570000033
等价于矩阵S;
对上式展开括号得到:
Figure BDA0002104873570000034
a.计算
Figure BDA0002104873570000035
使用OpenMP和CUDA并行执行以下步骤a1~a3,即使用OpenMP和CUDA并行执行矩阵乘法运算;
a1.计算
Figure BDA0002104873570000036
在显存中为矩阵K、矩阵
Figure BDA0002104873570000037
矩阵A2分配空间,将矩阵K和矩阵
Figure BDA0002104873570000038
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000039
得到矩阵A2
a2.计算
Figure BDA00021048735700000310
在显存中为矩阵diag(α)、矩阵
Figure BDA00021048735700000311
矩阵A3分配空间,将矩阵diag(α)和矩阵
Figure BDA00021048735700000312
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA00021048735700000313
得到矩阵A3
a3.计算
Figure BDA00021048735700000314
在显存中为矩阵A4分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA00021048735700000315
得到矩阵A4
a4.计算A5=A2A3:在显存中为矩阵A5分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A2A3,得到矩阵A5
a5.计算A1=A5A4:在显存中为矩阵A1分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A5A4,得到矩阵A1
b.计算
Figure BDA0002104873570000041
b1.计算
Figure BDA0002104873570000042
在显存中为矩阵A7分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000043
得到矩阵A7
b2.计算A6=A7diag(α):在显存中为矩阵A6分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A7diag(α),得到矩阵A6
c.计算
Figure BDA0002104873570000044
使用OpenMP开启4个线程,将计算得到的矩阵A1和矩阵A6平均分为4块分别交由4个线程执行矩阵减法运算,得到矩阵C的梯度;
S5.1.2.在梯度方向上更新矩阵C:
Figure BDA0002104873570000045
其中
Figure BDA0002104873570000046
为归一化不变量,
Figure BDA0002104873570000047
为步长参数,
Figure BDA0002104873570000048
为梯度值;
S5.1.3.通过线性搜索调整μC
S5.1.4.重复执行步骤S5.1.1~S5.1.3直至收敛。
优选的,步骤S5中所述使用投影梯度法更新矩阵S得到计算结果的具体步骤包括:
S5.2.1计算矩阵S的梯度:
Figure BDA0002104873570000049
其中向量α为一维向量,其中的每个元素等于矩阵C每一列元素之和;矩阵diag(α)为以α的元素为对象线元素的矩阵;
Figure BDA00021048735700000410
等价于矩阵C;矩阵
Figure BDA00021048735700000411
为矩阵C的转置;矩阵K为核矩阵;矩阵X为图像矩阵;矩阵
Figure BDA00021048735700000412
等价于矩阵S;
对上式展开括号得到:
Figure BDA00021048735700000413
c.计算
Figure BDA00021048735700000414
使用OpenMP和CUDA并行执行以下步骤c1~c3,即使用OpenMP和CUDA并行执行矩阵乘法运算;
c1.计算
Figure BDA00021048735700000415
在显存中为矩阵
Figure BDA00021048735700000416
矩阵A9分配空间,将矩阵
Figure BDA00021048735700000417
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA00021048735700000418
得到矩阵A9
c2.计算A10=XX:在显存中为矩阵X、矩阵X分配空间,将矩阵X、矩阵X拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算XX,得到矩阵A10
c3.计算
Figure BDA0002104873570000051
在显存中为矩阵
Figure BDA0002104873570000052
矩阵A11分配空间,将矩阵
Figure BDA0002104873570000053
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000054
得到矩阵A11
使用OpenMP和CUDA并行执行步骤c4~c5,即使用OpenMP和CUDA并行执行矩阵乘法运算;
c4.计算A12=A9A10:在显存中为矩阵A12分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A9A10,得到矩阵A12
c5.计算
Figure BDA0002104873570000055
在显存中为矩阵A13分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000056
得到矩阵A13
c6.计算A8=A12A13:在显存中为矩阵A8分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A12A13,得到矩阵A8
d.计算
Figure BDA0002104873570000057
d1.计算
Figure BDA0002104873570000058
在显存中为矩阵A15分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000059
得到矩阵A15
d2.计算A14=A15K:在显存中为矩阵A14分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A15K,得到矩阵A14
e.计算
Figure BDA00021048735700000510
使用OpenMP开启4个线程,将计算得到的矩阵A8和矩阵A14平均分为4块分别交由4个线程执行矩阵减法运算,得到矩阵S的梯度;
S5.2.2.在梯度方向上更新矩阵S:
Figure BDA00021048735700000511
其中
Figure BDA00021048735700000512
为归一化不变量,
Figure BDA00021048735700000513
为步长参数,
Figure BDA00021048735700000514
为梯度值;
S5.2.3.通过线性搜索调整μS
S5.2.4.重复执行步骤S5.2.1~S5.2.3直至收敛。
优选的,步骤S5中所述使用投影梯度法更新矩阵αC得到计算结果的具体步骤包括:
S5.3.1计算矩阵αC的梯度:
Figure BDA0002104873570000061
其中向量α为一维向量,其中的每个元素等于矩阵C每一列元素之和;矩阵diag(α)为以α的元素为对象线元素的矩阵;
Figure BDA0002104873570000062
等价于矩阵C;矩阵
Figure BDA0002104873570000063
为矩阵C的转置;矩阵K为核矩阵;矩阵
Figure BDA0002104873570000064
等价于矩阵S;
Figure BDA0002104873570000065
为归一化不变量;
f.计算
Figure BDA0002104873570000066
使用OpenMP和CUDA并行执行以下步骤f1~f2,即使用OpenMP和CUDA并行执行矩阵乘法运算;
f1.计算
Figure BDA0002104873570000067
在显存中为矩阵A17分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000068
得到矩阵A17
f2.计算
Figure BDA0002104873570000069
在显存中为矩阵A18分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA00021048735700000610
得到矩阵A18
f3.计算A19=A17A18:在显存中为矩阵A19分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A17A18,得到矩阵A19
f4.计算A16=A19S:在显存中为矩阵A16分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A19S,得到矩阵A16
g.计算
Figure BDA00021048735700000611
在显存中为矩阵A20分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA00021048735700000612
得到矩阵A20
h.计算A21=A16-A20:使用OpenMP开启4个线程,将计算得到的矩阵A16和矩阵A20平均分为4块分别交由4个线程执行矩阵减法运算,得到矩阵A21
i.计算矩阵A21中每一列的元素之和:
Figure BDA00021048735700000613
j.计算
Figure BDA00021048735700000614
S5.3.2.在梯度方向上更新矩阵αC
α←α-μαgα
S5.3.3.通过线性搜索调整μα
S5.3.4.重复执行步骤S5.3.1~S5.3.3直至收敛。
优选的,所述步骤S6具体包括:根据步骤S5得到的计算结果,在显存中为矩阵X、矩阵C、矩阵A分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算XC,得到矩阵A,矩阵A即为对图像进行特征提取得到的特征矩阵。
与现有技术相比,本发明技术方案的有益效果是:
本发明方法针对图像本身的特点,即在图像处理算法中存在大量矩阵运算,对内核原型分析算法进行了优化,通过在采用FURTHESTSUM算法对内核原型分析算法进行初始化的过程中,使用了OpenMP多线程并行同时结合归约算法对其进行优化,随后在使用投影梯度法更新矩阵的过程中,使用OpenMP和CUDA在GPU中并行执行其中的矩阵乘法运算,使用OpenMP并行执行其中的矩阵减法运算,即通过多线程的计算提高了算法的运行效率和运行速度,解决了现有的内核原型分析算法中由于在进行最大值和矩阵运算的计算时使用串行方法计算,导致其计算速度慢,运行效率低等问题。
附图说明
图1为本发明方法的总流程图。
图2为本发明使用OpenMP和CUDA在GPU中并行执行矩阵乘法运算的原理图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例
一种基于OpenMP和CUDA的图像特征提取并行算法,应用于利用内核原型分析算法的图像特征提取,如图1所示,包括以下步骤:
S1.获取待处理的图像,所述图像大小为m×n,则所述图像的矩阵为X(m×n),对待处理矩阵进行计算得到核矩阵K(m×m),K=XTX;并作为内核原型分析算法的输入
S2.设置内核原型分析算法中的初始参数α、δ和原型个数D;
S3.采用FURTHESTSUM算法对内核原型分析算法进行初始化,使用OpenMP和CUDA在GPU中并行执行所述初始化中的候选点提取过程,根据归约算法求取各计算节点中候选点的最大值后得到最终提取的D个候选点;
S4.根据提取得到D个候选点初始化矩阵C(n×D)以及矩阵S(D×n),其中矩阵S中每个元素的值随机生成;
S5.使用投影梯度法更新矩阵C、矩阵S以及矩阵αC得到计算结果;其中使用投影梯度法更新矩阵的过程中,使用OpenMP和CUDA在GPU中并行执行其中的矩阵乘法运算,使用OpenMP并行执行其中的矩阵减法运算;
S6.根据计算结果计算矩阵A=XC即为对图像进行特征提取得到的特征矩阵。
其中本发明中使用OpenMP和CUDA在GPU中并行执行矩阵乘法运算的原理如下:
假设需要计算矩阵Pd=Md×Nd,其中矩阵Md维数为a×b,矩阵Nd维数为b×c,则矩阵Pd维数为a×c;
如图2所示,每个线程块负责计算矩阵Pd中一TILE_WIDTH×TILE_WIDTH大小的区,TILE_WIDTH是瓦片的长和宽,线程块中每个线程负责计算该区域中的一个元素,其中图2中的1为一个线程块的示例,图2中的2为线程块中一个线程的示例。这样,该线程块需要加载的数据局限在矩阵Md中的一块,其大小为TILE_WIDTH×矩阵Md的宽度b,以及矩阵Nd中的一块,其大小为TILE_WIDTH×矩阵Nd的高度b;
加载数据时,每一个线程只从Md、Nd中各加载一个对应于本线程在线程块中的位置的数据,并写入共享内存储存。使用算法,A中每个元素将被加载矩阵Md的宽度b/TILE_WIDTH次,B中每个元素将被加载矩阵Nd的高度b/TILE_WIDTH次,共享内存储存的负担直接减小了TILE_WIDTH倍。
在每个线程块中,即在一个瓦片中的所有线程共享一块共享内存,所以为了提高计算效率,首先把这个瓦片需要的数据从两个输入矩阵中拷过来,即从全局内存拷贝到共享内存里,存入两个临时矩阵之中。在本发明的该算法选择的是大小为16×16的瓦片。
按矩阵相乘的计算方法,将加载进来的小矩阵进行乘加。计算完图2中TILE_WIDTH×TILE_WIDTH大小的第一块后,将矩阵Md中取元素的窗口向右滑动,将矩阵Nd中的窗口向下滑动,重复上述计算过程,将结果累加到上一次计算的结果中。至滑动完毕时,累加器中的数据即为对应位置的结果。如果输入矩阵不是方阵或宽高b不是瓦片尺寸的整倍数,在最后一次拷贝数据,有一部分元素会“越界”,在越界元素的位置填充0,便不影响计算结果。
实施例2
一种基于OpenMP和CUDA的图像特征提取并行算法,应用于利用内核原型分析算法的图像特征提取,包括以下步骤:
S1.获取待处理的图像,所述图像大小为m×n,则所述图像的矩阵为X(m×n),对待处理矩阵进行计算得到核矩阵K(m×m),K=XTX;并作为内核原型分析算法的输入;
内核原型分析算法的公式为:
argminC,SD(X|XCS)
s.t.|cd|1=1,|sn|1=1
C≥0,S≥0
其中C为原始输入数据的权重系数矩阵,S为原始输入数据变换后的比例系数矩阵,α、δ为针对无纯像元存在的情况引入的尺度变量。
S2.设置内核原型分析算法中的初始参数α、δ和原型个数D;
S3.采用FURTHESTSUM算法对内核原型分析算法进行初始化,使用OpenMP和CUDA在GPU中并行执行所述初始化中的候选点提取过程,根据归约算法求取各计算节点中候选点的最大值后得到最终提取的D个候选点;
S31.在所述核矩阵K=XTX中随机选择一个点j作为初始候选点,并放到集合N中;
S32.利用OpenMP开启多个线程:
当n≤2048时,开启2个线程;
当2048<n≤10240时,开启4个线程;
当n>10240时,开启8个线程;
当n达到千万级时,则使用CUDA在GPU开启1024个以上的线程;
S33.将除集合N外的点平均分到步骤S32得到的每个线程中,在每个线程计算线程中的点到集合N中候选点的距离,并选出其中的距离最大值;在所有线程的距离最大值中,再次选出最大值,并将该最大值对应的点加入集合N中作为候选点;
S34.重复步骤S33,直至选出D个候选点;
S35.删除步骤S31随机选出的初始候选点j,并通过步骤S33选出最后一个候选点;得到最终提取的D个候选点。
S4.根据提取得到D个候选点初始化矩阵C(n×D)以及矩阵S(D×n),其中矩阵S中每个元素的值随机生成;
S5.使用投影梯度法更新矩阵C、矩阵S以及矩阵αC得到计算结果;其中使用投影梯度法更新矩阵的过程中,使用OpenMP和CUDA在GPU中并行执行其中的矩阵乘法运算,使用OpenMP并行执行其中的矩阵减法运算;
S5.1.1计算矩阵C的梯度:
Figure BDA0002104873570000101
其中向量α为一维向量,其中的每个元素等于矩阵C每一列元素之和;矩阵diag(α)为以α的元素为对象线元素的矩阵;
Figure BDA0002104873570000102
等价于矩阵C;矩阵K为核矩阵;矩阵
Figure BDA0002104873570000103
等价于矩阵S;
对上式展开括号得到:
Figure BDA0002104873570000104
a.计算
Figure BDA0002104873570000105
使用OpenMP和CUDA并行执行以下步骤a1~a3,即使用OpenMP和CUDA并行执行矩阵乘法运算;
a1.计算
Figure BDA0002104873570000106
在显存中为矩阵K、矩阵
Figure BDA0002104873570000107
矩阵A2分配空间,将矩阵K和矩阵
Figure BDA0002104873570000108
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000109
得到矩阵A2
a2.计算
Figure BDA00021048735700001010
在显存中为矩阵diag(α)、矩阵
Figure BDA00021048735700001011
矩阵A3分配空间,将矩阵diag(α)和矩阵
Figure BDA00021048735700001012
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA00021048735700001013
得到矩阵A3
a3.计算
Figure BDA00021048735700001014
在显存中为矩阵A4分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA00021048735700001015
得到矩阵A4
a4.计算A5=A2A3:在显存中为矩阵A5分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A2A3,得到矩阵A5
a5.计算A1=A5A4:在显存中为矩阵A1分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A5A4,得到矩阵A1
b.计算
Figure BDA00021048735700001016
b1.计算
Figure BDA00021048735700001017
在显存中为矩阵A7分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000111
得到矩阵A7
b2.计算A6=A7diag(α):在显存中为矩阵A6分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A7diag(α),得到矩阵A6
c.计算
Figure BDA0002104873570000112
使用OpenMP开启4个线程,将计算得到的矩阵A1和矩阵A6平均分为4块分别交由4个线程执行矩阵减法运算,得到矩阵C的梯度;
S5.1.2.在梯度方向上更新矩阵C:
Figure BDA0002104873570000113
其中
Figure BDA0002104873570000114
为归一化不变量,
Figure BDA0002104873570000115
为步长参数,
Figure BDA0002104873570000116
为梯度值;
S5.1.3.通过线性搜索调整μC
S5.1.4.重复执行步骤S5.1.1~S5.1.3直至收敛。
S5.2.1计算矩阵S的梯度:
Figure BDA0002104873570000117
其中向量α为一维向量,其中的每个元素等于矩阵C每一列元素之和;矩阵diag(α)为以α的元素为对象线元素的矩阵;
Figure BDA0002104873570000118
等价于矩阵C;矩阵
Figure BDA0002104873570000119
为矩阵C的转置;矩阵K为核矩阵;矩阵X为图像矩阵;矩阵
Figure BDA00021048735700001110
等价于矩阵S;
对上式展开括号得到:
Figure BDA00021048735700001111
c.计算
Figure BDA00021048735700001112
使用OpenMP和CUDA并行执行以下步骤c1~c3,即使用OpenMP和CUDA并行执行矩阵乘法运算;
c1.计算
Figure BDA00021048735700001113
在显存中为矩阵
Figure BDA00021048735700001114
矩阵A9分配空间,将矩阵
Figure BDA00021048735700001115
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA00021048735700001116
得到矩阵A9
c2.计算A10=XX:在显存中为矩阵X、矩阵X分配空间,将矩阵X、矩阵X拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算XX,得到矩阵A10
c3.计算
Figure BDA00021048735700001117
在显存中为矩阵
Figure BDA00021048735700001118
矩阵A11分配空间,将矩阵
Figure BDA00021048735700001119
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA00021048735700001120
得到矩阵A11
使用OpenMP和CUDA并行执行步骤c4~c5,即使用OpenMP和CUDA并行执行矩阵乘法运算;
c4.计算A12=A9A10:在显存中为矩阵A12分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A9A10,得到矩阵A12
c5.计算
Figure BDA0002104873570000121
在显存中为矩阵A13分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000122
得到矩阵A13
c6.计算A8=A12A13:在显存中为矩阵A8分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A12A13,得到矩阵A8
d.计算
Figure BDA0002104873570000123
d1.计算
Figure BDA0002104873570000124
在显存中为矩阵A15分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000125
得到矩阵A15
d2.计算A14=A15K:在显存中为矩阵A14分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A15K,得到矩阵A14
e.计算
Figure BDA0002104873570000126
使用OpenMP开启4个线程,将计算得到的矩阵A8和矩阵A14平均分为4块分别交由4个线程执行矩阵减法运算,得到矩阵S的梯度;
S5.2.2.在梯度方向上更新矩阵S:
Figure BDA0002104873570000127
其中
Figure BDA0002104873570000128
为归一化不变量,
Figure BDA0002104873570000129
为步长参数,
Figure BDA00021048735700001210
为梯度值;
S5.2.3.通过线性搜索调整μS
S5.2.4.重复执行步骤S5.2.1~S5.2.3直至收敛。
S5.3.1计算矩阵αC的梯度:
Figure BDA00021048735700001211
其中向量α为一维向量,其中的每个元素等于矩阵C每一列元素之和;矩阵diag(α)为以α的元素为对象线元素的矩阵;
Figure BDA00021048735700001212
等价于矩阵C;矩阵
Figure BDA00021048735700001213
为矩阵C的转置;矩阵K为核矩阵;矩阵
Figure BDA00021048735700001214
等价于矩阵S;
Figure BDA00021048735700001215
为归一化不变量;
f.计算
Figure BDA00021048735700001216
使用OpenMP和CUDA并行执行以下步骤f1~f2,即使用OpenMP和CUDA并行执行矩阵乘法运算;
f1.计算
Figure BDA0002104873570000131
在显存中为矩阵A17分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000132
得到矩阵A17
f2.计算
Figure BDA0002104873570000133
在显存中为矩阵A18分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000134
得到矩阵A18
f3.计算A19=A17A18:在显存中为矩阵A19分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A17A18,得到矩阵A19
f4.计算A16=A19S:在显存中为矩阵A16分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A19S,得到矩阵A16
g.计算
Figure BDA0002104873570000135
在显存中为矩阵A20分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure BDA0002104873570000136
得到矩阵A20
h.计算A21=A16-A20:使用OpenMP开启4个线程,将计算得到的矩阵A16和矩阵A20平均分为4块分别交由4个线程执行矩阵减法运算,得到矩阵A21
i.计算矩阵A21中每一列的元素之和:
Figure BDA0002104873570000137
j.计算
Figure BDA0002104873570000138
S5.3.2.在梯度方向上更新矩阵αC
α←α-μαgα
S5.3.3.通过线性搜索调整μα
S5.3.4.重复执行步骤S5.3.1~S5.3.3直至收敛。
S6.根据步骤S5得到的计算结果,在显存中为矩阵X、矩阵C、矩阵A分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算XC,得到矩阵A,矩阵A即为对图像进行特征提取得到的特征矩阵。
附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (7)

1.一种基于OpenMP和CUDA的图像特征提取并行算法,应用于利用内核原型分析算法的图像特征提取,其特征在于,包括以下步骤:
S1.获取待处理的图像,所述图像大小为m×n,则所述图像的矩阵为X(m×n),对待处理矩阵进行计算得到核矩阵K(m×m),K=XTX;并作为内核原型分析算法的输入;
S2.设置内核原型分析算法中的初始参数α、δ和原型个数D;
S3.采用FURTHESTSUM算法对内核原型分析算法进行初始化,使用OpenMP和CUDA在GPU中并行执行所述初始化中的候选点提取过程,根据归约算法求取各计算节点中候选点的最大值后得到最终提取的D个候选点;
S4.根据提取得到D个候选点初始化矩阵C(n×D)以及矩阵S(D×n),其中矩阵S中每个元素的值随机生成;
S5.使用投影梯度法更新矩阵C、矩阵S以及矩阵αC得到计算结果;其中使用投影梯度法更新矩阵的过程中,使用OpenMP和CUDA在GPU中并行执行其中的矩阵乘法运算,使用OpenMP并行执行其中的矩阵减法运算;
S6.根据计算结果计算矩阵A=XC即为对图像进行特征提取得到的特征矩阵。
2.根据权利要求1所述的基于OpenMP和CUDA的图像特征提取并行算法,其特征在于,步骤S1中所述的内核原型分析算法为:
arg minC,SD(X|XCS)
s.t.|cd|1=1,|sn|1=1
C≥0,S≥0
其中C为原始输入数据的权重系数矩阵,S为原始输入数据变换后的比例系数矩阵,α、δ为针对无纯像元存在的情况引入的尺度变量。
3.根据权利要求1所述的基于OpenMP和CUDA的图像特征提取并行算法,其特征在于,所述步骤S3具体包括以下步骤:
S31.在所述核矩阵K=XTX中随机选择一个点j作为初始候选点,并放到集合N中;
S32.利用OpenMP开启多个线程:
当n≤2048时,开启2个线程;
当2048<n≤10240时,开启4个线程;
当n>10240时,开启8个线程;
当n达到千万级时,则使用CUDA在GPU开启1024个以上的线程;
S33.将除集合N外的点平均分到步骤S32得到的每个线程中,在每个线程计算线程中的点到集合N中候选点的距离,并选出其中的距离最大值;在所有线程的距离最大值中,再次选出最大值,并将该最大值对应的点加入集合N中作为候选点;
S34.重复步骤S33,直至选出D个候选点;
S35.删除步骤S31随机选出的初始候选点j,并通过步骤S33选出最后一个候选点;得到最终提取的D个候选点。
4.根据权利要求1所述的基于OpenMP和CUDA的图像特征提取并行算法,其特征在于,步骤S5中所述使用投影梯度法更新矩阵C得到计算结果的具体步骤包括:
S5.1.1计算矩阵C的梯度:
Figure FDA0002104873560000021
其中向量α为一维向量,其中的每个元素等于矩阵C每一列元素之和;矩阵diag(α)为以α的元素为对象线元素的矩阵;
Figure FDA0002104873560000022
等价于矩阵C;矩阵K为核矩阵;矩阵
Figure FDA0002104873560000023
等价于矩阵S;
对上式展开括号得到:
Figure FDA0002104873560000024
a.计算
Figure FDA0002104873560000025
使用OpenMP和CUDA并行执行以下步骤a1~a3,即使用OpenMP和CUDA并行执行矩阵乘法运算;
a1.计算
Figure FDA0002104873560000026
在显存中为矩阵K、矩阵
Figure FDA0002104873560000027
矩阵A2分配空间,将矩阵K和矩阵
Figure FDA0002104873560000028
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA0002104873560000029
得到矩阵A2
a2.计算
Figure FDA00021048735600000210
在显存中为矩阵diag(α)、矩阵
Figure FDA00021048735600000211
矩阵A3分配空间,将矩阵diag(α)和矩阵
Figure FDA00021048735600000212
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA00021048735600000213
得到矩阵A3
a3.计算
Figure FDA0002104873560000031
在显存中为矩阵A4分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA0002104873560000032
得到矩阵A4
a4.计算A5=A2A3:在显存中为矩阵A5分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A2A3,得到矩阵A5
a5.计算A1=A5A4:在显存中为矩阵A1分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A5A4,得到矩阵A1
b.计算
Figure FDA0002104873560000033
b1.计算
Figure FDA0002104873560000034
在显存中为矩阵A7分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA0002104873560000035
得到矩阵A7
b2.计算A6=A7diag(α):在显存中为矩阵A6分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A7diag(α),得到矩阵A6
c.计算
Figure FDA0002104873560000036
使用OpenMP开启4个线程,将计算得到的矩阵A1和矩阵A6平均分为4块分别交由4个线程执行矩阵减法运算,得到矩阵C的梯度;
S5.1.2.在梯度方向上更新矩阵C:
Figure FDA0002104873560000037
其中
Figure FDA0002104873560000038
为归一化不变量,
Figure FDA00021048735600000316
为步长参数,
Figure FDA0002104873560000039
为梯度值;
S5.1.3.通过线性搜索调整μC;
S5.1.4.重复执行步骤S5.1.1~S5.1.3直至收敛。
5.根据权利要求4所述的基于OpenMP和CUDA的图像特征提取并行算法,其特征在于,步骤S5中所述使用投影梯度法更新矩阵S得到计算结果的具体步骤包括:
S5.2.1计算矩阵S的梯度:
Figure FDA00021048735600000310
其中向量α为一维向量,其中的每个元素等于矩阵C每一列元素之和;矩阵diag(α)为以α的元素为对象线元素的矩阵;
Figure FDA00021048735600000311
等价于矩阵C;矩阵
Figure FDA00021048735600000312
为矩阵C的转置;矩阵K为核矩阵;矩阵X为图像矩阵;矩阵
Figure FDA00021048735600000313
等价于矩阵S;
对上式展开括号得到:
Figure FDA00021048735600000314
c.计算
Figure FDA00021048735600000315
使用OpenMP和CUDA并行执行以下步骤c1~c3,即使用OpenMP和CUDA并行执行矩阵乘法运算;
c1.计算
Figure FDA0002104873560000041
在显存中为矩阵
Figure FDA0002104873560000042
矩阵A9分配空间,将矩阵
Figure FDA0002104873560000043
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA0002104873560000044
得到矩阵A9
c2.计算
Figure FDA00021048735600000419
在显存中为矩阵X、矩阵
Figure FDA00021048735600000420
分配空间,将矩阵X、矩阵
Figure FDA00021048735600000421
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA00021048735600000422
得到矩阵A10
c3.计算
Figure FDA0002104873560000045
在显存中为矩阵
Figure FDA0002104873560000046
矩阵A11分配空间,将矩阵
Figure FDA0002104873560000047
拷贝到分配的显存空间中,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA0002104873560000048
得到矩阵A11
使用OpenMP和CUDA并行执行步骤c4~c5,即使用OpenMP和CUDA并行执行矩阵乘法运算;
c4.计算A12=A9A10:在显存中为矩阵A12分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A9A10,得到矩阵A12
c5.计算
Figure FDA0002104873560000049
在显存中为矩阵A13分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA00021048735600000410
得到矩阵A13
c6.计算A8=A12A13:在显存中为矩阵A8分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A12A13,得到矩阵A8
d.计算
Figure FDA00021048735600000411
d1.计算
Figure FDA00021048735600000412
在显存中为矩阵A15分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA00021048735600000413
得到矩阵A15
d2.计算A14=A15K:在显存中为矩阵A14分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A15K,得到矩阵A14
e.计算
Figure FDA00021048735600000414
使用OpenMP开启4个线程,将计算得到的矩阵A8和矩阵A14平均分为4块分别交由4个线程执行矩阵减法运算,得到矩阵S的梯度;
S5.2.2.在梯度方向上更新矩阵S:
Figure FDA00021048735600000415
其中
Figure FDA00021048735600000416
为归一化不变量,
Figure FDA00021048735600000417
为步长参数,
Figure FDA00021048735600000418
为梯度值;
S5.2.3.通过线性搜索调整μS;
S5.2.4.重复执行步骤S5.2.1~S5.2.3直至收敛。
6.根据权利要求5所述的基于OpenMP和CUDA的图像特征提取并行算法,其特征在于,步骤S5中所述使用投影梯度法更新矩阵αC得到计算结果的具体步骤包括:
S5.3.1计算矩阵αC的梯度:
Figure FDA0002104873560000051
其中向量α为一维向量,其中的每个元素等于矩阵C每一列元素之和;矩阵diag(α)为以α的元素为对象线元素的矩阵;
Figure FDA0002104873560000052
等价于矩阵C;矩阵
Figure FDA0002104873560000053
为矩阵C的转置;矩阵K为核矩阵;矩阵
Figure FDA0002104873560000054
等价于矩阵S;
Figure FDA0002104873560000055
为归一化不变量;
f.计算
Figure FDA0002104873560000056
使用OpenMP和CUDA并行执行以下步骤f1~f2,即使用OpenMP和CUDA并行执行矩阵乘法运算;
f1.计算
Figure FDA0002104873560000057
在显存中为矩阵A17分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA0002104873560000058
得到矩阵A17
f2.计算
Figure FDA0002104873560000059
在显存中为矩阵A18分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA00021048735600000510
得到矩阵A18
f3.计算A19=A17A18:在显存中为矩阵A19分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算A17A18,得到矩阵A19
f4.计算
Figure FDA00021048735600000515
在显存中为矩阵A16分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA00021048735600000516
得到矩阵A16
g.计算
Figure FDA00021048735600000511
在显存中为矩阵A20分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算
Figure FDA00021048735600000512
得到矩阵A20
h.计算A21=A16-A20:使用OpenMP开启4个线程,将计算得到的矩阵A16和矩阵A20平均分为4块分别交由4个线程执行矩阵减法运算,得到矩阵A21
i.计算矩阵A21中每一列的元素之和:
Figure FDA00021048735600000513
j.计算
Figure FDA00021048735600000514
S5.3.2.在梯度方向上更新矩阵αC
α←α-μαgα
S5.3.3.通过线性搜索调整μα
S5.3.4.重复执行步骤S5.3.1~S5.3.3直至收敛。
7.根据权利要求1所述的基于OpenMP和CUDA的图像特征提取并行算法,其特征在于,所述步骤S6具体包括:根据步骤S5得到的计算结果,在显存中为矩阵X、矩阵C、矩阵A分配空间,使用cuBLAS库中的cublasSgemm函数在GPU中计算XC得到矩阵A,矩阵A即为对图像进行特征提取得到的特征矩阵。
CN201910548763.2A 2019-06-24 2019-06-24 一种基于OpenMP和CUDA的图像特征提取并行算法 Active CN110363699B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910548763.2A CN110363699B (zh) 2019-06-24 2019-06-24 一种基于OpenMP和CUDA的图像特征提取并行算法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910548763.2A CN110363699B (zh) 2019-06-24 2019-06-24 一种基于OpenMP和CUDA的图像特征提取并行算法

Publications (2)

Publication Number Publication Date
CN110363699A CN110363699A (zh) 2019-10-22
CN110363699B true CN110363699B (zh) 2022-11-04

Family

ID=68215774

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910548763.2A Active CN110363699B (zh) 2019-06-24 2019-06-24 一种基于OpenMP和CUDA的图像特征提取并行算法

Country Status (1)

Country Link
CN (1) CN110363699B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714337A (zh) * 2012-10-09 2014-04-09 鸿富锦精密工业(深圳)有限公司 物体特征识别系统及方法
CN108897616A (zh) * 2018-06-04 2018-11-27 四川大学 基于并行运算的非下采样轮廓波变换优化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103714337A (zh) * 2012-10-09 2014-04-09 鸿富锦精密工业(深圳)有限公司 物体特征识别系统及方法
CN108897616A (zh) * 2018-06-04 2018-11-27 四川大学 基于并行运算的非下采样轮廓波变换优化方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CPU-OpenMP 和GPU-CUDA 并行计算技术对矩阵乘法运算的加速效果分析;张岩;《科技视界》;20170915(第26期);第45-47页 *
Morten Mørup等.Archetypal analysis for machine learning and data mining.《Neurocomputing》.2011,第80卷第54-63页. *
运用OpenMP和CUDA优化蒙特卡洛算法;张钦等;《安阳师范学院学报》;20120229(第2期);第41-45页 *

Also Published As

Publication number Publication date
CN110363699A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
Linderman et al. Clustering with t-SNE, provably
CN110288030B (zh) 基于轻量化网络模型的图像识别方法、装置及设备
US10037457B2 (en) Methods and systems for verifying face images based on canonical images
Le et al. Inertial block proximal methods for non-convex non-smooth optimization
JP5144123B2 (ja) 情報処理方法、情報処理装置
JP2020135011A (ja) 情報処理装置及び方法
Al Bahrani et al. Orthogonal PSO algorithm for economic dispatch of thermal generating units under various power constraints in smart power grid
WO2019102984A1 (ja) 学習装置及び学習方法、識別装置及び識別方法、プログラム並びに記録媒体
Kanada Optimizing neural-network learning rate by using a genetic algorithm with per-epoch mutations
US8583719B2 (en) Method and apparatus for arithmetic operation by simultaneous linear equations of sparse symmetric positive definite matrix
US20100299379A1 (en) Non-Negative Matrix Factorization as a Feature Selection Tool for Maximum Margin Classifiers
CN113257364A (zh) 基于多目标进化的单细胞转录组测序数据聚类方法及系统
CN110472588B (zh) 锚点框确定方法、装置、计算机设备和存储介质
CN110363699B (zh) 一种基于OpenMP和CUDA的图像特征提取并行算法
Dzwinel et al. Very fast interactive visualization of large sets of high-dimensional data
US20220137930A1 (en) Time series alignment using multiscale manifold learning
Kupwiwat et al. Multi-objective optimization of truss structure using multi-agent reinforcement learning and graph representation
EP3786816A1 (en) Local search with global view for large scale combinatorial optimization
US11631002B2 (en) Information processing device and information processing method
Papamakarios Comparison of modern stochastic optimization algorithms
WO2021059527A1 (ja) 学習装置、学習方法、及び、記録媒体
US9600446B2 (en) Parallel multicolor incomplete LU factorization preconditioning processor and method of use thereof
US7792060B2 (en) Information analysis apparatus and computer readable medium
Bobrowski Large matrices inversion using the basis exchange algorithm
Khan et al. Design and implementation of parallel SOM model on GPGPU

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