CN110413776B - 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法 - Google Patents
一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法 Download PDFInfo
- Publication number
- CN110413776B CN110413776B CN201910585774.8A CN201910585774A CN110413776B CN 110413776 B CN110413776 B CN 110413776B CN 201910585774 A CN201910585774 A CN 201910585774A CN 110413776 B CN110413776 B CN 110413776B
- Authority
- CN
- China
- Prior art keywords
- gpu
- cpu
- optimal
- model
- matrix
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/35—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于CPU‑GPU协同并行的文本主题模型LDA高性能计算方法,首先,基于动态规划算法实现CPU与GPU两种异构计算资源优化配置;然后,基于对数函数模型完成GPU性能评估,完成文本数据最优粒度划分;再基于指数随机元胞自动机算法实现隐狄利克雷分配模型的CPU‑GPU协同并行计算;并进一步基于改进的贪婪策略在CPU‑GPU间进行自适应地异构调度以实现负载均衡。本发明实现了文本主题模型的高性能建模,有利于快速发现文本中隐含的主题信息,从而满足海量文档集合归类、文本数据流式计算等应用的高效处理需求。
Description
技术领域
本发明涉及异构环境高性能计算技术领域,具体涉及一种基于CPU-GPU协同并行的文本主题模型LDA高性能计算方法。
背景技术
随着互联网的飞速发展,海量隐含信息丰富的网络文本(如微博、商品评论、新闻报道)不断产生,成为一种广受重视的基础数据。文本主题提取是文本数据挖掘的重要步骤,其中,隐狄利克雷分配模型(LDA)是一种经典主题模型,并产生了大量模型变体,广泛应用于文本主题提取、文档集合归类等计算场景中。然而,标准LDA模型需要大量迭代计算,且计算复杂度与数据量大小成正比,因而计算复杂、耗时,难以满足文本大数据的快速处理需求。
为此,已有大量研究成果利用多核CPU或众核GPU加速LDA计算过程。在CPU端,AD-LDA模型是最早的分布式并行LDA模型,随后出现了若干版本对其进行优化改良。在GPU端,Yan等提出了第一个基于GPU加速的并行LDA模型,且其计算结果优于AD-LDA模型;随后,随着GPU技术的发展,又产生了不少适用于新的GPU架构的并行LDA模型。
当前计算平台(如个人PC,台式机,工作站等)基本同时配备了多核CPU和众核GPU,成为一种泛在计算平台;同时,CPU-GPU协同能提供更强的计算能力,并支持更广泛的应用场景。故此,许多现有高性能平台均采用CPU-GPU异构系统架构,使其成为一种新型高性能解决方案。
本申请发明人在实施本发明的过程中,发现现有技术的方法,至少存在如下技术问题:
现有的并行LDA计算方法实现平台单一,且计算效率不高。
发明内容
有鉴于此,本发明提供了一种基于CPU-GPU协同并行的文本主题模型LDA高性能计算方法,用以解决或者至少部分解决现有技术中的方法存在的实现平台单一以及计算效率不高的技术问题。
本发明提供了一种基于CPU-GPU协同并行的文本主题模型LDA高性能计算方法,包括:
步骤S1:基于动态规划算法对CPU与GPU两种异构计算资源优化配置,获得资源优化配置方案;
步骤S2:基于对数函数模型对GPU进行性能评估,对文本数据进行最优粒度划分,获得文本数据最优粒度划分结果;
步骤S3:根据资源优化配置方案以及文本数据最优粒度划分结果,基于指数随机元胞自动机算法对文本主题模型LDA进行CPU-GPU协同并行计算。
在一种实施方式中,所述方法还包括:
步骤S4:基于改进的贪婪策略在CPU-GPU间进行自适应地异构调度以实现负载均衡。
在一种实施方式中,步骤S1具体包括:
步骤S1.1:获取异构计算环境下的CPU相关参数,其中,CPU相关参数包括CPU线程数Ncpu-threads;
步骤S1.2:获取异构计算环境下的GPU相关参数,其中,GPU相关参数包括:GPU流多处理器数量Nsm、每个流多处理器包含的CUDA核心数量Ncc、流多处理器支持的最大线程数量Nmt_sm、线程块支持的最大线程数量Nmt_b、流多处理器支持的最大线程块数量Nmb_sm、每个线程块的共享存储容量Mshared、每个线程块占有的寄存器容量Mreg、LDA模型占有的的寄存器容量Mreg_lda以及LDA模型占有的共享存取容量Mshared_lda;
步骤S1.3:根据GPU相关参数、设置的最优GPU线程块数量xb以及每个线程块的线程数量为xt,建立式(1)所示的动态规划方程:
并通过求解该动态方程,获得GPU资源优化配置方案;
步骤S1.4:配置CPU线程,获得CPU资源优化配置方案,其中,Ng个线程用于GPU管理与处理任务分配,另外Ncpu-threads-Ng个线程用于并行计算,Ng表示异构系统所包含的GPU个数;
步骤S1.5:配置GPU线程块-线程,GPU线程块-线程配置为<xb,xt>。
在一种实施方式中,步骤S2具体包括:
步骤S2.1:建立对数函数模型如式(2)
y=a-b×ln(x+c) (2)
其中,x、y分别表示词语数和GPU计算速率,a、b、c为待求解模型参数;
步骤S2.2:选取样本数据,等差地取一定大小一定数量的词语数x计算K个主题的LDA模型,获取对应的GPU计算速率y,根据词语和对应的计算速率构建采样集合;
步骤S2.3:使用采样集合对对数函数模型进行拟合,求解参数a,b和c;
步骤S2.4:根据式(3)计算最优数据划分粒度xoptimal对应的GPU处理速率yoptimal;
式(3)中,y'thr表示斜率阈值,ymax和xmax分别表示GPU最大速率和对应的文档词语数,yoptimal为选取最优数据划分粒度xoptimal时的GPU处理速率,P是一个百分数,以一定阈值选取y'thr,同时P值的选取则按照一定步长递减,通过综合对比GPU速率和文档词语数,选取折中方案为文本数据划分粒度;
步骤S2.5:根据求解出的yoptimal和对数函数模型,求解对应的词语数xoptimal,以xoptimal为最优数据划分粒度大小,并按照最优数据划分粒度划分文本数据,获得文本数据最优粒度划分结果。
在一种实施方式中,步骤S3具体包括:
步骤S3.1:初始化如式(4)所述的LDA条件主题分布模型中的各项参数和矩阵,
式(4)中,α、β为局部参数,V为词汇表大小,K为主题数量,D为文档数量,A为文档-主题矩阵,B为词汇-主题矩阵;
步骤S3.2:设置一定的迭代次数迭代更新LDA条件主题分布模型直至模型收敛。
在一种实施方式中,步骤S3.1具体包括:
步骤S3.1.1:根据式(4)参照预设经验值初始化局部参数α=50/K,其中,K为主题数,β=0.1,V为词汇表大小,并存入寄存器中;
步骤S3.1.2:根据文档数D、词语总数N、词汇表大小V和主题数K,初始化大小为D*K的矩阵A、大小为V*K的矩阵B以及大小为1*K的矩阵T,其中,矩阵A为词汇主题矩阵,Bvk代表词汇v被分配到主题k的数量,矩阵B为主题计数矩阵,Tk代表属于主题k的词汇数量,矩阵T为文档-主题矩阵,Adk代表分配给第d篇文档的主题k的数量;
步骤S3.1.3:生成初始化矩阵A、B和K的两个副本,分别作为只读副本和读写副本存入内存与显存,在之后的迭代更新中,仅动态更新读写副本,只读副本在读写副本更新全部完成后进行全局更新。
在一种实施方式中,步骤S3.2具体包括:
步骤S3.2.1:读取只读副本中存储的矩阵以及局部参数,根据S1中获取的资源优化配置方案,对文档中的每个词在CPU和GPU中并行地根据如式(4)所述的主题条件分布模型计算条件主题分布;
步骤S3.2.2:根据该LDA条件主题分布模型取样,重新生成对应词语的对应主题;
步骤S3.2.3:根据重新生成的词汇所属的主题,更新A、B和K矩阵,并相应地更新读写副本;
步骤S3.2.4:并行地完成所有词汇的遍历后,将读写副本中的矩阵数据全局更新到只读副本中,准备下一轮迭代。
在一种实施方式中,步骤S4具体包括:
步骤S4.1:根据S1中的资源优化配置方案,在非模型计算CPU线程上构建中心任务队列指派线程,用于分配经过S2中最优粒度划分后文本数据块,其中,非模型计算CPU线程为GPU管理与处理任务分配的线程;
步骤S4.2:实时监测CPU与GPU两种处理器的性能情况与GPU显存剩余容量;
步骤S4.3:当GPU显存剩余充足时,将划分后文本数据块进行二次合并与传输;
步骤S4.4:实时比较CPU与GPU处理速度,若GPU处理速率与CPU处理效率的差值大于预设值时,则对于CPU负责处理的数据块进行二次划分以进一步均衡异构处理环境的负载。
本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
本发明提供的一种基于CPU-GPU协同并行的文本主题模型LDA高性能计算方法,首先,基于动态规划算法对CPU与GPU两种异构计算资源优化配置,获得资源优化配置方案;然后,基于对数函数模型对GPU进行性能评估,对文本数据进行最优粒度划分,获得文本数据最优粒度划分结果;再根据资源优化配置方案以及文本数据最优粒度划分结果,基于指数随机元胞自动机算法对文本主题模型LDA进行CPU-GPU协同并行计算。
本发明通过优化配置异构计算资源、合理划分原始文本数据,有效利用了泛在的CPU-GPU异构计算资源进行文本主题模型LDA的协同并行计算,实现了文本主题模型的高性能建模,有利于快速发现文本中隐含的主题信息,从而满足海量文档集合归类、文本数据流式计算等应用的高效处理需求。
进一步地,本发明还采用基于改进的贪婪策略在CPU-GPU间进行自适应地异构调度以实现负载均衡,可以实现大规模文本数据下的资源高效利用和良好负载均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一种基于CPU-GPU协同并行的文本主题模型LDA高性能计算方法的流程示意图;
图2为本发明提供的主题模型LDA高性能计算方法的具体实现流程。
具体实施方式
本发明的目的在于针对现有LDA并行计算技术的实现平台单一,未能有效利用CPU-GPU该种泛在异构计算资源,以及可移植性和可扩展性较差的缺陷,提供一种基于CPU-GPU协同并行的文本主题模型LDA的高性能计算方法。
为达到上述目的,本发明的主要构思如下:
针对LDA模型求解计算量大而泛在的CPU-GPU异构计算资源却为得到有效利用的现状,基于CPU-GPU协同并行,提供了一种新的普适性优良的LDA高性能计算方法。本发明的关键创造点是突破了不同类型计算引擎间的异构环境限制,将泛在的CPU-GPU异构资源统一用于LDA模型并行求解,同时基于动态规划算法实现了CPU与GPU两种异构计算资源优化配置,并利用对数函数模型进行GPU性能评估,完成了文本数据最优粒度划分,使用改进的贪婪策略在CPU-GPU间进行自适应地异构调度实现了负载均衡。
本发明极大地提高了LDA模型的求解速度,可应用于文本大数据主题提取、文档集合归类等场景中,具有很高的实用性。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本实施例提供了一种基于CPU-GPU协同并行的文本主题模型LDA高性能计算方法,请参见图1,该方法包括:
步骤S1:基于动态规划算法对CPU与GPU两种异构计算资源优化配置,获得资源优化配置方案。
具体来说,在CPU-GPU异构系统中,合理的资源分配对高效发挥系统计算能力至关重要。本发明采用动态规划算法进行资源配置时,在CPU方面,可以按照CPU支持的线程数量进行计算线程与任务分配线程的合理分配;在GPU方面,可以综合考虑GPU硬件资源限制、算法存储需求和通用GPU编程优化规则,将GPU计算资源优化配置问题转化为动态规划求最优解问题,实现GPU资源优化配置。
步骤S2:基于对数函数模型对GPU进行性能评估,对文本数据进行最优粒度划分,获得文本数据最优粒度划分结果。
具体来说,由于数据传输的耗时很高,本发明将文本构成一定大小的文本数据块,以数据块为单位一次性传入GPU中。此外,因为GPU的性能不尽相同,所以本步骤中进行了GPU性能评估,可以针对实际使用环境(GPU性能情况)计算最佳的数据块大小。
步骤S3:根据资源优化配置方案以及文本数据最优粒度划分结果,基于指数随机元胞自动机算法对文本主题模型LDA进行CPU-GPU协同并行计算。
具体来说,基于指数随机元胞自动机算法即ESDA算法,LDA即隐狄利克雷分配模型。
为了对性能计算进行进一步优化,在一种实施方式中,所述方法还包括:
步骤S4:基于改进的贪婪策略在CPU-GPU间进行自适应地异构调度以实现负载均衡。
请参见图2,为本发明提供的方法的具体实现技术路线图。
在一种实施方式中,步骤S1具体包括:
步骤S1.1:获取异构计算环境下的CPU相关参数,其中,CPU相关参数包括CPU线程数Ncpu-threads;
步骤S1.2:获取异构计算环境下的GPU相关参数,其中,GPU相关参数包括:GPU流多处理器数量Nsm、每个流多处理器包含的CUDA核心数量Ncc、流多处理器支持的最大线程数量Nmt_sm、线程块支持的最大线程数量Nmt_b、流多处理器支持的最大线程块数量Nmb_sm、每个线程块的共享存储容量Mshared、每个线程块占有的寄存器容量Mreg、LDA模型占有的的寄存器容量Mreg_lda以及LDA模型占有的共享存取容量Mshared_lda;
步骤S1.3:根据GPU相关参数、设置的最优GPU线程块数量xb以及每个线程块的线程数量为xt,建立式(1)所示的动态规划方程:
并通过求解该动态方程,获得GPU资源优化配置方案;
步骤S1.4:配置CPU线程,获得CPU资源优化配置方案,其中,Ng个线程用于GPU管理与处理任务分配,另外Ncpu-threads-Ng个线程用于并行计算,Ng表示异构系统所包含的GPU个数;
步骤S1.5:配置GPU线程块-线程,GPU线程块-线程配置为<xb,xt>。
具体来说,步骤S1.1中CPU线程数Ncpu-threads即为超线程数,步骤S1.3中的xb和xt可以预先设定。
在一种实施方式中,步骤S2具体包括:
步骤S2.1:建立对数函数模型如式(2)
y=a-b×ln(x+c) (2)
其中,x、y分别表示词语数和GPU计算速率,a、b、c为待求解模型参数;
步骤S2.2:选取样本数据,等差地取一定大小一定数量的词语数x计算K个主题的LDA模型,获取对应的GPU计算速率y,根据词语和对应的计算速率构建采样集合;
步骤S2.3:使用采样集合对对数函数模型进行拟合,求解参数a,b和c;
步骤S2.4:根据式(3)计算最优数据划分粒度xoptimal对应的GPU处理速率yoptimal;
式(3)中,y'thr表示斜率阈值,ymax和xmax分别表示GPU最大速率和对应的文档词语数,yoptimal为选取最优数据划分粒度xoptimal时的GPU处理速率,P是一个百分数,以一定阈值选取y'thr,同时P值的选取则按照一定步长递减,通过综合对比GPU速率和文档词语数,选取折中方案为文本数据划分粒度;
步骤S2.5:根据求解出的yoptimal和对数函数模型,求解对应的词语数xoptimal,以xoptimal为最优数据划分粒度大小,并按照最优数据划分粒度划分文本数据,获得文本数据最优粒度划分结果。
具体来说,步骤S2.2中计算速率y的获取方式如下:将大小为x的数据(x个词语组成的文本数据块)放入GPU进行LDA模型求解,获取对应情况下GPU每秒能计算的词语数量,即为y。采样集合是指:等间距地取若干个x,分别获取对应的计算速率y,由它们组成的若干个<x,y>这样的二元组构成的集合,就是采样集合。
步骤S2.3中,参数a,b和c主要有两个作用,第一,b和c作为(3)的参数在步骤24中计算yoptimal;第二,a,b和c后续中在将yoptimal代回到式(2)中计算xoptimal时用到。
步骤S2.4中,可以以0.001为阈值选取y'thr,同时P值的选取则按照1%的步长递减,通过综合对比GPU速率和文档词语数,选取斜率转折点并获取其对应的GPU处理速度yoptimal。
步骤S2.5中,将yoptimal带入指数函数方程,则可以求解出对应的词语数xoptimal,进而可以以xoptimal为最优数据划分粒度大小。
在一种实施方式中,步骤S3具体包括:
步骤S3.1:初始化如式(4)所述的LDA条件主题分布模型中的各项参数和矩阵,
式(4)中,α、β为局部参数,V为词汇表大小,K为主题数量,D为文档数量,A为文档-主题矩阵,B为词汇-主题矩阵;
步骤S3.2:设置一定的迭代次数迭代更新LDA条件主题分布模型直至模型收敛。
具体来说,迭代次数和迭代更新LDA条件可以根据实际进行设置,通过不断迭代和更新,得到最优的高性能计算结果。
在一种实施方式中,步骤S3.1具体包括:
步骤S3.1.1:根据式(4)参照预设经验值初始化局部参数α=50/K,其中,K为主题数,β=0.1,V为词汇表大小,并存入寄存器中;
步骤S3.1.2:根据文档数D、词语总数N、词汇表大小V和主题数K,初始化大小为D*K的矩阵A、大小为V*K的矩阵B以及大小为1*K的矩阵T,其中,矩阵A为词汇主题矩阵,Bvk代表词汇v被分配到主题k的数量,矩阵B为主题计数矩阵,Tk代表属于主题k的词汇数量,矩阵T为文档-主题矩阵,Adk代表分配给第d篇文档的主题k的数量;
步骤S3.1.3:生成初始化矩阵A、B和K的两个副本,分别作为只读副本和读写副本存入内存与显存,在之后的迭代更新中,仅动态更新读写副本,只读副本在读写副本更新全部完成后进行全局更新。
在一种实施方式中,步骤S3.2具体包括:
步骤S3.2.1:读取只读副本中存储的矩阵以及局部参数,根据S1中获取的资源优化配置方案,对文档中的每个词在CPU和GPU中并行地根据如式(4)所述的主题条件分布模型计算条件主题分布;
步骤S3.2.2:根据该LDA条件主题分布模型取样,重新生成对应词语的对应主题;
步骤S3.2.3:根据重新生成的词汇所属的主题,更新A、B和K矩阵,并相应地更新读写副本;
步骤S3.2.4:并行地完成所有词汇的遍历后,将读写副本中的矩阵数据全局更新到只读副本中,准备下一轮迭代。
在一种实施方式中,步骤S4具体包括:
步骤S4.1:根据S1中的资源优化配置方案,在非模型计算CPU线程上构建中心任务队列指派线程,用于分配经过S2中最优粒度划分后文本数据块,其中,非模型计算CPU线程为GPU管理与处理任务分配的线程;
步骤S4.2:实时监测CPU与GPU两种处理器的性能情况与GPU显存剩余容量;
步骤S4.3:当GPU显存剩余充足时,将划分后文本数据块进行二次合并与传输;
步骤S4.4:实时比较CPU与GPU处理速度,若GPU处理速率与CPU处理效率的差值大于预设值时,则对于CPU负责处理的数据块进行二次划分以进一步均衡异构处理环境的负载。
预设值可以根据实际情况进行设置,当GPU处理速率远高于CPU处理效率时,则通过划分后文本数据块进行二次合并与传输,可以将以最佳划分粒度划分后的文本数据块合二为一传输,以期减少传输消耗。
总体来说,本发明的技术方案与现有技术相比,具有如下优点和有益效果:
(1)文本主题提取是文本数据挖掘的重要步骤,其中LDA模型应用最为广泛,但标准LDA模型的计算需要大量迭代,且计算复杂度与数据量成正比,因而计算复杂、耗时,现有技术已经难以满足文本大数据的快速处理需求。本发明充分利用了泛在的同时配备了多核CPU和众核GPU的计算平台(如个人PC,台式机,工作站)的计算能力,基于CPU-GPU协同并行支持LDA算法快速计算,将LDA并行算法从单一类型计算引擎推广到异构计算资源上,其计算效率优于单一的CPU并行或GPU并行;
(2)本发明提出的基于动态规划的计算资源自动优化配置模型,可以保证在任意配置的异构系统中CPU、GPU两种并行资源均能得到高效利用,使本方法具有较好的可扩展性和可移植性;
(3)本发明提出的基于对数函数的GPU性能评估模型,实现了对文本数据的流式划分,设计的基于改进的贪婪策略的动态调度模型,可以实现大规模文本数据下的资源高效利用和良好负载均衡。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (5)
1.一种基于CPU-GPU协同并行的文本主题模型LDA高性能计算方法,其特征在于,包括:
步骤S1:基于动态规划算法对CPU与GPU两种异构计算资源优化配置,获得资源优化配置方案;
步骤S2:基于对数函数模型对GPU进行性能评估,对文本数据进行最优粒度划分,获得文本数据最优粒度划分结果;
步骤S3:根据资源优化配置方案以及文本数据最优粒度划分结果,基于指数随机元胞自动机算法对文本主题模型LDA进行CPU-GPU协同并行计算;
其中,步骤S1具体包括:
步骤S1.1:获取异构计算环境下的CPU相关参数,其中,CPU相关参数包括CPU线程数Ncpu-threads;
步骤S1.2:获取异构计算环境下的GPU相关参数,其中,GPU相关参数包括:GPU流多处理器数量Nsm、每个流多处理器包含的CUDA核心数量Ncc、流多处理器支持的最大线程数量Nmt_sm、线程块支持的最大线程数量Nmt_b、流多处理器支持的最大线程块数量Nmb_sm、每个线程块的共享存储容量Mshared、每个线程块占有的寄存器容量Mreg、LDA模型占有的的寄存器容量Mreg_lda以及LDA模型占有的共享存取容量Mshared_lda;
步骤S1.3:根据GPU相关参数、设置的最优GPU线程块数量xb以及每个线程块的线程数量为xt,建立式(1)所示的动态规划方程:
并通过求解该动态方程,获得GPU资源优化配置方案;
步骤S1.4:配置CPU线程,获得CPU资源优化配置方案,其中,Ng个线程用于GPU管理与处理任务分配,另外Ncpu-threads-Ng个线程用于并行计算,Ng表示异构系统所包含的GPU个数;
步骤S1.5:配置GPU线程块-线程,GPU线程块-线程配置为<xb,xt>;
步骤S2具体包括:
步骤S2.1:建立对数函数模型如式(2)
y=a-b×ln(x+c) (2)
其中,x、y分别表示词语数和GPU计算速率,a、b、c为待求解模型参数;
步骤S2.2:选取样本数据,等差地取一定大小一定数量的词语数x计算K个主题的LDA模型,获取对应的GPU计算速率y,根据词语和对应的计算速率构建采样集合;
步骤S2.3:使用采样集合对对数函数模型进行拟合,求解参数a,b和c;
步骤S2.4:根据式(3)计算最优数据划分粒度xoptimal对应的GPU处理速率yoptimal;
式(3)中,y′thr表示斜率阈值,ymax和xmax分别表示GPU最大速率和对应的文档词语数,yoptimal为选取最优数据划分粒度xoptimal时的GPU处理速率,P是一个百分数,以一定阈值选取y′thr,同时P值的选取则按照一定步长递减,通过综合对比GPU速率和文档词语数,选取折中方案为文本数据划分粒度;
步骤S2.5:根据求解出的yoptimal和对数函数模型,求解对应的词语数xoptimal,以xoptimal为最优数据划分粒度大小,并按照最优数据划分粒度划分文本数据,获得文本数据最优粒度划分结果;
步骤S3具体包括:
步骤S3.1:初始化如式(4)所述的LDA条件主题分布模型中的各项参数和矩阵,
式(4)中,α、β为局部参数,V为词汇表大小,K为主题数量,D为文档数量,A为文档-主题矩阵,B为词汇-主题矩阵,Bvk表示词汇v被分配到主题k的数量,Adk表示分配给第d篇文档的主题k的数量;
步骤S3.2:设置一定的迭代次数迭代更新LDA条件主题分布模型直至模型收敛。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
步骤S4:基于改进的贪婪策略在CPU-GPU间进行自适应地异构调度以实现负载均衡。
3.如权利要求1所述的方法,其特征在于,步骤S3.1具体包括:
步骤S3.1.1:根据式(4)参照预设经验值初始化局部参数α=50/K,其中,K为主题数,β=0.1,V为词汇表大小,并存入寄存器中;
步骤S3.1.2:根据文档数D、词语总数N、词汇表大小V和主题数K,初始化大小为D*K的矩阵A、大小为V*K的矩阵B以及大小为1*K的矩阵T,其中,矩阵A为词汇主题矩阵,Bvk代表词汇v被分配到主题k的数量,矩阵B为主题计数矩阵,Tk代表属于主题k的词汇数量,矩阵T为文档-主题矩阵,Adk代表分配给第d篇文档的主题k的数量;
步骤S3.1.3:生成初始化矩阵A、B和K的两个副本,分别作为只读副本和读写副本存入内存与显存,在之后的迭代更新中,仅动态更新读写副本,只读副本在读写副本更新全部完成后进行全局更新。
4.如权利要求3所述的方法,其特征在于,步骤S3.2具体包括:
步骤S3.2.1:读取只读副本中存储的矩阵以及局部参数,根据S1中获取的资源优化配置方案,对文档中的每个词在CPU和GPU中并行地根据如式(4)所述的条件主题分布模型计算条件主题分布;
步骤S3.2.2:根据该LDA条件主题分布模型取样,重新生成对应词语的对应主题;
步骤S3.2.3:根据重新生成的词汇所属的主题,更新A、B和K矩阵,并相应地更新读写副本;
步骤S3.2.4:并行地完成所有词汇的遍历后,将读写副本中的矩阵数据全局更新到只读副本中,准备下一轮迭代。
5.如权利要求2所述的方法,其特征在于,步骤S4具体包括:
步骤S4.1:根据S1中的资源优化配置方案,在非模型计算CPU线程上构建中心任务队列指派线程,用于分配经过S2中最优粒度划分后文本数据块,其中,非模型计算CPU线程为GPU管理与处理任务分配的线程;
步骤S4.2:实时监测CPU与GPU两种处理器的性能情况与GPU显存剩余容量;
步骤S4.3:当GPU显存剩余充足时,将划分后文本数据块进行二次合并与传输;
步骤S4.4:实时比较CPU与GPU处理速度,若GPU处理速率与CPU处理效率的差值大于预设值时,则对于CPU负责处理的数据块进行二次划分以进一步均衡异构处理环境的负载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910585774.8A CN110413776B (zh) | 2019-07-01 | 2019-07-01 | 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910585774.8A CN110413776B (zh) | 2019-07-01 | 2019-07-01 | 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413776A CN110413776A (zh) | 2019-11-05 |
CN110413776B true CN110413776B (zh) | 2021-09-14 |
Family
ID=68358650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910585774.8A Active CN110413776B (zh) | 2019-07-01 | 2019-07-01 | 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413776B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112835772A (zh) * | 2019-11-25 | 2021-05-25 | 南京工业职业技术学院 | 一种异构硬件环境下的粗粒度计算加速比评估方法与系统 |
CN111161126B (zh) * | 2019-12-17 | 2023-06-09 | 北京航空航天大学杭州创新研究院 | 一种基于gpu的并行进化算法的可靠性评估方法 |
CN111651273B (zh) * | 2020-05-29 | 2023-05-05 | 中国人民解放军国防科技大学 | 一种基于gpu的大容量短突发信号接收机设计 |
CN115952073B (zh) * | 2023-03-13 | 2023-06-13 | 广州市易鸿智能装备有限公司 | 工控机性能评估方法、装置、电子设备及存储介质 |
CN117896067B (zh) * | 2024-03-13 | 2024-07-16 | 杭州金智塔科技有限公司 | 适用于国密sm2算法的并行模约减方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703856B2 (en) * | 2014-07-07 | 2017-07-11 | Sap Se | Hilbert curve partitioning for parallelization of DBSCAN |
CN108122027B (zh) * | 2016-11-29 | 2021-01-12 | 华为技术有限公司 | 一种神经网络模型的训练方法、装置及芯片 |
CN108090046B (zh) * | 2017-12-29 | 2021-05-04 | 武汉大学 | 一种基于lda和随机森林的微博谣言识别方法 |
-
2019
- 2019-07-01 CN CN201910585774.8A patent/CN110413776B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110413776A (zh) | 2019-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413776B (zh) | 一种基于cpu-gpu协同并行的文本主题模型lda高性能计算方法 | |
CN106991011B (zh) | 基于cpu多线程与gpu多粒度并行及协同优化的方法 | |
CN112529169B (zh) | 数据处理方法、模型优化装置和模型执行装置 | |
EP3158529B1 (en) | Model parallel processing method and apparatus based on multiple graphic processing units | |
US10282809B2 (en) | Data parallel processing method and apparatus based on multiple graphic processing units | |
WO2021254135A1 (zh) | 任务执行方法及存储设备 | |
WO2022095815A1 (zh) | 显存管理方法、装置、设备及系统 | |
CN110969198A (zh) | 深度学习模型的分布式训练方法、装置、设备及存储介质 | |
Chen et al. | Mgmr: Multi-gpu based mapreduce | |
CN114327811A (zh) | 一种任务调度方法、装置、设备及可读存储介质 | |
CN115586961A (zh) | 一种ai平台计算资源任务调度方法、装置及介质 | |
CN105554069B (zh) | 一种大数据处理分布式缓存系统及其方法 | |
CN105407383B (zh) | 一种多版本视频点播流媒体服务器集群资源预测方法 | |
US20210149746A1 (en) | Method, System, Computer Readable Medium, and Device for Scheduling Computational Operation Based on Graph Data | |
US20210255793A1 (en) | System and method for managing conversion of low-locality data into high-locality data | |
CN114168084B (zh) | 文件合并方法、文件合并装置、电子设备以及存储介质 | |
CN117009069A (zh) | 虚拟云计算资源的调度方法及装置 | |
Liu et al. | An efficient job scheduling for MapReduce clusters | |
CN111444430B (zh) | 内容推荐方法、装置、设备和存储介质 | |
KR20220142059A (ko) | 이미지 기반 딥 러닝 학습의 배칭 연산 가속을 위한 인 메모리 소프트웨어 디코딩 캐시 구조 및 관리 기법 | |
CN112416607B (zh) | 一种提升Cache命中率的方法、系统、设备及介质 | |
CN116188239B (zh) | 多请求并发的gpu图随机游走优化实现方法及系统 | |
Xu et al. | EdgeMesh: A hybrid distributed training mechanism for heterogeneous edge devices | |
US20240028397A1 (en) | Computational resource allocation advisor for elastic cloud databases | |
WO2024174999A1 (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 |