论文部分内容阅读
条件随机场作为一种机器学习算法,广泛应用于词性标注、信息抽取、图像分割等领域。实际应用中,条件随机场能灵活地生成大量描述性特征来增强学习效果,但特征维度会轻易突破百万级别,使训练过程中需要消耗大量的时间来计算梯度和似然函数,从而在一定程度上限制了条件随机场解决实际问题的能力。现有的解决方案分别利用多核CPU或GPU对条件随机场并行化,然而受限于CPU或GPU本身架构特性,加速效果并不让人满意。针对上述问题,提出了一种利用CPU-GPU协同加速条件随机场模型的新方法。在CPU-GPU协作并行架构中,利用CPU处理内存复杂度高和分支判断较多的模型训练优化过程,解决了传统GPU并行中因处理器内存有限和弱分支判断处理能力而导致的整体并行效果低的问题。在GPU并行化方面,针对密集型计算过程的不同特性,提出两级并行方法以获得最大化并行效果:状态矩阵中所有元素在独立计算层Node Level并行;而状态矩阵中所有可能路径的计算则基于序列依赖计算层Sentence Level并行。此外,针对GPU的内存访问特性,优化了数据的内存布局,减少不必要的内存数据通信,提高了并行效率。实验结果表明,基于CPU-GPU协同并行条件随机场的方法,相比于CPU的单线程处理方式,在模型准确率持平的情况下,训练过程加速可达到10倍以上,预测过程可达到15倍以上的加速;另一方面,相比于只使用GPU并行的方法,协作并行加速性能有效提升50%。