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

所需积分/C币:10 2013-06-08 14:18:14 2.9MB PDF

1.在综述了当前高性能计算领域热门技术的基础上,选择GPU作为并行支持向量 机的实现工具。在GPU编程方法方面,选择了OpenCL作为具体的代码实现技术,并搭 建了GPU计算的实验平台和基于VisualStudio2010的OpenCL的开发环境。 2.介绍了支持向量机理论的基本原理及其数学模型,引出了SMO训练算法并对其 进行了详细的说明。研究了LibSVM的使用方法,并在之前搭建的两个平台上做了实验 仿真,以用来作为参照基准。 3.根据SVM训练和预测算法中的并行点,提出了用于多类分类器的并行支持向量 机算法。通过分别对SVM训练算法、预测算法和涉及的矩阵运算分别采用并行运算, 提高了多核
西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向 国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权西 南交通大学可以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印 缩印或扫描等复印手段保存和汇编本学位论文 本学位论文属于 1.保密口,在年解密后适用本授权书 2.不保密囻,使用本授权书。 请在以上方框内打“v) 学位论文作者签名:率 指导老师签名 日期:}.5、2 日期:291.5 西南交通大学硕士学位论文主要工作(贡献)声明 本人在学位论文中所做的主要工作或贡献如下: 1.在综述了当前高性能计算领域热门技术的基础上,选择GPU作为并行支持向量 机的实现工具。在GPU编程方法方面,选择了 OpenCL作为具体的代码实现技术,并搭 建了GPU计算的实验平台和基于Ⅴ isual studio02010的 OpenCL的开发环境。 2.介绍了支持向量机理论的基本原理及其数学模型,引出了SMO训练算法并对其 进行了详细的说明。研究了 LibSVM的使用方法,并在之前搭建的两个平台上做了实验 仿真,以用来作为参照基准 3.根据SWM训练和预测算法中的并行点,提出了用于多类分类器的并行支持向量 机算法。通过分别对SwM训练算法、预测算法和涉及的矩阵运算分别采用并行运算, 提高了多核计算机的运算效率,加快了SM分类器的训练过程。对并行算法的性能进 行了详细分析。 4.利用 OpenCL编写了并行支持向量机程序,并对程序实现过程中的一些重要步 骤,如数据预处理、设备初始化、程序初始化和缓存、内存分配和命令列队优化等进行 了详细的介绍。对进一步提高GPU的效率进行了深入的探讨 5.利用 LibSVM处理训练样本,编写了基于 CPu Timer的时间测量工具,最后给 出了基于GPU的并行支持向量机的仿真实验结果,并与IibSⅥM的仿真数据进行了对 比,验证了并行算法的有效性。 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作所得的成果。 除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的 研究成果。对本文的研究做出贡献的个人和集体,均已在文中作了明确说明。本人完全 了解违反上述声明所引起的一切法律责任将由本人承担。 学位论文作者签名:是森 日期:加、5乃 西南交通大学硕士研究生学位论文 第I页 摘要 随着计算需求的扩大、数据库技术的成熟、信息技术与生物基因技术的发展,高性 能计算已经成为了最热门的研究领域之一。当前高性能计算的发展水平不仅是衡量一个 国家综合国力和国际竞争力的重要指标,也是世界各国竞相争夺的战略制高点。 从第一块GPU的出现到现在已经过去了十几个年头,在很长一段时间内GPU只能 被用于视频编解码、3D渲染等图像处理领域。随着GPU性能的不断提升、功能的不断 增强,它逐渐被应用到需要大量计算能力的科学计算领域。2001年已经开始有人利用 GPU来加速矩阵乘法运算,随后,基于GPU加速的应用出现了爆炸式的增长。科学界 对GPU的利用也促使GPU本身的架构发生巨大变化,为了适应科学计算的需求,GPU 渐渐向通用架构转变,它不仅能加速图形应用,还能加速科学计算应用,基于GPU的 高性能计算也逐渐成为研究的热点之一。 由于SVM在大规模数据应用中存在着训练速度缓慢,内存资源占用较多等缺陷, 通过设计合适的并行算法程序并利用GPU进行运算以提高SVM的实用性是非常有前景 的 本文首先介绍了并行计算的基本概念,引出了基于GPU的高性能计算方式。概括 CUDA架构的特点,总结了此架构的两大重点概念:线程模型和存储模型。然后介绍了 OpenCL编程模型、SVM以及SMO训练算法的相关知识,详细分析了SMO训练算法中 的并行点,并由此设计了并行算法。与传统的串行算法相比,本设计主要在三个方面做 了并行化处理:多分类器训练、大规模矩阵运算以及样本的寻找。实验分析结果表明, 并行算法基本满足了设计要求。此外,本文在深入了解基于GPU的并行程序设计基础 上,选用 OpenCL作为算法实现工具,基于Ⅴ isual studio02010完成了算法程序开发。文 中详细地介绍了算法设计以及关键程序设计,并在理论上对实验结果做出了预测。 最后,本文基于coei7980X+GTX470和Q9400 +Geforce310搭建了两个实验平台, 并在这两个平台上分别进行了算法仿真实验。通过对实验结果的分析表明,基于GPU 的并行支持向量机在训练和预测速度上有着很大的提升,具有一定的可行性和实用价值。 关键词:GPU; OpenCL;SⅥM;并行计算;异构计算; 西南交通大学硕士研究生学位论文 第Ⅱ页 abstract With the expansion of computing needs, and the development of information technology and bio-genetic technologies, high-performance computing has become one of the most popular field of study. The current level of development of high-perfomance computing is not only a key indicators of a countrys comprehensive national strength and international competitiveness, and also the strategic high ground that every country competes for a dozen of years have passed since the first emergence of GPU. In a very long time GPU can only be used for video encoding and decoding, 3D rendering and other image processing fields. With the continuous improvement of performance and enhancement of functionality, GPU has gradually been applied to scientific computing field which requires substantial computing power. People have started using GPU to accelerate the matrix multiplication since 2001, and from then on, an explosive growth occurred in the applications that use gPu as an accelerator. The use of GPu by scientific community has also changed the structure of it greatly, in order to meet the needs of scientific computing, the structure of GPU is gradually changed to better suit general purpose needs. It can not only speed up the graphics, but also accelerate scientific computing applications, high performance computing based on GPu has gradually become a research hot spots There are lots of defects in applications of svm with large-scale data, such as the slow training speed and the high memory resources consuming. It is very promising to design an appropriate algorithm and make use of GPU in order to improve the practicality of SVM This paper first analyzes the parallel points in support vector machine training and prediction algorithms, and designs a parallel algorithm. Then with the further insight of the programming based on GPU, choose OpenCL as an implementation tool, and complete the development of program under Visual Studio 2010 DE. Finally, simulations have been caried out on both Core i7 980X+GTX 470 platform and Q9400+ Geforce 310 platform. The design of software and experimental results are introduced in detail. Experimental results show that the time used in training and prediction of support vector machine reduces greatly when parallel algorithm based on GPu is adopted. It is feasible and has some practical values to some degree Key Words: GPU; Open CL; SVM; Parallel Computing: Heterogeneous Computing; 西南交通大学硕士研究生学位论文 第Ⅲ页 目录 第1章绪论 P·看鲁p非ppa自pD 1研究背景及意义… 12基于GPU的高性能计算的发展及研究现状… 暴章垂垂·●命由章动4 13支持向量机研究现状 鲁自自。语非p·,.春百4日击自是当血自自自日品备目自自自看·点看白山。非·.和.4·。自4 14本论文的主要研究内容… 4789 第2章基于GPU的并行计算原理 21并行计算基本概念 211Fym分类.. p4香。·命d垂春● 10 212数据并行与任务并行… 213常见的并行算法 22GPU简介… 23cUDA简介… 23cUDA线程模型… 232CUDA存储模型… 223 。看 24基于GPU的编程模型 5 2410enCL架构… .015 242 OpenCL编程模型…,, 16 第3章SM并行算法设计 ∴18 31sVM简介 非,品。命哥晋·哥垂。 32SMo训练算法简介… 90 33基于 LibSVM的SM仿真 34算法并行点分析 命···。4,自垂卡自自自日奋自自自自曲命自自品自自自曲血 341多分类器训练 24 342矩阵运算…. 26 343寻找样本 中非·音非·自学中物非即即非咖帮即曾曹·曾告鲁 27 3.5并行算法设计 28 351训练算法设计…..0....11128 352预测算法设计… 32 36算法性能分析 …33 第4章SVM的 OpenCL实现 35 41开发环境搭建.… 35 42 Kemel设计. 西南交通大学硕士研究生学位论文 第Ⅳ页 4.3数据预处理…...........39 44设备初始化 40 45程序初始化和缓存… .·s命·自辛命咖命命4·命 暴看要D中●申·····吾bqq中◆。单很看看垂 46内存分配 47命令列队优化 44 4.8运行参数选择 音。甲看香着看自·一 49循环展开 春非非·中看↓鲁自布·自自4西自非击卓d.·d● 第5章实验结果分析…… 5l程序运行环境建立 52实验数据预处理 ◆很 52运行时间测量… ··●暴非自串a命是44备菲命春命p中世:·看章.·音身中中中·章中··:;看号看●命自 49 53基于GPU的并行支持向量机仿真 甲甲旱 50 结论 54 致谢…16 参考文献 57 攻读硕士学位期间发表的论文 西南交通大学硕士研究生学位论文 第1页 第1章绪论 11研究背景及意义 自从计算机发明以来,其性能一直在成倍增长。但是在科学计算领域中,人们对 更加强劲的计算力的需求总是会高于当前技术水平所能给予的。于是在上世纪7年 代慢慢开始出现了超级计算的概念,但是超级计算机昂贵的价格和相对封闭的用户群 使其应用十分有限 随着超级计算需求的扩大、数据库技术的成熟、生物基因技术的发展,上世纪80 年代后期开始出现高性能计算的概念,把超级计算推向了各个领域,对超级计算追求 单一计算指标也转变成追求高性能的综合指标。 自上世纪90年代开始,随着机群结构的普及、64位计算、多核、效用计算、互联 网等技术的推动,以高性能计算为基础的计算科学得到了显著的发展。在许多工业领 域,如汽车、航空航天器的设计制造、石油勘探、地震资料处理及国防(核爆炸模拟)、 生命科学、材料设计、气象气候研究等领域,高性能计算已成为必备的研究方法和工 具之一。与此同时,在产业应用和企业发展的共同推动下,高性能计算机也不再是高 科技研究领域里的利器,当前高性能计算机已广泛应用于制药、交通、电信、银行、 证券、医疗、教育等各商业应用、科学计算及信息化服务领域,可以说,当前我们正 处在一个高性能计算机普及的时代。 当前高性能计算机的发展水平不仅是衡量一个国家综合国力和国际竞争力的重要 指标,也是世界各国竞相争夺的战略制高点。 广义上的高性能计算包括集群计算、网格计算、云计算以及异构计算等。由于这 些计算之间彼此之间并没有绝对的界限,所以从不同的角度上来说,高性能计算的分 类方法也各不相同。目前比较广泛地被接受的是Fymn的“指令流-数据流分类”,即 sIsD(单指令单数据流、SMD(单指令多数据流)、MSD(多指令单数据流)、MMD多 指令多数据流。 早期的高性能计算大部分以机器集群的形式出现,这些机器访问共享文件系统, 由一个存储区域网络( Storage Area Network,SAN进行管理,机器之间使用消息传递接 口 Message Passing Interface, MPI进行通讯。随着网络技术的飞速发展,人们开始逐 渐认识到利用网络资源共享这个优势能更好地解决大规模计算问题,但在互联网上的 这些资源通常是异构的,且处于动态变化的环境中,因此需要有专门的机制来完成资 源的分配和调度。于是在上世纪90年代中期,网格计算应运而生。其目的就是将分布 在不同地理位置的资源通过网络连接起来,完成原来由特定的高性能计算机才能完成 西南交通大学硕士研究生学位论文 第2页 的工作。它的出现解决了专用的高性能计算硬件资源成本较高,且不易得到的问题 在集群计算、网格计算这类粗粒度并行计算技术蓬勃发展的同时,在单台机器上 进行的细粒度的并行计算技术也开始慢慢萌芽。微处理器自从诞生以来一直以频率的 不断提升作为性能的主要增长点,从4004的07MHZ到奔腾4的38GHZ,处器在不 断刷新频率极限的同时也在面临着处理器执行效率低下,功耗暴增的问题。人们逐渐 意识到一味地提升频率并不是提升处理器性能的最佳手段,于是多核处理器开始登上 历史的舞台,硬件上的并行开始渐渐转变为处理器性能的主要增长点。 Intel于2005年 推出了第一款双核处理器 Pentium d820,其内部集成了23亿个晶体管,频率为 32GHZ,浮点运算能力为112 GFLOPS。而2010年推出的Cori7980X六核处理器, 其内部集成了17亿个晶体管,频率基本与 Pentium d820相同,为333GHZ,浮点运 算能力却达到了799 GFLOPS。 处理器的多核化对计算机程序设计产生了深刻的影响,为了适应这种改变,SGI 发起了并起草了 OpenMP规范,它是一种面向共享内存及分布式共享内存的多处理器 多线程并行编程语言。所有处理器都被连接到一个共享的内存单元上,处理器在访问 内存的时候使用的是相同的内存编址空间。由于内存是共享的,因此,某一处理器写 入内存的数据会立刻被其它处理器访问到 OpenMP具有良好的可移植性,支持 Fortran 和CC+编程语言,操作系统平台方面则支持UNX系统以及 Windows系统。 OpenMP 的重要性在于,它能够为编写多线程程序提供一种简单的办法,而无需程序员进行复 杂的线程创建、同步、负载平衡和销毁工作。但是 OpenMP不适用于集群系统。 由于cPU被设计为可以处理多种不同任务,因此在某些计算上的效率并不如专用 的加速芯片。所以近些年来,在科学计算领域出现了一种新型的异构计算模式,即利 用专用的加速芯片来与CPU亠起进行协同运算,这些芯片可以是DPS、GPU或者FPGA 等等。目前几乎所有电脑上至少都会拥有一个GPU( Graphic Processing Unit),这使GPU 成为目前最为广泛应用的加速芯片。一些研究者指出,在大部分算法上,GPU会带来 550倍的加速效果。由于CPU适用于大型运算,而GPU擅长于传统的串行计算。只 有两个配件相互配合,发挥自己的优势,才是最优化的平台。为了发挥更大性能,处 理器厂商们纷纷开始研究如何将CPU与GPU进行融合。2011年ntel推出的 Sandy Bridge处理器和AMD的 Bobcat处理器已经开始将GPU和CPU集成到一起。 云计算是2007年底由 Google提出来的一个新概念,在短短的几年间,它就成为 业界最热门的话题之一,甚至被视为下个十年中最具发展潜力的技术。对于云计算, 现在仍没有一个明确的定义方式,这可能是由于其涉及的面过于广泛,不同行业或者 不同背景的人会对其有不同的诠释。不过目前学术界普遍认同的对于云计算的概念描 述为:云计算是一种由大规模商业需求驱动的计算模式,它能够根据外部用户的需求, 从一个抽象的虚拟的可动态增长的资源池中动态地提供用户需求的计算能力、存储能

...展开详情
试读 69P 基于GPU的并行支持向量机的设计与实现

评论 下载该资源后可以进行评论 3

qwbug 还不错,基于GPU的并行计算
2014-12-04
回复
ctuwuzida 还不错,基于GPU的并行计算
2014-07-05
回复
WNNSTRONGEST 有用,谢谢上传者。
2013-06-29
回复
img
lewistrong

关注 私信 TA的资源

上传资源赚积分,得勋章
    最新推荐
    基于GPU的并行支持向量机的设计与实现 10积分/C币 立即下载
    1/69
    基于GPU的并行支持向量机的设计与实现第1页
    基于GPU的并行支持向量机的设计与实现第2页
    基于GPU的并行支持向量机的设计与实现第3页
    基于GPU的并行支持向量机的设计与实现第4页
    基于GPU的并行支持向量机的设计与实现第5页
    基于GPU的并行支持向量机的设计与实现第6页
    基于GPU的并行支持向量机的设计与实现第7页
    基于GPU的并行支持向量机的设计与实现第8页
    基于GPU的并行支持向量机的设计与实现第9页
    基于GPU的并行支持向量机的设计与实现第10页
    基于GPU的并行支持向量机的设计与实现第11页
    基于GPU的并行支持向量机的设计与实现第12页
    基于GPU的并行支持向量机的设计与实现第13页
    基于GPU的并行支持向量机的设计与实现第14页
    基于GPU的并行支持向量机的设计与实现第15页
    基于GPU的并行支持向量机的设计与实现第16页
    基于GPU的并行支持向量机的设计与实现第17页
    基于GPU的并行支持向量机的设计与实现第18页
    基于GPU的并行支持向量机的设计与实现第19页
    基于GPU的并行支持向量机的设计与实现第20页

    试读已结束,剩余49页未读...

    10积分/C币 立即下载 >