基于OpenCL隐马尔可夫模型GPU并行实现.docVIP

  • 4
  • 0
  • 约2.72千字
  • 约 6页
  • 2018-06-25 发布于福建
  • 举报

基于OpenCL隐马尔可夫模型GPU并行实现.doc

基于OpenCL隐马尔可夫模型GPU并行实现

基于OpenCL隐马尔可夫模型GPU并行实现   摘 要:隐马尔可夫模型(HMM)是建立在马尔可夫链的基础上的统计模型。虽然隐马尔可夫模型是一种计算高效的机器学习模型,但是当处理的数据集规模过于庞大时,分析的时间太长。因此,我们有必要研究隐马尔可夫模型的并行化设计,以提高模型的运算速度。近年来,开放计算语言(OpenCL)的出现,使得设计通用的并行程序成为可能。该文,我们分析了隐马尔可夫模型三类算法的并行特性,并设计基于OpenCL的并行实现。实验结果表明,隐马尔可夫模型在GPU上的并行化实现最高获得了640倍的加速比。   关键词:隐马尔可夫模型 GPU通用计算 OpenCL 并行计算   中图分类号:TP301 文献标识码:A 文章编号:1674-098X(2013)05(c)-0030-02   隐马尔可夫模型作为一个时间序列的统计分析模型在语音识别、生物序列分析等领域中有着重要的应用。虽然HMM是一种计算高效的机器学习模型,但是当处理数百万长度的序列或同时处理多个序列时,分析的时间往往需要几小时、几天。因此,设计HMM的并行算法,提升模型的训练速度,具有重要的意义。   在该文,我们详细分析了HMM相关的三类关键算法的并行化设计,并在对三种关键算法深入研究的基础上,开发了基于开放式计算语言(OpenCL)的并行实现。实验结果表明在各种情况下获得了良好的加速比性能。   1 隐马尔可夫模型   隐马可夫模型实际上是一个双重的随机过程,由一个隐藏的具有有限状态的马尔可夫链和一个与马尔可夫链状态相关联的随机函数集组成。本文只专注于离散时间系统。   为了方便讨论,根据文献[1],本文首先定义一些基本符号:   (1)隐藏的状态集合记为   ,   其中为状态个数,并记时刻的状态为,;   (2)观察值的取值集合记为   ,   其中为可能取值的个数,并记时刻的观察值为,;   (3)当步长为1时,条件概率为转移概率,简记为,所有的构成转移概率矩阵,且;   (4)观察值的概率分布矩阵设为,每个代表从一个状态生成观察值的概率,即;   (5)初始的状态概率分布向量记为,其中,;   (6)确定了、和后,HMM由参??所描述。   根据文献[1],HMM所涉及的3个基本问题分别为评估问题、识别问题和学习问题,其描述分别下:   ①评估问题指的是在给定模型和观察序列的情况下,如何计算条件概率;   ②识别问题指的是在给出模型和观察序列的情况下,如何选择最佳的状态序列;   ③学习问题是指给定观察序列的情况下,如何有效地调用模型,使得条件概率最大。   对应于上述隐马尔可夫模型三个基本问题的求解,相应的解决方案分别为:前向(Forward)算法、Viterbi算法、Baum-Welch算法。三种算法的具体描述均可在[1]一文找到。   2 OpenCL简介   OpenCL是一个面向异构平台编程的开放性计算语言,其将各类计算设备抽象成为一个统一的平台。OpenCL将并行设备看成为由一个或多个计算单元(CU)组成,而CU又由一个或多个处理单元(PE)组成,CU可以看成为一个单指多数据流处理器。在设备端执行的一个完整程序称为核函数。   OpenCL的执行模型是在工作空间的每个工作节点上执行一份核函数的拷贝,每个工作节点拥有自己的唯一的标识,核函数可以根据工作节点的标识来划分每个工作节点处理的数据范围,从而达到单指令多数据流的执行描述。该工作空间可以采用工作组对工作节点进一步细分,每一个工作组在一个CU上执行。OpenCL的出现有效地解决了平台异构性所带来的各种兼容性问题。   3 并行化设计   3.1 前向算法与Viterbi算法的并行化设计   针对前向算法,在算法1中的第3行循环内部,可以并行地计算每个时刻下所有状态的前向概率。以计算为例,如图1的虚线所示。因此,我们可以将每个前向概率的计算分配给一个工作组执行,而在工作组内部,使用并行缩减[2]的方式进行并行求和(如表1)。   Viterbi算法的并行化策略与前向算法是一致的,只是将并行求和改为并行求最大值,并记录下相应的状态指针。在此不详细介绍。   3.2 Baum-Welch的并行化设计   针对算法2,该文采用先行计算所有时刻的前向概率α和后向概率β的策略,然后在每一时刻,使用一个工作组计算一个状态均值:一个工作节点计算一个序列中的一个状态值(算法2中的第5行循环),然后再采用并行缩减的方式求得每一个状态的均值。这样设计存在的问题是算法的空间复杂度高达,然而由于序列与序列之间拥有很好的独立性,当较大、较小的情况下,可以大大缩减算法对空间的要求(如表2)。   4 实验结果   在本节中我们给出各类算

文档评论(0)

1亿VIP精品文档

相关文档