论文部分内容阅读
近些年,计算机存储技术、数据库技术不断提升,人们积累了海量数据,并且积累速度不断加快。通常可将各类数据挖掘算法运行在多台计算机组成的分布式系统中,提高数据挖掘速度。在单机运行时,只能通过CPU多线程进行并行计算。GPU是一种具有高性能运算特性的多核处理器,且GPU可并行线程的数量高于CPU。基于此背景,本文目的是实现一种基于GPU多线程并行计算的分类算法。逻辑回归是一种高效分类算法,被大量应用于统计学及生物科学等方面。Mahout以JAVA语言为基础实现了多种经典分类算法,是一套被广泛使用的机器学习库。本文从软件体系、编程模型、存储器模型等多方面详细分析了GPU高性能编程。深入研究Mahout中逻辑回归算法,将具有并行特性的步骤移植到GPU高效并行计算。本文设计并实现了Mahout逻辑回归分类器的测试模块。首先,详细分析逻辑回归分类器的训练模块算法及测试模块算法中各个关键步骤,讨论使用GPU并行运算对算法进行加速的可行性。其次,重点研究测试模块算法特性并结合GPU多线程运行特性,设计基于GPU结构的测试模块算法。本文设计的测试模块算法采用CPU与GPU联合工作方式,CPU处理测试算法中复杂的逻辑运算,高度并行运算则由GPU处理。为了使算法适宜GPU并行结构高效运行,对算法中最关键的点积运算进行重新设计。同时,为了探索更高效的实现方式,将需要计算的矢量数据分别采用全局内存与零拷贝内存两种方式储存。本文最后使用了具有不同特性的多个数据集对算法进行测试。测试结果表明,该算法提高了大部分数据集分类速度,特别是对某些数据集分类过程加速明显。