众核处理器及其加速集群的程序设计方法研究

来源 :北京大学 | 被引量 : 0次 | 上传用户:bbbeatrice
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
当前支持GPU和GPU集群的编程技术十分落后和低层,程序员广泛使用的并行编程模型MPI、Pthread和CUDA等,被认为是并行编程中的汇编语言。在当前的技术条件下,无论进行单机GPU程序设计还是GPU集群程序设计,都要求程序员对于硬件的体系结构具有非常清晰的了解,熟悉存储结构中不同的存储部件并控制其间的数据传输,控制不同层次异构计算单元之间的流转。  当前GPU和GPU异构集群程序设计方法存在的最大问题是:缺乏有效的软件工具和编程接口,帮助程序员简化程序设计。本文介绍了Parray编程接口:该编程接口使用数组类型对数据的物理存储和逻辑结构进行分离:提供统一的方式表示各种进程(线程)的创建以及它们之间的控制流转。  基于MPI+Pthread+CUDA的程序设计技术,本文介绍了对单GPU矩阵乘法、单GPU批量1维FFT和GPU集群FFT算法的优化实现。这些代码取得了良好的性能,同时也暴露出已有程序设计方法存在的问题:GPU代码只能工作于数组的特定数据排列方式、对多维数组维度操作缺乏程序语言层面的支持。使用Parray书写的单GPU矩阵乘法和GPU集群FFT代码不再存在上述问题。  论文的主要贡献体现在如下几个方面:  第一,以维度嵌套和命名的方式表示多维数组的维度处理和转置。数据可以被按照某一维度分布到不同处理器上。不论是单一处理器节点上的数据维度划分,或是节点间带有通信的复杂的数据传输和转置,均可以维度方式统一进行表示。  第二,提出一种GPU上优化的矩阵乘法算法,并使用Parray实现。使用Parray书写的代码针对数据的逻辑结构进行直接编程,同一代码可工作于不同的物理存储结构。  第三,提出一种使用GPU加速的集群FFT算法。该算法使用Parray实现,多维数据的转置和处理代码书写简洁而易于维护。该算法是目前第2快的集群FFT代码,并在天河1A上应用于湍流模拟。这是目前进行过的最大数据规模的湍流模拟。
其他文献
近年来,三维模拟技术已广泛应用于各个领域。本文主要研究基于场景的仿真应用。如场景的漫游,基于三维环境的工程仿真,自然现象的模拟,社会活动的模拟,灾害的仿真模拟(如水灾、火
近年来,随着计算机网络和信息技术的快速发展,网络安全也越来越成为人们关注的焦点。每年木马的数量都在迅速的增加,在各类非法程序中占据着最大的比重,而由木马程序所造成的
随着语义技术的兴起,目前的互联网上产生了越来越多的语义数据。这些语义数据蕴含了大量的不同领域的知识,在互联网范围内相互关联,形成了一个规模巨大的人类知识库。在特定领域
动态随机访问存储器(DRAM,Dynamic Random Access Memory)由于其较高的存储密度,较快的访问速度,成熟的制造工艺,作为主存储器(又称内存)被广泛地应用到计算系统的存储层次(Memory
重新网格化方法是将非规则结构的三角网格表示为规则结构的网格数据,这种方法既有利于网格数据的压缩,又可降低几何数据采样的非一致性.几何图像是一类规格化的重新网格化方
近年来,在线社会网络迅速发展,成为大量用户沟通交流和分孚信息的重要平台,引起国内外研究者的关注。最初的研究集中在朋友关系,但是朋友关系难以体现信任或者亲密程度。为了
基础线性代数库(BLAS)是一组线性代数核心子程序的集合,主要包括向量与矩阵的基本运算,被广泛应用于科学工程计算领域。在高性能计算领域中被广泛采用的LINPACK性能测试程序中
形式文法是分析知识文档结构并从中抽取知识重要手段,然而,人工总结自然语言处理所需的文法是十分困难的。人们容易想到的方法是从语料中学习文法,但是面向自然语言的文法学
随着软件技术的演进和信息社会的发展,人们对软件需求呈现出多样化、易变性以及综合化的发展趋势。特别是在包含大量异构数据的智能交通信息系统中,包括较多的独立功能模块,
随着物联网相关技术的不断进步,物联网已广泛应用于各个领域,推动社会生产方式、生活方式、人与物的关系发生重大变革。在目前的物联网环境下,数以亿计的传感器设备在工作着,无时