gpu计算在泛函回归模型中的应用
目录
摘 要 I
ABSTRACT II
第1章 绪论 1
1.1 GPU并行计算技术 1
1.1.1 GPU体系结构 1
1.1.2 GPU执行模式 2
1.1.3 GPU内存模式 2
1.2 函数型回归模型概述 3
1.2.1 函数型数据 3
1.2.2 泛函分析的目的 5
1.3 CUDA概述 5
1.3.1 CUDA架构 5
1.3.2 CUDA的应用 5
第2章 泛函回归模型 7
2.1引言 7
2.2 R语言简介 7
2.3 模型的构建 8
2.4 模型分析的结果 10
2.5 主成分分析 19
2.6 总结 20
第3章 算法实现 22
3.1 算法中的数据结构 22
3.2 文件的录入 22
3.3 主要函数的实现 24
3.4 存在的问题与改进方案 26
第4章 性能比较与心得体会 27
参考文献 29
致谢 31
附录:英文参考文献与中文翻译 32
第1章 绪论
1.1
*景先生毕设|www.jxszl.com +Q: ^351916072*
GPU并行计算技术
GPU(Graphics Processing Unit)并行计算利用图形处理器配合CPU(Central Processing Unit)进行加速的一种运算技术。由于CPU核数较少,处理大量并行运算时效率会大幅下降。而Kepler架构的Tesla K80 GPU具有4992个核,480 GB/s存储器带宽,峰值单精度浮点性能达到8.74 Tflops,对于处理并行运算数据具有很大的优势,但是GPU不适合串行运算与分支控制。采用异构系统使单个计算单元进行串行运算,协调其他单元进行大规模并行运算,从而达到高性能运算的目的。CPU与GPU组成的异构系统中,CPU负责串行部分,协调GPU完成多线程并行运算,工作模式如图1.1所示:
图1.1 CPU与GPU异构工作模式
1.1.1 GPU体系结构
以NVIDIA GPU为例,在核心微架构经历了G80时代、GT200时代、Fermi时代、Kepler时代后,今年GTX980的发布标志着Maxwell时代的到来。其GM204包含内置52亿个晶体管,16个SMM(Streaming Multiprocessors Memory)(1个SMM相当于4个SMX(Nextgeneration Streaming Multiprocessors)),16个几何单元、128个纹理单元、64个光栅单元,显存位宽256bit,每个控制逻辑单元内置32个CUDA核心,总共2048个CUDA核心。
1.1.2 GPU执行模式
目前的图形处理单元(GPU)架构平衡了可编程和动态控制的高效率单指令多数据(SIMD)的执行。GPU组中的多个逻辑线程一起(当前的设计有32或64个线程)[1,2],在SIMD硬件上执行。虽然SIMD执行时,每个逻辑线程可以遵循一个独立的控制流,即单指令多线程执行的风格。当控制流程使得线程在同一组内产生分歧,需要采取不同的控制流路径,硬件则负责维护执行的正确性。目前通过重新汇聚上游栈以解决部分连载的执行。堆栈机制划分线程组为子组共享使用相同的控制流程。单个子组在一个时间执行,而其中遵循不同的流程的线程的执行会被屏蔽[3,4]。尽管这种机制是有效的,高效的,因为其序列不同子组的执行使并行不能达到最大化,某些情况下会降低的性能。为保证分支运行的独立性,硬件需提供两种机制。第一种机制是从潜在的多种控制路径中找出有效的且是执行当前SIMD指令得到单路径。目前GPU使用的这种技术是基于堆栈的重汇聚的。第二种机制是在激活的路径上且共享同一个程序计数器(PC)的线程可以执行并提交结果。为每一个要执行的SIMD指令关联一个有效的掩码即可实现。执行中的SIMD指令中的线程如果没有在激活的路径上,会标记相应掩码且不提交结果[5,6]。掩码可以通过比较每个线程的显示PC与激活的路径上的PC动态计算得出,也可以存储于控制路径的信息中。
1.1.3 GPU内存模式
在设备上执行的线程只能访问设备的DRAM和片上存储器,可访问的内存空间如图1.2:可读写每块共享内存,可读写每线程寄存器,只读每网格常量内存,可可读写每网格全局内存,读写每线程本地内存,只读每网格纹理内存。全局变量、常量和纹理内存空间可以通过宿主读或写,并可被相同应用程序的内核持续访问。全局、常量和纹理内存空间对不同的内存使用方式进行了优化。
图1.2 内存空间模型
1.2 函数型回归模型概述
在生物工程,系统工程和气象学等应用领域,函数型数据分析FDA(Functional data analysis)都受到了诸多关注。函数型数据分析的基本思路是将离散数据表示成平滑的函数,根据收集的函数数据绘制图像。
1.2.1 函数型数据
图1.3展示了10个在伯克利长大的女孩的身高变化,共有31组测量数据。年龄并非等距排列,在孩子一岁的时候有4次测量,2到8岁每年1次测量,之后每半年一次。即使记录仅涉及离散值,但其反映的关于高度的平滑变化是可以被评估的。这些数据组成了10个身高的观测函数Height(t),而很难在这种图形中找到特征值。图1.4中,青春期时身高迅猛的增长表现为一种强正加速脉冲,随后又是急剧的负增长。事实上,导数图形体现的特征更有趣,它将观测值体现为函数数据而不是离散的向量[7]。
图1.3 十个在伯克利的女孩18年的身高变化
图1.4 身高增长的导数函数
1.2.2 泛函分析的目的
泛函分析的目的基本上与统计学的其他分支相同,即以有利于进一步分析的方式呈现数据,强调数据中的各种特性,研究数据中重要的模式的来源与变异,通过输入独立的多种信息由因变量和结果解释变量的变化,对于特定类型的变化比较两组或多组数据,其中两组数据可以包含不同组的相同功能或相同组的不同功能。
原文链接:http://www.jxszl.com/dzxx/dzkxyjs/48143.html