首页> 中文学位 >基于GPU的BLAS库的设计和实现
【6h】

基于GPU的BLAS库的设计和实现

代理获取

目录

文摘

英文文摘

论文说明:图表目录

声明

第1章 绪论

1.1 BLAS库

1.1.1 BLAS的构成

1.1.2 BLAS函数介绍

1.1.3 BLAS主要参数

1.1.4 BLAS优化现状

1.1.5 CUBLAS介绍

1.2 GPU的介绍

1.2.1 GPU发展简介

1.2.2 GPU与CPU的差异

1.2.3 GPU硬件实现

1.2.4 GPU的着色器模型

1.3本文的研究内容

1.4本文结构

第2章 CUDA介绍

2.1 CUDA编程模型

2.1.1 主机和设备

2.1.2 内核函数

2.1.3线程层次结构

2.2存储器层次结构

2.3 CUDA软件栈

2.4执行模型

2.5 CUDA程序

2.5.1 程序框架

2.5.2 CUDA C语言

2.5.3 nvcc编译器

2.5.4通信机制

2.6 小结

第3章 GPU上矩阵乘法的设计与实现

3.1 矩阵乘法回顾

3.2 BLAS库中的普通矩阵乘法

3.3 用CUDA在GPU上实现矩阵乘法的分析

3.3.1矩阵乘法分块分析

3.3.2 CUDA上的矩阵乘法分块分析

3.4 CUDA上矩阵乘法的设计与实现

3.4.1 普通实现

3.4.2 优化实现

3.4.3 实验结果

3.4.4 大规模矩阵乘法的算法设计

3.5 小结

第4章 矩阵向量乘法的设计与实现

4.1 矩阵向量乘法概述

4.2 矩阵向量乘法的分析和实现

4.2.1 非转置形式

4.2.2转置形式

4.3实验结果和分析

4.3.1 参数确定

4.3.2性能分析

4.3.3性能测试

4.4小结

第5章 总结和展望

5.1 本文总结

5.2存在问题和研究展望

参考文献

致谢

在读期间发表的学术论文与取得的研究成果

展开▼

摘要

BLAS(Basic Linear Algebra Subprograms)定义了一组基本的矩阵和向量的操作,包括各种矩阵乘法和矩阵向量乘法,在许多领域有广泛的应用。现在的GPU已经发展为一种多核,多线程,具有杰出的计算能力和很高的存储器带宽,可编程的处理器。GPU可以用来加速许多具有数据并行特征的应用。本文在BLAS通用版本基础上,分析GPU体系结构特点和BLAS函数特征,使用CUDA在GPU上高效实现BLAS库的一些核心操作。
   本文首先介绍了BLAS函数标准,重点介绍了BLAS库中应用最多的是BLAS2和BLAS3提供的函数,特别是BLAS2中的GEMV和BLAS3中的GeneralMartrix Multiply(GEMM),即通用矩阵相乘。介绍了GPU体系结构特点以及CUDA,包括CUDA的体系结构和常用的优化方法。
   然后,使用CUDA在GPU上设计和实现了三级BLAS库的核心函数GEMM(通用矩阵相乘)。在实现通用矩阵相乘时,需要考虑两种情况:一种是数据已经拷贝到GPU的显存中的情况。在Geforce GTX260上,在数据已经拷贝到显存的前提下,算法峰值是65GFLOPS。而GTX260的双精度峰值是67.068GFLOPS,因此双精度的实现效率达到了97%。另一种是数据没有拷贝到显存中的情况。在大规模矩阵乘法的计算中,数据不能够一次全部的拷贝到显存中。通过数据调度,本文的算法拷贝数据的时间不超过总时间的10%。
   最后,使用CUDA在GPU上设计和实现了二级BLAS库的核心函数GEMV,即矩阵向量相乘。并且对转置和非转置的双精度版本进行了测试,实验结果表明,本文实现的转置形式在大规模输入的情况下比CUBLAS的实现要快上50%,而非转置形式的性能跟CUBLAS相当。
   本文中使用的方法对GPU上的高性能BLAS实现有重要的参考意义。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号