基于GPU的并行支持向量机的设计与实现

基于GPU的并行支持向量机的设计与实现

论文摘要

随着计算需求的扩大、数据库技术的成熟、信息技术与生物基因技术的发展,高性能计算已经成为了最热门的研究领域之一。当前高性能计算的发展水平不仅是衡量一个国家综合国力和国际竞争力的重要指标,也是世界各国竞相争夺的战略制高点。从第一块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的并行支持向量机在训练和预测速度上有着很大的提升,具有一定的可行性和实用价值。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 研究背景及意义
  • 1.2 基于GPU的高性能计算的发展及研究现状
  • 1.3 支持向量机研究现状
  • 1.4 本论文的主要研究内容
  • 第2章 基于GPU的并行计算原理
  • 2.1 并行计算基本概念
  • 2.1.1 Flynn分类
  • 2.1.2 数据并行与任务并行
  • 2.1.3 常见的并行算法
  • 2.2 GPU简介
  • 2.3 CUDA简介
  • 2.3.1 CUDA线程模型
  • 2.3.2 CUDA存储模型
  • 2.4 基于GPU的编程模型
  • 2.4.1 OpenCL架构
  • 2.4.2 OpenCL编程模型
  • 2.5 本章小结
  • 第3章 SVM并行算法设计
  • 3.1 SVM简介
  • 3.2 SMO训练算法简介
  • 3.3 基于LibSVM的SVM仿真
  • 3.4 算法并行点分析
  • 3.4.1 多分类器训练
  • 3.4.2 矩阵运算
  • 3.4.3 寻找样本
  • 3.5 并行算法设计
  • 3.5.1 训练算法设计
  • 3.5.2 预测算法设计
  • 3.6 算法性能分析
  • 3.7 本章小结
  • 第4章 SVM的OpenCL实现
  • 4.1 开发环境搭建
  • 4.2 Kernel设计
  • 4.3 数据预处理
  • 4.4 设备初始化
  • 4.5 程序初始化和缓存
  • 4.6 内存分配
  • 4.7 命令列队优化
  • 4.8 运行参数选择
  • 4.9 循环展开
  • 4.10 本章小结
  • 第5章 实验结果分析
  • 5.1 程序运行环境建立
  • 5.2 实验数据预处理
  • 5.3 运行时间测量
  • 5.4 基于GPU的并行支持向量机仿真
  • 5.5 本章小结
  • 结论
  • 致谢
  • 参考文献
  • 攻读硕士学位期间发表的论文
  • 相关论文文献

    标签:;  ;  

    基于GPU的并行支持向量机的设计与实现
    下载Doc文档

    猜你喜欢