面向稀疏数据的GPU程序优化技术研究

来源 :吉林大学 | 被引量 : 0次 | 上传用户:zhouyiai1015
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着信息技术的不断发展,计算机需要处理的数据量和任务量日益增多,为了提高计算机程序的运行速度,越来越多的公司、科研机构开始通过结合中央处理器(CPU)和图形处理器(GPU)的技术设计高性能的并行应用程序。近年来,GPU已经广泛部署在数据中心、高性能计算中心等大型计算集群中,许多智能手机、自动驾驶汽车、智能摄像头等嵌入式设备也集成了GPU。NVIDIA、AMD等GPU厂商提供了CUDA、OpenCL等GPU编程平台和语言,让用户能够更加方便地编写GPU并行程序。但由于GPU与CPU的体系结构存在较大差异,编写高性能的GPU程序往往需要一定的经验和优化技巧,这使得普通用户编写的程序往往还有较大的优化空间。为了充分利用深度学习、数据挖掘等场景中常见的数据稀疏性,本文对面向稀疏数据的GPU程序优化技术进行了深入的研究。本文首先提出了一种面向稀疏数据的GPU程序优化思路,主要包含立即数替换和稀疏常量优化两种策略,通过对基于源代码、目标代码进行程序优化的过程进行分析,阐述了基于目标代码的程序优化方法的优势。为了在目标代码层次进行稀疏数据的替换,设计了一种基于模板的立即数替换方法,通过在源代码中设置模板数据的方式实现稀疏目标代码的生成。利用稀疏常量优化的思想,分别设计了基于PTX的稀疏目标代码优化方法和基于cubin的稀疏目标代码优化方法。为了充分发挥两种稀疏目标代码优化方法的优势,本文构建了GPU程序优化的性能模型,对优化方法的开销和收益进行分析,进而指导GPU程序优化的过程。本文提出了一种基于图模型的GPU程序形式化描述方法,将GPU程序用嵌套的有向无环图(DAG)来表示,进而对GPU程序中存在的动态优化机会进行分析,并设计了相应的算法对GPU程序每个部分的可隐藏优化时间进行计算。在以上工作的基础上,本文提出了一套面向稀疏数据的程序优化框架,该框架将GPU程序转化为程序执行图,使用基于PTX目标代码的程序优化方法对程序进行静态优化,使用基于cubin目标代码的程序优化方法对程序进行动态优化,使用性能模型指导框架选择合适的优化策略。在实验部分,本文以经典的Le Net-5网络结构为例,对深度学习场景中存在的稀疏数据优化机会进行了分析,构建了LeNet-5网络训练过程和预测过程对应的程序执行图,并阐述了如何在深度学习场景中应用优化框架对其训练和预测过程进行优化。为了验证程序优化方法的性能,本文从主流的LeNet、Alex CIFAR-10和ResNet等网络结构中选取了典型的卷积操作分别对基于PTX目标代码的程序优化方法和基于cubin目标代码的程序优化方法的优化性能进行了测试。实验结果表明:使用本文设计的GPU程序优化框架进行优化的卷积操作在动态优化场景下的性能最高可达业内公认的高性能库cuDNN中卷积操作的1.6倍,静态优化场景下的性能最高可达cuDNN中的卷积操作的6.9倍,优化的卷积操作与稀疏矩阵高性能计算库cuSparse相比有着10~70倍的性能优势。本文的程序优化框架有着显著的性能优化效果且具有通用性,能够广泛应用在数据稀疏的场景中。
其他文献
波分复用光网络由于采用固定不变的波长通道间隔、信号速率、调制格式等,导致其网络资源利用率较低,难以满足用户对网络资源效率的要求。为了适应用户对不同粒度的带宽需求,
深空通信,指地球上的通信实体与处于深空的飞行器之间的通信[1]。为了实现地球和宇宙行星之间数据的可靠传输,需要研究和开发通用的数据交换网络架构。延迟/中断可容忍网络(D
由于无线传感器网络具有普及性、易用性、价格低廉等特征,如今在许多工业和科研中得到越来越多的应用。目前国内主要通过自动气象站来监测各种气象要素,但是由于其建设成本昂
高分辨率卫星信息产品科教服务平台简称高分科教服务平台是“高分辨率对地观测重大专项的子课题”之一,其目标是面向科研单位、高校遥感应用研究和行业应用研究。该平台具有
图是一种表达能力很强的数据结构,它可以表示现实世界中对象和对象之间的关系,如城市与城市间的道路连接、人之间的血缘关系。许多问题都可以用图表示再通过图算法解决。图和
随着科学研究和商业应用的发展,人工智能技术已在医疗、交通、安防、互联网金融等诸多领域得到广泛应用。生物特征识别作为人工智能技术中的重要分支受到国内外科研组织和学
随着集成电路技术和计算机技术的迅速发展,嵌入式系统性能提升的同时也使功耗问题成为制约系统设计和开发的重要因素。传统上处理器被认为是嵌入式系统中最耗能的部件,目前相
随着我国汽车工业快速发展,大中型客货车数量迅猛增加,机动车安全技术检验在保障车辆安全运行、预防和减少道路交通事故、保证人民生命财产安全发挥了重要作用[1]。其中道路
随着互联网行业的飞速发展,信息的产生和传播达到空前的速度,数据量呈爆炸式增长。互联网中充斥着大量的文本、音频、视频等各类数据,文本信息无疑是其中体量最大的数据资源,
网络虚拟化被认为是最可能有效解决网络僵化问题的技术方案之一。网络僵化指的是,传统的网络体系结构受制于固有的基于TCP/IP模式的数据传输方式,将无法始终满足日益增长的、