论文摘要
随着计算需求的扩大、数据库技术的成熟、信息技术与生物基因技术的发展,高性能计算已经成为了最热门的研究领域之一。当前高性能计算的发展水平不仅是衡量一个国家综合国力和国际竞争力的重要指标,也是世界各国竞相争夺的战略制高点。从第一块GPU的出现到现在已经过去了十几个年头,在很长一段时间内GPU只能被用于视频编解码、3D渲染等图像处理领域。随着GPU性能的不断提升、功能的不断增强,它逐渐被应用到需要大量计算能力的科学计算领域。2001年已经开始有人利用GPU来加速矩阵乘法运算,随后,基于GPU加速的应用出现了爆炸式的增长。科学界对GPU的利用也促使GPU本身的架构发生巨大变化,为了适应科学计算的需求,GPU渐渐向通用架构转变,它不仅能加速图形应用,还能加速科学计算应用,基于GPU的高性能计算也逐渐成为研究的热点之一。由于SVM在大规模数据应用中存在着训练速度缓慢,内存资源占用较多等缺陷,通过设计合适的并行算法程序并利用GPU进行运算以提高SVM的实用性是非常有前景的。本文首先介绍了并行计算的基本概念,引出了基于GPU的高性能计算方式。概括CUDA架构的特点,总结了此架构的两大重点概念:线程模型和存储模型。然后介绍了OpenCL编程模型、SVM以及SMO训练算法的相关知识,详细分析了SMO训练算法中的并行点,并由此设计了并行算法。与传统的串行算法相比,本设计主要在三个方面做了并行化处理:多分类器训练、大规模矩阵运算以及样本的寻找。实验分析结果表明,并行算法基本满足了设计要求。此外,本文在深入了解基于GPU的并行程序设计基础上,选用OpenCL作为算法实现工具,基于Visual Studio 2010完成了算法程序开发。文中详细地介绍了算法设计以及关键程序设计,并在理论上对实验结果做出了预测。最后,本文基于Core i7 980X+GTX 470和Q9400+Geforce 310搭建了两个实验平台,并在这两个平台上分别进行了算法仿真实验。通过对实验结果的分析表明,基于GPU的并行支持向量机在训练和预测速度上有着很大的提升,具有一定的可行性和实用价值。