CN114283046A - 基于icp算法的点云文件配准方法、装置及存储介质 - Google Patents
基于icp算法的点云文件配准方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114283046A CN114283046A CN202111408323.0A CN202111408323A CN114283046A CN 114283046 A CN114283046 A CN 114283046A CN 202111408323 A CN202111408323 A CN 202111408323A CN 114283046 A CN114283046 A CN 114283046A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- registration
- target point
- variable
- icp algorithm
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种基于ICP算法的点云文件配准方法,包括:获取点云文件集,并启动多个进程;将点云文件集划分为多个点云段,并依序将点云段预分配给对应的进程;创建包含第一变量和第二变量的共享内存,对共享内存进行初始化;根据第一变量分别在每个进程中实时调度闲置GPU或CPU执行ICP算法,通过ICP算法对每个进程中的目标点云进行配准,得到配准后的点云文件;其中,当任意一个进程预先完成分配到的所有目标点云的配准时,通过第二变量查找未配准的目标点云数量最多的点云段,将该点云段中未配准的目标点云动态分配给空闲的进程进行配准,从而能够提高系列点云文件配准的并行化程度、计算资源的利用率和点云文件并行配准的效率。
Description
技术领域
本发明涉及信号处理技术领域,尤其涉及一种基于ICP算法的点云文件配准方法、装置及计算机可读存储介质。
背景技术
目前,针对点云文件集ICP(Iterative Closest Point)配准的方法主要有:系列点云文件串行ICP配准算法和ICP并行算法。系列点云文件串行ICP配准算法:点云文件库Point cloud library(简称PCL)提供了两两点云文件逐步匹配方案,其思想是对所有点云文件进行变换,最终将所有点云文件统一到源点云的坐标系中。ICP并行算法:主要研究两个点云文件之间的ICP并行加速,其思想是利用GPU或多个处理器核心(CPU的内核)对ICP算法中的某些步骤进行并行加速。
但是,上述两种配准算法是使用CPU+GPU或多个CPU内核依次对两个连续点云文件进行加速配准,即只有在完成某一对连续点云文件的加速配准后,才会开始对另一对连续点云文件进行加速配准,现有技术主要存在两个缺点:
1、并行化程度不足,现有技术关注两个点云文件之间的并行配准,主要针对ICP算法的某些步骤进行加速,为一级并行,并行层次较低,相对于高层次的点云文件集配准而言,其并行化程度存在不足。
2、计算机的计算资源利用率低,现有技术主要运用CPU+GPU模式或多个CPU内核模式进行并行加速,未能充分利用计算机的计算资源。(1)现有的CPU+GPU模式是对ICP算法中适用于GPU加速的部分进行GPU加速,算法的其余部分仍然保持CPU串行运行。在进行CPU串行执行时,计算机仅启动一个CPU内核进行计算,其余CPU内核和GPU处于闲置状态;CPU部分串行执行完毕后,计算机启动GPU对并行部分进行加速,计算机中所有CPU内核进入闲置或者等待状态,即在整个配准过程中,CPU和GPU是异步的,计算机同一时刻只有1个CPU内核或者GPU在运行,未能充分使用计算机的计算资源。(2)现有的多个CPU内核并行模式是对于ICP算法中适用于多核并行的部分进行并行,算法的其余部分仍然保持CPU串行运行。同样,在进行CPU串行执行时,计算机同一时刻只有一个CPU内核在计算,其余CPU内核和GPU处于闲置状态;在进行多个CPU内核并行执行时,计算机的GPU处于闲置状态,同样没有充分利用计算机的计算资源。
发明内容
本发明实施例提供一种基于ICP算法的点云文件配准方法、装置及计算机可读存储介质,能够提高系列点云文件配准的并行化程度、计算资源的利用率和点云文件并行配准的效率。
为实现上述目的,本发明实施例提供了一种基于ICP算法的点云文件配准方法,包括:
获取点云文件集,并通过消息传递接口启动多个进程;其中,所述点云文件集包含1个源点云和k个待配准的目标点云;
将所述点云文件集划分为多个点云段,并依序将所述点云段预分配给对应的所述进程;
创建包含1个第一变量和k个第二变量的共享内存,对所述共享内存进行初始化;其中,所述第一变量与闲置GPU的数量相对应,所述第二变量与所述目标点云的配准情况一一对应;
根据所述第一变量分别在每个所述进程中实时调度闲置GPU或CPU执行ICP算法,通过所述消息传递接口和所述ICP算法对每个所述进程中的目标点云进行配准,得到k个配准后的点云文件;
其中,当任意一个所述进程预先完成分配到的所有所述目标点云的配准时,通过所述第二变量查找未配准的目标点云数量最多的点云段,将该点云段中未配准的所述目标点云动态分配给空闲的进程进行配准。
作为上述方案的改进,所述对所述共享内存进行初始化,具体为:
初始化所述第一变量的数值为N;其中,N为计算机GPU的数量;
初始化k个所述第二变量的数值为0。
作为上述方案的改进,所述根据所述第一变量分别在每个所述进程中实时调度闲置GPU或CPU执行ICP算法,具体为:
当任一所述进程读取到所述第二变量为0时,实时调度CPU执行ICP算法;
当任一所述进程读取到所述第二变量不为0时,实时调度GPU执行ICP算法。
作为上述方案的改进,所述通过所述消息传递接口和所述ICP算法对每个所述进程中的目标点云进行配准,得到k个配准后的点云文件,具体为:
通过所述ICP算法对每个所述进程中的目标点云进行局部配准,得到每个所述目标点云对应的局部变换矩阵;
通过所述消息传递接口收集每个所述目标点云对应的局部变换矩阵,并通过预设的转换公式对每个所述局部变换矩阵进行转换,得到每个所述目标点云对应的全局变换矩阵;
通过每个所述目标点云对应的所述全局变换矩阵对每个所述目标点云进行全局配准,得到k个配准后的点云文件。
作为上述方案的改进,所述当任意一个所述进程预先完成分配到的所有所述目标点云的配准时,通过所述第二变量查找未配准的目标点云数量最多的点云段,将该点云段中未配准的所述目标点云动态分配给空闲的进程进行配准,具体为:
当任意一个所述进程预先完成分配到的所有所述目标点云的局部配准时,通过所述第二变量查找未局部配准的目标点云数量最多的点云段,将该点云段中未局部配准的所述目标点云动态分配给空闲的进程进行局部配准;
当任意一个所述进程预先完成分配到的所有所述目标点云的全局配准时,通过所述第二变量查找未全局配准的目标点云数量最多的点云段,将该点云段中未全局配准的所述目标点云重新分配给空闲的进程进行全局配准。
作为上述方案的改进,所述预设的转换公式,具体为:
其中,Ti为第i个目标点云对应的局部变换矩阵,Gi为第i个目标点云对应的全局变换矩阵。
作为上述方案的改进,根据以下公式对第i个所述目标点云进行全局配准:
Oi=Qi*Gi(1≤i≤k);
其中,Oi为第i个目标点云对应的配准后的点云文件,Qi为第i个目标点云,Gi为第i个目标点云对应的全局变换矩阵。
为实现上述目的,本发明实施例对应提供了一种基于ICP算法的点云文件配准装置,包括:
数据预处理模块,用于获取点云文件集,并通过消息传递接口启动多个进程;其中,所述点云文件集包含1个源点云和k个待配准的目标点云;
数据预分配模块,用于将所述点云文件集划分为多个点云段,并依序将所述点云段预分配给对应的所述进程;
共享数据模块,用于创建包含1个第一变量和k个第二变量的共享内存,对所述共享内存进行初始化;其中,所述第一变量与闲置GPU的数量相对应,所述第二变量与所述目标点云的配准情况一一对应;
点云配准模块,用于根据所述第一变量分别在每个所述进程中实时调度闲置GPU或CPU执行ICP算法,通过所述消息传递接口和所述ICP算法对每个所述进程中的目标点云进行配准,得到k个配准后的点云文件;
动态分配模块,用于当任意一个所述进程预先完成分配到的所有所述目标点云的配准时,通过所述第二变量查找未配准的目标点云数量最多的点云段,将该点云段中未配准的所述目标点云动态分配给空闲的进程进行配准。
作为上述方案的改进,所述点云配准模块,包括:
局部配准单元,用于通过所述ICP算法对每个所述进程中的目标点云进行局部配准,得到每个所述目标点云对应的局部变换矩阵;
矩阵变换单元,用于通过所述消息传递接口收集每个所述目标点云对应的局部变换矩阵,并通过预设的转换公式对每个所述局部变换矩阵进行转换,得到每个所述目标点云对应的全局变换矩阵;
全局配准单元,用于通过每个所述目标点云对应的全局变换矩阵对每个所述目标点云进行全局配准,得到k个配准后的点云文件。
为实现上述目的,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述发明实施例所述的基于ICP算法的点云文件配准方法。
与现有技术相比,本发明实施例公开的基于ICP算法的点云文件配准方法、装置及计算机存储介质,首先,通过消息传递接口MPI启动多个进程,将一系列序号连续的点云文件分成多个点云段,并分别对每个进程分配到的点云段进行并行配准,实现一级并行;其次,根据第一变量实时调度计算机的CPU和GPU计算资源,为点云文件配准设置了CPU执行和GPU加速两个路径,实现多个CPU内核和多个GPU的同步并行;其中,GPU实现两个连续点云文件的加速配准为二级并行;然后,通过共享内存中的第二变量将点云文件的配准任务预分配和动态分配给每个进程,实现消息传递接口MPI每个进程的负载均衡,从而能够提高点云文件集配准的并行化程度、计算机计算资源的利用率和点云文件并行配准的效率。
附图说明
图1是本发明一实施例提供的一种基于ICP算法的点云文件配准方法的流程示意图;
图2是本发明一具体实施例提供的基于ICP算法的点云文件配准方法的简要流程示意图;
图3是本发明一具体实施例提供的ICP-CPU和ICP-GPU协同处理框架;
图4是本发明一具体实施例提供的点云文件预分配和动态分配的流程示意图;
图5是本发明一具体实施例提供的点云文件动态分配的流程示意图;
图6是本发明一实施例提供的一种基于ICP算法的点云文件配准装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明一实施例提供的一种基于ICP算法的点云文件配准方法的流程示意图。
本发明实施例提供的基于ICP算法的点云文件配准方法,包括步骤:
S11、获取点云文件集,并通过消息传递接口启动多个进程;其中,所述点云文件集包含1个源点云和k个待配准的目标点云;
S12、将所述点云文件集划分为多个点云段,并依序将所述点云段预分配给对应的所述进程;
S13、创建包含1个第一变量和k个第二变量的共享内存,对所述共享内存进行初始化;其中,所述第一变量与闲置GPU的数量相对应,所述第二变量与所述目标点云的配准情况一一对应;
S14、根据所述第一变量分别在每个所述进程中实时调度闲置GPU或CPU执行ICP算法,通过所述消息传递接口和所述ICP算法对每个所述进程中的目标点云进行配准,得到k个配准后的点云文件;其中,
当任意一个所述进程预先完成分配到的所有所述目标点云的配准时,通过所述第二变量查找未配准的目标点云数量最多的点云段,将该点云段中未配准的所述目标点云动态分配给空闲的进程进行配准。
需要说明,消息传递接口MPI并行模式采用对等模式,每个进程的功能或计算流程相同。
优选的,所述进程的个数等于计算机的总核数或计算机CPU的个数。
进一步的,在所述步骤S12中,通过预设公式得到第一参数和第二参数;
当所述第二参数为0时,依次分配m个连续的所述点云文件给每个所述进程;
当所述第二参数不为0时,依次分配m+1个连续的所述点云文件给前R个所述进程,依次分配m个连续的所述点云文件给剩余的n+1-R个所述进程;其中,m为第一参数,R为第二参数。
具体的,所述预设公式为:
m=[(k+1)+n-1]/(n+1)LR;
其中,n+1为进程总量,k+1为点云文件总量,k为正整数。
示例性地,参见图2,首先将k+1个点云文件按照进程的总数平均分成n+1点云段,按照公式m=((k+1)+n-1)/(n+1),对每个进程首先预分配m个序号连续的点云文件,如进程P0预分配处理点云文件[Q0,Qm-1],P1预分配处理点云文件[Qm-1,Q2m-2],P2预分配处理点云文件[Q2m-2,Q3m-3],依此类推,Pn预分配处理点云文件[Qn*m-n,Qk];当公式m=((k+1)+n-1)/(n+1)无法被整除且第二参数为R时,则由前R个进程[P0,PR-1]分别预分配处理m+1个连续的点云文件,其余进程预分配处理m个连续的点云文件,如:进程P0预分配处理点云文件[Q0,Qm],进程P1预分配处理[Qm,Q2m]。
参见图2,为了便于本领域技术人员,下文将以第二参数R=0为例对点云文件的读取和配准进行简要说明:
消息传递接口MPI的每个进程对其预分配到的点云文件进行依次读取。在首轮读取中,每个进程首先读取预分配点云文件的前两个文件,如进程P0依次读取点云文件Q0和Q1,进程P1依次读取点云文件Qm-1和Qm,进程Pn依次读取点云文件Qn*m-n和Qn*m-n+1;首轮读取完毕后,每个进程依次将前一个点云文件作为源点云、后一个点云文件作为目标点云,并按照ICP算法进行配准,分别得到每个目标点云对应的局部变换矩阵Ti,Ti表示后一个点云文件Qi配准到前一个点云文件Qi-1。在首轮计算中,进程P0计算获得局部变换矩阵T1,进程P1计算获得局部变换矩阵Tm,进程Pn计算获得局部变换矩阵Tn*m-n+1。
在获得首轮的局部变换矩阵后,每个进程按照点云文件序号继续读取剩余点云文件,与首轮读取两个文件不同,在剩余点云文件的读取中,每一次仅读取1个点云文件。如在第2轮读取时,进程P0读取点云文件Q2,进程P1读取点云文件Qm+1,进程Pn读取点云文件Qn*m-n+2,读取完毕后,将当前读取的点云文件Qi作为目标点云,前一轮读取的点云文件Qi-1作为源点云进行配准。下面以进程P0为例进行说明,在第2轮配准时,以Q2为目标点云、Q1为源点云进行配准,获得局部变换矩阵T2;第3轮读取点云文件Q3,以Q3为目标点云、Q2为源点云进行配准,获得局部变换矩阵T3;如此循环,直到某1个进程读取并处理完其预分配的所有点云文件,至此点云文件预分配读取阶段结束,进入点云文件动态分配阶段。需要说明,动态分配是因为每个进程所分配的工作量及计算资源不同,每个进程处理完预分配的任务所用的时间不同,为了均衡每个进程的负载,需要对未处理点云文件进行再次分配。
具体的,在步骤S13中,通过MPI_Win_allocate_shared(·)函数创建包含1个第一变量和k个第二变量的共享内存。
需要说明,所述共享内存是为进程服务的,共享内存中的数据为整型数据,即所述第一变量和所述第二变量为整型数据。
在一些更优的实施例中,在步骤S13中,所述对所述共享内存进行初始化,具体为:
初始化所述第一变量的数值为N;其中,N为计算机GPU的数量;
初始化k个所述第二变量的数值为0。
优选的,通过第1个所述进程对所述第一变量和所述第二变量进行初始化。
可以理解,所述第一变量用于实时告知进程当前闲置的GPU数量,以便于消息传递接口MPI优先调度闲置GPU执行ICP算法中适用GPU加速的部分,以加速目标点云的配准;所述第二变量用于记录当前每个目标点云的处理状态,以便各进程实时更新和了解每个点云文件的处理状态,从而实现各进程间的动态任务分配。
在一个具体的实施方式中,在步骤S14中,所述根据所述第一变量分别在每个所述进程中实时调度闲置GPU或CPU执行ICP算法,具体为:
当任一所述进程读取到所述第二变量为0时,实时调度CPU执行ICP算法;
当任一所述进程读取到所述第二变量不为0时,实时调度GPU执行ICP算法。
值得说明的是,在调度闲置GPU执行ICP算法之前,需要对所述第一变量进行减一操作,并在所述GPU加速计算完成后,对所述第一变量加一,以保证所述第一变量实时反映闲置GPU的数量。
值得说明,现有计算机或单节点一般由多个核和若干个GPU组成,如:计算机有A个CPU,1个CPU由B个内核组成,则计算机的CPU内核有A*B个,内核的数量一般远远超过GPU的数量。假设计算机有N个CPU内核和1个GPU,可以利用MPI启动N个进程,N个进程同步并行,每个进程在计算过程中都使用GPU进行加速;但是,由于计算机只有1个GPU,则无法在N个进程中同时进行GPU加速,每个进程只能依次排队等候使用GPU,在等候使用GPU期间,每个CPU内核进入等候闲置状态,从而严重影响并行效果。为了解决该问题,如图3所示,本发明一具体实施例提供的ICP-CPU和ICP-GPU协同处理框架,对于ICP算法中适用于GPU加速的部分,先判断第一变量S0的数值是否为0,为0则说明所有的GPU均被其他进程占用,故采取CPU执行;当所述第一变量S0非0,则说明计算机中有闲置的GPU可使用,先按照式子S0=S0-1对闲置GPU的数量进行更新,再使用GPU对该部分进行加速,加速结束后,释放GPU,并按照式子S0=S0+1更新闲置GPU的数量,最后输出该部分的过程结果到CPU中。通过ICP-CPU和ICP-GPU协同处理框架,为点云文件的配准设置了CPU执行和GPU加速两个路径,能够充分利用计算机中所有CPU内核和GPU的计算资源,实现了CPU和GPU同步计算,大大减少CPU和GPU的闲置时间,增加CPU和GPU的利用率。
需要说明的是,能否使用GPU进行加速,取决于所采用的ICP算法,采用的算法不同,则GPU加速的适用性不同,加速方法也不同。另外,针对不同的ICP算法,已有很多不同的GPU加速算法,因此本发明提出的ICP-CPU和ICP-GPU协同处理框架不针对具体的ICP算法。
在一些更优的实施例中,在步骤S14中,所述通过所述消息传递接口和所述ICP算法对每个所述进程中的目标点云进行配准,得到k个配准后的点云文件,具体为:
通过所述ICP算法对每个所述进程中的目标点云进行局部配准,得到每个所述目标点云对应的局部变换矩阵;
通过所述消息传递接口收集每个所述目标点云对应的局部变换矩阵,并通过预设的转换公式对每个所述局部变换矩阵进行转换,得到每个所述目标点云对应的全局变换矩阵;
通过每个所述目标点云对应的全局变换矩阵对每个所述目标点云进行全局配准,得到k个配准后的点云文件。
进一步的,对每个所述进程中的目标点云进行局部配准之前,将该目标点云对应的所述第二变量更新为1;通过所述全局变换矩阵对每个所述目标点云进行全局配准之前,将该目标点云对应的所述第二变量更新为2。
需要说明,ICP算法一般可分为4个过程:过程1、查找两个点云文件的对应点;过程2、估计变换矩阵;过程3、利用变换矩阵转换目标点云数据;过程4、判断精度是否满足要求,满足则输出变换矩阵,不满足则返回过程1进行迭代。ICP的具体实现算法较多,如:查找两个点云文件的对应点有常规法(遍历全部点云文件)、空间单元格划分法、八叉树法、kd-tree法等;估计变换矩阵有LM法、单位四元数法、SVD奇异值分解法等。
在一个具体的实施方式中,所述步骤S15,具体为:
当任意一个所述进程预先完成分配到的所有所述目标点云的局部配准时,通过所述第二变量查找未局部配准的目标点云数量最多的点云段,将该点云段中未局部配准的所述目标点云动态分配给空闲的进程进行局部配准;
当任意一个所述进程预先完成分配到的所有所述目标点云的全局配准时,通过所述第二变量查找未全局配准的目标点云数量最多的点云段,将该点云段中未全局配准的所述目标点云重新分配给空闲的进程进行全局配准。
优选的,当所述第二变量为0时,则该第二变量对应的所述目标点云未进行局部配准;当所述第二变量为1时,则该第二变量对应的所述目标点云正在进行局部配准或已经完成局部配准;当所述第二变量为2时,则该第二变量对应的所述目标点云正在进行全局配准或已经完成全局配准。
优选的,所述当任意一个所述进程预先完成分配到的所有所述目标点云的局部配准时,通过所述第二变量查找未局部配准的目标点云数量最多的点云段,将该点云段中未局部配准的所述目标点云动态分配给空闲的进程进行局部配准,具体为:
当任意一个所述进程预先完成分配到的所有所述目标点云的局部配准时,通过遍历所有的所述第二变量,查找所有所述第二变量值为0对应的目标点云,得到未局部配准的目标点云数量最多的点云段;
从未局部配准的目标点云数量最多的所述点云段的最后两个所述目标点云开始,将未局部配准的所述目标点云动态分配给空闲的进程进行局部配准。
优选的,所述当任意一个所述进程预先完成分配到的所有所述目标点云的全局配准时,通过所述第二变量查找未全局配准的目标点云数量最多的点云段,将该点云段中未全局配准的所述目标点云重新分配给空闲的进程进行全局配准,具体为:
当任意一个所述进程预先完成分配到的所有所述目标点云的全局配准时,通过遍历所有的所述第二变量,查找所有所述第二变量值为1对应的目标点云,得到未全局配准的所述目标点云数量最多的点云段;
从未全局配准的目标点云数量最多的所述点云段的最后一个所述目标点云开始,将未全局配准的所述目标点云动态分配给空闲的进程进行全局配准。
可以理解,本发明将点云文件配准处理分为预分配和动态分配两种模式。预分配模式:根据点云文件总量及MPI进程总量,为每个进程预分配点云文件;动态分配模式:当进程中某个进程处理完毕其预分配的点云文件后,查找点云文件未处理数量最多的点云段,并从该点云段的最后两个点云文件开始读取和配准。
示例性的,如:进程P0准备读取点云文件Q2,先访问第二变量S2,如果S2=1,则说明点云文件Q2已被其他进程配准或正在被其他进程配准,这表明点云文件Q2已进入动态分配阶段,则P0遍历第二变量[S1,Sk],并从第二变量值为0对应的最大连续区间的最后两个点云文件开始读取和配准;如果S2=0,则令S2=1,并开始读取点云文件Q2,计算点云文件Q2变换到点云文件Q1的局部变换矩阵T2。
示例性的,每个进程按照预分配任务计算配准后的点云文件Oi前,先读取第二变量Si,第二变量Si为2则说明配准后的点云文件Oi已被其他进程计算完成或正在计算,则遍历第二变量[S1,Sk],并从第二变量值为1对应的最大连续区间的最后1个点云文件开始读取,然后计算和输出其对应的点云文件配准后的点云文件Oi;第二变量Si为1则说明配准后的点云文件Oi没有被计算,将Si更新为2,然后再计算并输出配准后的点云文件Oi;如此循环,直至第二变量[S1,Sk]全部为2,说明所有配准后的点云文件[O1,Ok]正在计算或已经输出。
在一个具体的实施方式中,所述预设的转换公式,具体为:
其中,Ti为第i个目标点云对应的局部变换矩阵,Gi为第i个目标点云对应的全局变换矩阵。
在一个优选的实施方式中,根据以下公式对第i个所述目标点云进行全局配准:
Oi=Qi*Gi(1≤i≤k);
其中,Oi为第i个目标点云对应的配准后的点云文件,Qi为第i个目标点云,Gi为第i个目标点云对应的全局变换矩阵。
为了便于说明,将ICP配准流程分为步骤1至步骤n,此处所述步骤并非特指具体ICP算法中的某个步骤,仅是为了简化描述过程。参见图2-图5,下面通过一个具体实施方式来描述基于ICP算法的点云文件配准方法的具体流程。
1)消息传递接口MPI启动n+1个进程[P0,Pn]。
2)根据点云文件的总数和进程的总数进行点云文件预分配;
需要说明,只是预分配点云文件序号,但并未开始读取点云文件。
3)利用MPI_Win_allocate_shared(·)函数为各个进程创建共享内存,共享内存数据为int整型,共保存k+1个整型数据[S0,Sk]。
4)利用进程P0对整型数据进行初始化,其中S0为计算机中GPU的个数,根据GPU的个数对S0进行赋值,[S1,Sk]全部赋值为0,代表点云文件[Q1,Qk]未被配准。
5)各个进程按照其预分配的点云文件进行首轮读取;
需要说明,首轮读取需要读取两个点云文件,当读取第1个点云文件Qi-1时,不需要对[S1,Sk]进行任何操作;在读取第2个点云文件Qi文件前,需要先对Si进行更新并赋值为1,代表点云文件Qi将被读取。
6)首轮读取点云文件完后,进入ICP-CPU和ICP-GPU协同处理阶段,包括数据预处理和ICP配准等;
参见图3,根据具体采用的ICP算法,分析各个步骤是否适用采用GPU加速,对于不适合采用GPU加速的部分,仍然采用CPU执行,对于适用采用GPU加速的部分,先判断整型数据S0的数值是否为0,整型数据S0为0则说明所有的GPU均被其他进程占用,故采取CPU执行;整型数据S0不为0,则说明计算机中有闲置的GPU可使用,先按照式子S0=S0-1对闲置GPU的数量进行更新,使用GPU对该部分进行加速,加速结束后,释放GPU,并按照式子S0=S0+1更新闲置GPU的数量,最后输出该部分的过程结果到CPU中;按照上述ICP-CPU和ICP-GPU协同处理方法继续执行ICP算法的剩余步骤,直至获得首轮局部变换矩阵T。
7)各个进程在获得首轮局部变换矩阵T后,开始执行第2轮点云文件读取;
如:P0准备读取点云文件Q2,读取点云文件Q2前,先访问整型数据S2,如果S2=1,则说明点云文件Q2已被其他进程配准或正在被其他进程配准,这表明点云文件已进入动态分配阶段,则P0遍历[S1,Sk],从整型数据值为0的最大连续区间的最后两个点云文件开始读取和配准;如果S2=0,则令S2=1,并开始读取Q2,再按照上述步骤6)计算Q2变换到Q1的局部变换矩阵T2,具体实例参考图4和图5所示。
8)所有进程按照步骤7)进行处理,直至[S1,Sk]的所有值均为1,说明所有点云文件均已配准或正在被配准,这一步所指的配准为局部配准,动态分配结束。
9)利用MPI_Allgather(·)函数收集所有局部变换矩阵[T1,Tk],并按照式(1)计算第i个全局变换矩阵Gi;
其中,式(1)中Ti表示点云文件Qi配准到点云文件Qi-1的局部变换矩阵,Gi表示点云文件Qi配准到点云文件Q0(源点云)的全局变换矩阵。
10)各个进程按照式(2)分别将点云文件Qi的坐标统一到源点云Q0的坐标系中,并输出配准后的点云文件Oi:
Oi=Qi*Gi (1≤i≤k) 式(2)
需要说明,在该步骤中,各进程根据其计算的局部变换矩阵进行任务分配,假设P0计算了T1、T2、T5、T10,则预分配P0计算并输出配准后的点云文件O1、O2、O5、O10。当某个进程率先处理完预分配的所有任务后,则协助其他进程完成剩余任务,各进程按照预分配任务计算配准后的点云文件Oi前,先读取整型数据Si,若整型数据Si为2,则说明配准后的点云文件Oi已被其他进程计算完成或正在计算,则遍历整型数据[S1,Sk],并从整型数据值为1的最大连续区间的最后1个点云文件开始读取,然后计算和输出其对应的配准后的点云文件O;整型数据Si为1则说明配准后的点云文件Oi没有被计算,将Si更新为2,然后再计算并输出配准后的点云文件Oi;如此循环,直至整型数据[S1,Sk]全部更新为2,则说明所有配准后的点云文件[O1,Ok]正在计算或已经输出;
各进程在按照式(2)进行计算时,先访问整型数据S0的数值是否为0,为0则说明计算机中所有的GPU均被其他进程占用,故采取CPU执行;整型数据S0不为0则说明计算机中有闲置的GPU可使用,先按照式子S0=S0-1对闲置GPU的数量进行更新,使用GPU对下式进行加速,加速结束后,释放GPU,并按照式子S0=S0+1更新闲置GPU的数量,最后输出配准后的点云文件Oi。
为进一步描述点云文件的预分配和动态分配过程,以4个进程[P0,P3],17个点云文件[Q0,Q16]进行说明。参照图4,每个进程预分配处理5个点云文件,进程P0负责点云文件[Q0,Q4],进程P1负责点云文件[Q4,Q8],进程P2负责点云文件[Q8,Q12],进程P3负责点云文件[Q12,Q16];如图4所示,每个进程并行读取预分配第1个点云文件作为源点云,进程P0读取点云文件Q0,进程P1读取点云文件Q4,进程P2读取点云文件Q8,进程P3读取点云文件Q12;读取完毕后,各进程在读取预分配的第2个点云文件前,更新其对应的整型数据;以进程P0为例,P0将S1先更新为1,然后读取点云文件Q1,读取完Q1后,计算局部变换矩阵T1;接着读取S2,S2=0,说明Q2未被配准,则将S2的值更新为1,然后读取Q2,并计算Q2配准到Q1的局部变换矩阵T2;如此循环,直至某个进程首先完成预分配任务,则标志预分配阶段结束。
由于计算过程中,每个进程的计算任务量不同,所分配的计算资源也不同,如图3所示,GPU按照先到先用原则,无法保证每个进程使用GPU的时间和次数相同,各个进程的计算进度不同,如:进程P1完成所有预分配点云文件[Q5,Q8]的局部配准时,进程P0仍剩Q3和Q4未被配准,进程P2仍剩Q10、Q11和Q12未被配准,进程P3仍剩Q15未被配准。进程P1率先完成了所有预分配任务,需要协助其他进程完成剩余任务。首先遍历整型数据[S1,Sk],可以查找出有3个连续区间为0,分别为[Q3,Q4]、[Q10,Q12]、[Q15],由于P2剩余未完成任务最多,[Q10,Q12]共3个点云文件未被配准,则进程P1选择[Q10,Q12]的最后1个点云文件Q12进行配准,为了配准Q12,如同步骤5)的首轮读取一样,需要先读取Q12对应的源点云Q11,然后将S12的值更新为1,并读取Q12,最后计算局部变换矩阵T12。其他进程在完成预分配任务后,如同进程P1一样,协助其他进程完成未完成任务,直至[S1,Sk]所有值均为1,说明所有点云文件均已配准或正在被配准,动态分配结束。
相应地,本发明实施例还提供了一种基于ICP算法的点云文件配准装置,能够实现上述基于ICP算法的点云文件配准方法的所有流程。
参见图6,是本发明一实施例提供的一种基于ICP算法的点云文件配准装置的结构示意图。
本发明实施例提供的基于ICP算法的点云文件配准装置,包括:
数据预处理模块21,用于获取点云文件集,并通过消息传递接口启动多个进程;其中,所述点云文件集包含1个源点云和k个待配准的目标点云;
数据预分配模块22,用于将所述点云文件集划分为多个点云段,并依序将所述点云段预分配给对应的所述进程;
共享数据模块23,用于创建包含1个第一变量和k个第二变量的共享内存,对所述共享内存进行初始化;其中,所述第一变量与闲置GPU的数量相对应,所述第二变量与所述目标点云的配准情况一一对应;
点云配准模块24,用于根据所述第一变量分别在每个所述进程中实时调度闲置GPU或CPU执行ICP算法,通过所述消息传递接口和所述ICP算法对每个所述进程中的目标点云进行配准,得到k个配准后的点云文件;
动态分配模块25,用于当任意一个所述进程预先完成分配到的所有所述目标点云的配准时,通过所述第二变量查找未配准的目标点云数量最多的点云段,将该点云段中未配准的所述目标点云动态分配给空闲的进程进行配准。
作为其中一个可选的实施方式,所述基于ICP算法的点云文件配准装置,还包括:
数据初始化模块26,用于初始化所述第一变量的数值为N;其中,N为计算机GPU的数量;还用于初始化k个所述第二变量的数值为0。
作为其中一个可选的实施方式,点云配准模块24,包括:
局部配准单元,用于通过所述ICP算法对每个所述进程中的目标点云进行局部配准,得到每个所述目标点云对应的局部变换矩阵;
矩阵变换单元,用于通过所述消息传递接口收集每个所述目标点云对应的局部变换矩阵,并通过预设的转换公式对每个所述局部变换矩阵进行转换,得到每个所述目标点云对应的全局变换矩阵;
全局配准单元,用于通过每个所述目标点云对应的全局变换矩阵对每个所述目标点云进行全局配准,得到k个配准后的点云文件。
作为其中一个可选的实施方式,所述点云配准模块24,还包括:
资源调度单元,用于当任一所述进程读取到所述第二变量为0时,实时调度CPU执行ICP算法;当任一所述进程读取到所述第二变量不为0时,实时调度GPU执行ICP算法。
优选地,所述动态分配模块25,包括:
局部配准动态分配单元,用于当任意一个所述进程预先完成分配到的所有所述目标点云的局部配准时,通过所述第二变量查找未局部配准的目标点云数量最多的点云段,将该点云段中未局部配准的所述目标点云动态分配给空闲的进程进行局部配准;
全局配准动态分配单元,用于当任意一个所述进程预先完成分配到的所有所述目标点云的全局配准时,通过所述第二变量查找未全局配准的目标点云数量最多的点云段,将该点云段中未全局配准的所述目标点云重新分配给空闲的进程进行全局配准。
优选的,在所述矩阵变换单元中,所述预设的转换公式,具体为:
其中,Ti为第i个目标点云对应的局部变换矩阵,Gi为第i个目标点云对应的全局变换矩阵。
进一步的,所述全局配准单元,具体用于:
根据以下公式对第i个所述目标点云进行全局配准:
Oi=Qi*Gi(1≤i≤k);
其中,Oi为第i个目标点云对应的配准后的点云文件,Qi为第i个目标点云,Gi为第i个目标点云对应的全局变换矩阵。
需要说明的是,本实施例的基于ICP算法的点云文件配准装置的各实施例的相关具体描述和有益效果可以参考上述的基于ICP算法的点云文件配准方法的各实施例的相关具体描述和有益效果,在此不再赘述。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应地,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序;其中,所述计算机程序在运行时控制所述计算机可读存储介质所在的设备执行上述任一实施例所述的基于ICP算法的点云文件配准方法。
综上,本发明实施例所提供的基于ICP算法的点云文件配准方法、装置及计算机可读存储介质,首先,通过消息传递接口MPI启动多个进程,将一系列序号连续的点云文件分成多个点云段,并分别对每个进程分配到的点云段进行并行配准,实现一级并行;其次,根据第一变量实时调度计算机的CPU和GPU计算资源,为点云文件配准设置了CPU执行和GPU加速两个路径,实现多个CPU内核和多个GPU的同步并行;其中,GPU实现两个连续点云文件的加速配准为二级并行;然后,通过共享内存中的第二变量将点云文件的配准任务预分配和动态分配给每个进程,实现消息传递接口MPI每个进程的负载均衡,从而能够提高点云文件集配准的并行化程度、计算机计算资源的利用率和点云文件并行配准的效率。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (10)
1.一种基于ICP算法的点云文件配准方法,其特征在于,包括:
获取点云文件集,并通过消息传递接口启动多个进程;其中,所述点云文件集包含1个源点云和k个待配准的目标点云;
将所述点云文件集划分为多个点云段,并依序将所述点云段预分配给对应的所述进程;
创建包含1个第一变量和k个第二变量的共享内存,对所述共享内存进行初始化;其中,所述第一变量与闲置GPU的数量相对应,所述第二变量与所述目标点云的配准情况一一对应;
根据所述第一变量分别在每个所述进程中实时调度闲置GPU或CPU执行ICP算法,通过所述消息传递接口和所述ICP算法对每个所述进程中的目标点云进行配准,得到k个配准后的点云文件;其中,
当任意一个所述进程预先完成分配到的所有所述目标点云的配准时,通过所述第二变量查找未配准的目标点云数量最多的点云段,将该点云段中未配准的所述目标点云动态分配给空闲的进程进行配准。
2.如权利要求1所述的基于ICP算法的点云文件配准方法,其特征在于,所述对所述共享内存进行初始化,具体为:
初始化所述第一变量的数值为N;其中,N为计算机GPU的数量;
初始化k个所述第二变量的数值为0。
3.如权利要求2所述的基于ICP算法的点云文件配准方法,其特征在于,所述根据所述第一变量分别在每个所述进程中实时调度闲置GPU或CPU执行ICP算法,具体为:
当任一所述进程读取到所述第二变量为0时,实时调度CPU执行ICP算法;
当任一所述进程读取到所述第二变量不为0时,实时调度GPU执行ICP算法。
4.如权利要求1所述的基于ICP算法的点云文件配准方法,其特征在于,所述通过所述消息传递接口和所述ICP算法对每个所述进程中的目标点云进行配准,得到k个配准后的点云文件,具体为:
通过所述ICP算法对每个所述进程中的目标点云进行局部配准,得到每个所述目标点云对应的局部变换矩阵;
通过所述消息传递接口收集每个所述目标点云对应的局部变换矩阵,并通过预设的转换公式对每个所述局部变换矩阵进行转换,得到每个所述目标点云对应的全局变换矩阵;
通过每个所述目标点云对应的全局变换矩阵对每个所述目标点云进行全局配准,得到k个配准后的点云文件。
5.如权利要求4所述的基于ICP算法的点云文件配准方法,其特征在于,所述当任意一个所述进程预先完成分配到的所有所述目标点云的配准时,通过所述第二变量查找未配准的目标点云数量最多的点云段,将该点云段中未配准的所述目标点云动态分配给空闲的进程进行配准,具体为:
当任意一个所述进程预先完成分配到的所有所述目标点云的局部配准时,通过所述第二变量查找未局部配准的目标点云数量最多的点云段,将该点云段中未局部配准的所述目标点云动态分配给空闲的进程进行局部配准;
当任意一个所述进程预先完成分配到的所有所述目标点云的全局配准时,通过所述第二变量查找未全局配准的目标点云数量最多的点云段,将该点云段中未全局配准的所述目标点云重新分配给空闲的进程进行全局配准。
7.如权利要求4所述的基于ICP算法的点云文件配准方法,其特征在于,根据以下公式对第i个所述目标点云进行全局配准:
Oi=Qi*Gi (1≤i≤k);
其中,Oi为第i个目标点云对应的配准后的点云文件,Qi为第i个目标点云,Gi为第i个目标点云对应的全局变换矩阵。
8.一种基于ICP算法的点云文件配准装置,其特征在于,包括:
数据预处理模块,用于获取点云文件集,并通过消息传递接口启动多个进程;其中,所述点云文件集包含1个源点云和k个待配准的目标点云;
数据预分配模块,用于将所述点云文件集划分为多个点云段,并依序将所述点云段预分配给对应的所述进程;
共享数据模块,用于创建包含1个第一变量和k个第二变量的共享内存,对所述共享内存进行初始化;其中,所述第一变量与闲置GPU的数量相对应,所述第二变量与所述目标点云的配准情况一一对应;
点云配准模块,用于根据所述第一变量分别在每个所述进程中实时调度闲置GPU或CPU执行ICP算法,通过所述消息传递接口和所述ICP算法对每个所述进程中的目标点云进行配准,得到k个配准后的点云文件;
动态分配模块,用于当任意一个所述进程预先完成分配到的所有所述目标点云的配准时,通过所述第二变量查找未配准的目标点云数量最多的点云段,将该点云段中未配准的所述目标点云动态分配给空闲的进程进行配准。
9.如权利要求8所述的基于ICP算法的点云文件配准装置,其特征在于,所述点云配准模块,包括:
局部配准单元,用于通过所述ICP算法对每个所述进程中的目标点云进行局部配准,得到每个所述目标点云对应的局部变换矩阵;
矩阵变换单元,用于通过所述消息传递接口收集每个所述目标点云对应的局部变换矩阵,并通过预设的转换公式对每个所述局部变换矩阵进行转换,得到每个所述目标点云对应的全局变换矩阵;
全局配准单元,用于通过每个所述目标点云对应的全局变换矩阵对每个所述目标点云进行全局配准,得到k个配准后的点云文件。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至7中任意一项所述的基于ICP算法的点云文件配准方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111408323.0A CN114283046B (zh) | 2021-11-19 | 2021-11-19 | 基于icp算法的点云文件配准方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111408323.0A CN114283046B (zh) | 2021-11-19 | 2021-11-19 | 基于icp算法的点云文件配准方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114283046A true CN114283046A (zh) | 2022-04-05 |
CN114283046B CN114283046B (zh) | 2022-08-19 |
Family
ID=80870293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111408323.0A Active CN114283046B (zh) | 2021-11-19 | 2021-11-19 | 基于icp算法的点云文件配准方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114283046B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115586968A (zh) * | 2022-10-12 | 2023-01-10 | 北京斯年智驾科技有限公司 | 一种icp并行加速计算方法、***、终端及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009642A (zh) * | 2006-12-31 | 2007-08-01 | 华为技术有限公司 | 一种基于任务分组的资源分配方法和装置 |
CN104268096A (zh) * | 2014-09-26 | 2015-01-07 | 西南科技大学 | 基于内存预分配和多点并写技术的大规模点云数据快速读取方法 |
CN106201696A (zh) * | 2016-07-15 | 2016-12-07 | 东软集团股份有限公司 | 用于线程的方法和装置 |
CN106548509A (zh) * | 2016-10-20 | 2017-03-29 | 中国科学院光电研究院 | 一种基于cuda及三维成像载荷的三维影像生成方法 |
CN110097582A (zh) * | 2019-05-16 | 2019-08-06 | 广西师范大学 | 一种点云优化配准与实时显示***及工作方法 |
US20190319851A1 (en) * | 2018-04-11 | 2019-10-17 | Nvidia Corporation | Fast multi-scale point cloud registration with a hierarchical gaussian mixture |
CN110880185A (zh) * | 2019-11-08 | 2020-03-13 | 南京理工大学 | 基于条纹投影的高精度动态实时360度全方位点云获取方法 |
CN111539997A (zh) * | 2020-04-23 | 2020-08-14 | 中国科学院自动化研究所 | 基于gpu计算平台的图像并行配准方法、***、装置 |
-
2021
- 2021-11-19 CN CN202111408323.0A patent/CN114283046B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101009642A (zh) * | 2006-12-31 | 2007-08-01 | 华为技术有限公司 | 一种基于任务分组的资源分配方法和装置 |
CN104268096A (zh) * | 2014-09-26 | 2015-01-07 | 西南科技大学 | 基于内存预分配和多点并写技术的大规模点云数据快速读取方法 |
CN106201696A (zh) * | 2016-07-15 | 2016-12-07 | 东软集团股份有限公司 | 用于线程的方法和装置 |
CN106548509A (zh) * | 2016-10-20 | 2017-03-29 | 中国科学院光电研究院 | 一种基于cuda及三维成像载荷的三维影像生成方法 |
US20190319851A1 (en) * | 2018-04-11 | 2019-10-17 | Nvidia Corporation | Fast multi-scale point cloud registration with a hierarchical gaussian mixture |
CN110097582A (zh) * | 2019-05-16 | 2019-08-06 | 广西师范大学 | 一种点云优化配准与实时显示***及工作方法 |
CN110880185A (zh) * | 2019-11-08 | 2020-03-13 | 南京理工大学 | 基于条纹投影的高精度动态实时360度全方位点云获取方法 |
CN111539997A (zh) * | 2020-04-23 | 2020-08-14 | 中国科学院自动化研究所 | 基于gpu计算平台的图像并行配准方法、***、装置 |
Non-Patent Citations (5)
Title |
---|
MD MUSHFIQUR RAHMAN: ""A Fast GPU Point-cloud Registration Algorithm"", 《2018 19TH IEEE SNPD》 * |
崔家武: ""MPI并行技术在测绘数据处理中的应用"", 《中国优秀硕士学位论文全文数据库基础科学辑》 * |
杨群: ""基于GPU的4PCS点云配准并行算法研究"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
王敏: ""基于PCL的大规模点云配准局部并行化研究"", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 * |
荆锐: ""基于GPU的实时三维点云数据配准研究"", 《计算机工程》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115586968A (zh) * | 2022-10-12 | 2023-01-10 | 北京斯年智驾科技有限公司 | 一种icp并行加速计算方法、***、终端及介质 |
CN115586968B (zh) * | 2022-10-12 | 2023-10-27 | 北京斯年智驾科技有限公司 | 一种icp并行加速计算方法、***、终端及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114283046B (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9038088B2 (en) | Load balancing on hetrogenous processing cluster based on exceeded load imbalance factor threshold determined by total completion time of multiple processing phases | |
CN105022670B (zh) | 一种云计算平台中的异构分布式任务处理***及其处理方法 | |
JPH0830561A (ja) | プログラムの並列化実行方法及び並列化実行コンパイラ | |
CN112162854A (zh) | 一种cpu-gpu间计算任务调度方法、***及介质 | |
CN109918182A (zh) | 虚拟化技术下的多gpu任务调度方法 | |
CN114647515A (zh) | 一种面向gpu集群的动态资源调度方法 | |
CN114283046B (zh) | 基于icp算法的点云文件配准方法、装置及存储介质 | |
CN115016938A (zh) | 一种基于强化学习的计算图自动划分方法 | |
Ranaweera et al. | Scheduling of periodic time critical applications for pipelined execution on heterogeneous systems | |
CN116684420A (zh) | 集群资源调度方法、装置、集群***和可读存储介质 | |
CN114579284A (zh) | 任务调度方法及装置 | |
CN113222099A (zh) | 卷积运算方法及芯片 | |
Aksenova et al. | The models and methods of optimal control of three work-stealing deques located in a shared memory | |
CN113222136A (zh) | 卷积运算方法及芯片 | |
Schmidt et al. | Load-balanced parallel constraint-based causal structure learning on multi-core systems for high-dimensional data | |
CN116701001A (zh) | 目标任务分配方法、装置、电子设备及存储介质 | |
CN107992821B (zh) | 一种图像识别方法及*** | |
CN115034365A (zh) | 一种面向神经网络处理器的多核并行计算方法 | |
Al Maruf et al. | Optimizing DNNs Model Partitioning for Enhanced Performance on Edge Devices. | |
Kedad-Sidhoum et al. | Fast biological sequence comparison on hybrid platforms | |
US20210042116A1 (en) | Distributed physical processing of matrix sum operation | |
CN114691142A (zh) | 执行程序的编译方法、芯片、电子设备及计算机可读存储介质 | |
VanCompernolle et al. | Maximum clique solver using bitsets on GPUs | |
CN115269163A (zh) | 算子图的资源分配方法、装置、计算机设备及存储介质 | |
CN117194041B (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 |