基于GPU的大规模程序静态分析并行化方法研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:xi00xi
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
静态分析是指在不运行代码的情况下进行的程序分析,其被广泛应用于编译优化、缺陷检测等软件工程任务。近年来,该方向的不少研究工作致力于如何从程序代码中获取足够的信息,充分地表达其语法、语义模型,以精确预测其行为。然而,随着通用组件的广泛复用、软件应用范围的持续扩张等,现代软件系统的规模和复杂性不断增长,要对大规模复杂软件系统进行高精度的静态分析,因其极大数据量的计算,特别是在资源受限的条件下,效率和可扩展性成为受持续关注的难点和热点。而图形处理器(GPU)作为具有并行计算能力的常见设备,被广泛应用于大数据分析、图像处理等计算密集的领域,且已有尝试利用GPU加速静态分析的相关工作,但仅针对特定的分析。本文针对大规模高精度静态分析的低效率和低可扩展性问题,研究在单机环境下基于GPU和核外计算实现静态分析并行化方法。本文的主要工作如下:1.针对低效率问题,提出了基于GPU加速的静态分析并行化方法。其定义了一种适合于GPU独特的执行模式和内存模型的数据结构——可变宽的位向量VWBitVector来刻画程序图,并设计了相应的高度并行化的图操作,将静态分析问题转化为图可达性问题,实现高精度静态分析算法的并行化。2.针对低可扩展性问题,提出了基于硬盘的分区化核外计算优化方法。其设计了一种基于预估计算量的分区调度策略,根据可用显存将程序图划分为若干个分区,在静态分析的过程中按需将分区在硬盘和GPU上进行调度,以在提高算法的可扩展性的同时尽量降低数据传输的开销。3.基于上述算法,实现了一个基于GPU和硬盘的静态分析工具GpuSpa,并选取了 5个大型开源软件系统作为分析对象和2个相关的静态分析工具作为比较对象,进行了性能评估实验,实验结果表明GpuSpa具有较好的效率和可扩展性。
其他文献
近年来,开源软件包管理成为软件产品重用的一种普遍的方式,尤其是在Linux发行版操作系统领域。其中,软件升级问题是软件包管理工具必须要解决的关键挑战之一。软件升级问题旨
玻璃生产属于高能耗产业,其中玻璃熔窑作为生产环节的核心热工设备,其能源消耗量是巨大的。若窑炉因发生异常造成玻璃制品合格率下降,将会导致能源直接损失。本文的研究对象
未来网络的物理层将提供具有多种载波间隔、载波数配置的调制波形,允许不同业务采用不同波形完成非正交接入。一种可行的解决方案是将系统带宽划分为若干服务子带,每个服务子
2019年5月24日,由中国人民银行出资100亿元人民币设立的存款保险基金管理有限责任公司成立,标志着我国正式建立了独立的存款保险基金管理机构。我国自存款保险制度建立以来,
近年来,泰国汉语学习者“低龄化”趋势日渐明显,儿童学习者所占比重不断增加。为契合泰国“在玩中学”的教育理念,我们将多元智能理论与汉语综合课相结合,在充分发挥学生各项
现代工业的不断发展对控制系统建模、性能标准等提出了更高的要求。非线性/随机系统因其在工业过程中的重要应用,成为了控制理论界的研究热点。另一方面,有限时间控制也是控
太赫兹光谱是太赫兹应用中极为重要的部分,被广泛应用于爆炸物检测、物质成分识别、医学诊断以及产品质量控制等众多领域。研究太赫兹光谱仪的体积小型化、测量快速精准对于
随着移动互联网的发展,人们与互联网的关系变的更加的密切了。越来越多的人开始抛弃原始获取消息的渠道,这给广告的发展提供了新的挑战和机遇。广告顾名思义即广而告之,以报
脑机接口是在人脑与计算机或其它设备之间建立的直接交流和控制通道,通过这种通道,人就可以直接通过意识来表达想法或操纵设备,而不需要语言或动作。脑机接口系统可以扩展正
细粒度图像识别是计算机视觉领域一项极具挑战性的研究课题。受益于近些年深度卷积神经网络的发展,细粒度图像识别也获得了极大的突破。目前,基于深度卷积神经网络与双线性汇