一种异构计算系统技术方案

技术编号:13876858 阅读:48 留言:0更新日期:2016-10-22 13:23
本发明专利技术公开了一种异构计算系统,其包括多层存储空间复杂结构体,其存储器结构包括六种存储器:全局存储器、寄存器、本地存储器、共享存储器、常量存储器、纹理存储器,其中前三者支持读/写操作,而后两者只具备读操作;这些存储器的结构各异、运算速度不同、大小及存储规模不一样。本发明专利技术相较于现有技术提高了CPU+GPU异构计算方法的效率。

【技术实现步骤摘要】

本专利技术涉及计算机计算领域,具体涉及一种异构计算系统
技术介绍
异构计算(Heterogeneous computing)主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。常见的计算单元类别包括CPU、GPU等协处理器、DSP、ASIC、FPGA等。异构计算近年来得到更多关注,主要是因为通过提升CPU时钟频率和内核数量而提高计算能力的传统方式遇到了散热和能耗瓶颈。而与此同时,GPU等专用计算单元虽然工作频率较低,具有更多的内核数和并行计算能力,总体性能-芯片面积比和性能-功耗比都很高,却远远没有得到充分利用。广义上,不同计算平台的各个层次上都存在异构现象,除硬件层的指令集、互联方式、内存层次之外,软件层中应用二进制接口、API、语言特性底层实现等的不同,对于上层应用和服务而言,都是异构的。从实现的角度来说,异构计算就是制定出一系列的软件与硬件的标准,让不同类型的计算设备能够共享计算的过程和结果。同时不断优化和加速计算的过程,使其具备更高的计算效能。近年来,基于CPU+GPU的混合异构计算系统开始逐渐成为国内外高性能计算领域的热点研究方向。在实际应用中,许多基于CPU+GPU的混合异构计算机系统表现出了良好的性能。但是在显卡进行计算的同时,处理器处于闲置状态。由此处理器厂商也想参与到计算中来,他们希望CPU和GPU能够协同运算,完成那些对计算量有着苛刻要求的应用。同时也希望将计算机的处理能力再推上一个新的高峰。
技术实现思路
本专利技术为解决上述问题,提供了一种异构计算系统,其包括多层存储空间复杂结构体,其存储器结构包括六种存储器:全局存储器、寄存器、本地存储器、共享存储器、常量存储器、纹理存储器,其中前三者支持读/写操作,而后两者只具备读操作;这些存储器的结构各异、运算速度不同、大小及存储规模不一样,其中共享存储器、寄存器以其独特的结构组成方式在这些存储器中在数据流访问操作速度方面是相对较快的;对于每个并行的运算线程来说,寄存器、局部存储器都是私有的,也就是说每个线程单独存在使用各自的寄存器及局部寄存器;其中作为GPU上的高速缓存区,寄存器能够在极低延迟的情况下别每个线程的ALU所读取;数量客观的寄存器文件构成了寄存器的基础单元,并且被分配给每个正在执行的并行线程,因此,在并行执行的过程中每个线程所拥有的寄存器大小及其有限,在编程过程中应尽量为每个线程分配足够且较少的的私有变量;局部存储器是寄存器在线程执行过程中的补充,当寄存器使用过多,或者并行使用到结构体、数组这样的大数据变量,局部寄存器就充当暂时的收容所,为这些私有数据分配必要的存储空间;与寄存器类似,共享存储器同样也是GPU上的高速存储器,存在于共享存储器的数据是被同一个线程块(Block)中的所有线程共享的,分配这样一种存储器的目的在于减小线程块内各个线程的 通信延迟;因为共享寄存器的存在,其在保存共用计数器或者线程块内的公共结果时,省去大量时间进行线程间通行,所以相应的速率会提升很多;对于全局存储器,GPU、CPU可以直接访问操作其中的全局数据,也就是说执行并行运算的任意一个线程、串行运算的部分都可以读写当中的任意区域的数据,但访问操作过程有很高的延迟;同样位于显存的常数存储器拥有缓存加速,且为只读存储器;GPU分配给常数存储器的空间只有64K,可用于存储并行运算执行过程中需要多次读取的只读变量;纹理存储器的纹理内存存在缓存从而减少了对内存的请求并提供更高的带宽。本专利技术相较于现有技术提高了CPU+GPU异构计算方法的效率。附图说明图1为CUDA存储模型示意图;图2为纹理内存与线程的映射关系图。具体实施方式下文将详细参考附图描述本专利技术的优选实施例,借此对本专利技术如何应用技术手段来解决技术问题,并达到技术效果的实现过程能充分理解并据以实施。为了全面理解本专利技术,在以下详细描述中提到了诸多细节,但本领域技术人员应该理解,本专利技术可以无需这些具体细节而实现。GPU与CPU的最大不同点在于硬件结构自身,而硬件结构不同是由于晶体管用途分布造成的,GPU比CPU在数据计算能力和存储器带框上有相对大的优势,在能耗和价格上付出的代价也相对较小,从而在异构操作协同处理运算上占领并行运算的一席之地。GPU作为图形渲染的主要硬件,因图像渲染运算的高度并行性,它可以采用添加ALU和Control Cache(存储器控制单元)的方式提高运算能力和存储器带宽。CPU的制造厂家是把更多的晶体管用于复杂的控制单元以及缓冲区,而GPU的晶体管作为ALU的居多,从何提高GPU的总体执行单元效率。CUDA架构下的GPU是一种多层存储空间复杂结构体,这是GPU自身的发展历史和GPU原本的设计理念决定的。如图1所示,该图表明了CUDA的存储器结构包括六种存储器:全局存储器(Global Memory)、寄存器(Registers)、本地存储器(Local Memory)、共享存储器(Shared Memory)、常量存储器(Constant Memory)、纹理存储器(Texture Memory),其中前三者支持读/写操作,而后两者只具备读操作。这些存储器在性能上存在较大差别,它们的结构各异、运算速度不同、大小及存储规模不一样,也决定了CUDA在并行运算过程中存在相同并行运算过程有不同的运算加速收益。共享存储器、寄存器以其独特的结构组成方式在这些存储器中在数据流访问操作速度方面是相对较快的。对于每个并行的运算线程来说,寄存器、局部存储器都是私有的,也就是说每个线程单独存在使用各自的寄存器及局部寄存器。之中,作为GPU上的高速缓存区,寄存器能够在极低延迟的情况下别每个线程的ALU所读取。数量客观的寄存器文件(Register File)构成了寄存器的基础单元,并且被分配给每个正在执行的并行线程,因此,在并行执行的过程中每个线程所拥有的寄存器大小及其有限,在编程过程中 应尽量为每个线程分配足够且较少的的私有变量。局部存储器是寄存器在线程执行过程中的补充,当寄存器使用过多,或者并行使用到结构体、数组这样的大数据变量,局部寄存器就充当暂时的收容所,为这些私有数据分配必要的存储空间,其区别就在于,分配到局部存储器的数据是存在于显卡显存中,而不是像寄存器在边上或者缓冲区中,所以局部存储器对数据的访问操作会比寄存器慢很多。与寄存器类似,共享存储器同样也是GPU上的高速存储器,但如同名字一样,存在于共享存储器的数据是被同一个线程块(Block)中的所有线程共享的。分配这样一种存储器的目的在于解决线程块内各个线程的通信问题,这个也是CUDA的创新之处,以往的GPU并行运算技术在执行过程中线程之间的通行总是难以解决,各个线程之间的通行过程总是会存在很长的延迟,而CUDA因为共享寄存器的存在,其在保存共用计数器或者线程块内的公共结果时,省去大量时间进行线程间通行,所以相应的速率会提升很多。占有显存很大一块的全局存储器,GPU、CPU可以直接访问操作其中的全局数据,也就是说执行并行运算的任意一个线程、串行运算的部分都可以读写当中的任意区域的数据,但访问操作过程有很高的延迟。全局存储器带宽很高,在遵守访问要求前提下,避免分区冲突,如此高的带宽才能被充分的利用好。同样位于显存的常数存储器本文档来自技高网...

【技术保护点】
一种异构计算系统,其包括多层存储空间复杂结构体,其存储器结构包括六种存储器:全局存储器、寄存器、本地存储器、共享存储器、常量存储器、纹理存储器,其中前三者支持读/写操作,而后两者只具备读操作;这些存储器的结构各异、运算速度不同、大小及存储规模不一样,其中共享存储器、寄存器以其独特的结构组成方式在这些存储器中在数据流访问操作速度方面是相对较快的;对于每个并行的运算线程来说,寄存器、局部存储器都是私有的,也就是说每个线程单独存在使用各自的寄存器及局部寄存器;其中作为GPU上的高速缓存区,寄存器能够在极低延迟的情况下别每个线程的ALU所读取;数量客观的寄存器文件构成了寄存器的基础单元,并且被分配给每个正在执行的并行线程,因此,在并行执行的过程中每个线程所拥有的寄存器大小及其有限,在编程过程中应尽量为每个线程分配足够且较少的的私有变量;局部存储器是寄存器在线程执行过程中的补充,当寄存器使用过多,或者并行使用到结构体、数组这样的大数据变量,局部寄存器就充当暂时的收容所,为这些私有数据分配必要的存储空间;与寄存器类似,共享存储器同样也是GPU上的高速存储器,存在于共享存储器的数据是被同一个线程块(Block)中的所有线程共享的,分配这样一种存储器的目的在于减小线程块内各个线程的通信延迟;因为共享寄存器的存在,其在保存共用计数器或者线程块内的公共结果时,省去大量时间进行线程间通行,所以相应的速率会提升很多;对于全局存储器,GPU、CPU可以直接访问操作其中的全局数据,也就是说执行并行运算的任意一个线程、串行运算的部分都可以读写当中的任意区域的数据,但访问操作过程有很高的延迟;同样位于显存的常数存储器拥有缓存加速,且为只读存储器;GPU分配给常数存储器的空间只有64K,可用于存储并行运算执行过程中需要多次读取的只读变量;纹理存储器的纹理内存存在缓存从而减少了对内存的请求并提供更高的带宽。...

【技术特征摘要】
1.一种异构计算系统,其包括多层存储空间复杂结构体,其存储器结构包括六种存储器:全局存储器、寄存器、本地存储器、共享存储器、常量存储器、纹理存储器,其中前三者支持读/写操作,而后两者只具备读操作;这些存储器的结构各异、运算速度不同、大小及存储规模不一样,其中共享存储器、寄存器以其独特的结构组成方式在这些存储器中在数据流访问操作速度方面是相对较快的;对于每个并行的运算线程来说,寄存器、局部存储器都是私有的,也就是说每个线程单独存在使用各自的寄存器及局部寄存器;其中作为GPU上的高速缓存区,寄存器能够在极低延迟的情况下别每个线程的ALU所读取;数量客观的寄存器文件构成了寄存器的基础单元,并且被分配给每个正在执行的并行线程,因此,在并行执行的过程中每个线程所拥有的寄存器大小及其有限,在编程过程中应尽量为每个线程分配足够且较少的的私有变量;局部存储器是寄存器在线程执行过程中的补充,当寄存器使用过多...

【专利技术属性】
技术研发人员:杨浩章玲玲肖勇才李轶鹏林楠
申请(专利权)人:国家电网公司国网江西省电力科学研究院
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1