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

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:ntsx888
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
BLAS(Basic Linear Algebra Subprograms)定义了一组基本的矩阵和向量的操作,包括各种矩阵乘法和矩阵向量乘法,在许多领域有广泛的应用。现在的GPU已经发展为一种多核,多线程,具有杰出的计算能力和很高的存储器带宽,可编程的处理器。GPU可以用来加速许多具有数据并行特征的应用。本文在BLAS通用版本基础上,分析GPU体系结构特点和BLAS函数特征,使用CUDA在GPU上高效实现BLAS库的一些核心操作。本文首先介绍了BLAS函数标准,重点介绍了BLAS库中应用最多的是BLAS2和BLAS3提供的函数,特别是BLAS2中的GEMV和BLAS3中的General Martrix Multiply(GEMM),即通用矩阵相乘。介绍了GPU体系结构特点以及CUDA,包括CUDA的体系结构和常用的优化方法。然后,使用CUDA在GPU上设计和实现了三级BLAS库的核心函数GEMM(通用矩阵相乘)。在实现通用矩阵相乘时,需要考虑两种情况:一种是数据已经拷贝到GPU的显存中的情况。在Geforce GTX 260上,在数据已经拷贝到显存的前提下,算法峰值是65GFLOPS。而GTX 260的双精度峰值是67.068GFLOPS,因此双精度的实现效率达到了97%。另一种是数据没有拷贝到显存中的情况。在大规模矩阵乘法的计算中,数据不能够一次全部的拷贝到显存中。通过数据调度,本文的算法拷贝数据的时间不超过总时间的10%。最后,使用CUDA在GPU上设计和实现了二级BLAS库的核心函数GEMV,即矩阵向量相乘。并且对转置和非转置的双精度版本进行了测试,实验结果表明,本节实现的转置形式在大规模输入的情况下比CUBLAS的实现要快上50%,而非转置形式的性能跟CUBLAS相当。本文中使用的方法对GPU上的高性能BLAS实现有重要的参考意义。
其他文献
异构无线网络融合是新一代无线通信发展的必然趋势,IEEE、3GPP等标准化组织分别制定了无线融合组网安全体系模型,并针对不同的网络融合场景,设计了相应的安全接入机制。由于多个
如何快速又准确地抽取术语是自然语言处理中一项重要课题。面向学术论文领域的术语抽取研究能够有效地推动科学的发展与成果的推广。学术论文中,术语在不同的位置,如标题、关
合成孔径雷达(SAR)是一种机载和航天遥感系统,用于对地形上的远处目标进行成像,可在全天候条件下操作并生成极高分辨率的图像。SAR图像利用更长波长的信号来为工作于电磁(EM)
企业的飞速发展对数据传输系统提出了多方交互传输、传输量大、实时性及安全性要求高等新的需求。消息中间件在中间件中占有重要的地位,它为分布式网络计算环境中的应用提供
随着数字信号处理技术和嵌入式技术的快速发展,嵌入式DSP系统在应用领域越来越广泛。与此同时,嵌入式DSP系统也越来越复杂,开发周期和开发成本占据的比重越来越大。传统DSP软件
在云计算和大数据的时代大潮中,分布式块存储系统以它特有的优势而变得愈发重要。负载均衡是分布式块存储系统的重要特性,也是当前分布式块存储研究的热点之一。以现有的负载
当前的视频监控系统,结构复杂,成本高昂,且非常不灵活,本文结合市场上流行的ARM9嵌入式芯片为主控处理器来构建网络视频监控系统,可以在结构实现上大大简化。视频监控系统的
随着主动服务技术的不断深入研究,各项主动服务的关键性技术已经得到研究者们的实现以及优化,如构件注册检索、程序挖掘、多智能代理、构件组装发布等。然而,如何架构一个主
本文主要基于虚拟现实技术来构建虚拟场景并使其得到优化,首先介绍了虚拟场景的概念和关键技术,针对国内外的研究现状和进展,在结合OpenGL技术介绍,共同讨论并研究了虚拟场景
随着社会城市化的发展,数字城市对城市发展的促进作用也越来越明显,而三维建模是数字城市系统的基础。大规模城市建模往往需要投入大量的人力、物力和财力。高效率、大批量、