一种基于GPU访存特性的异构多核架构缓存管理方法技术

技术编号:14239445 阅读:65 留言:0更新日期:2016-12-21 14:56
本发明专利技术公开一种基于GPU访存特性的异构多核架构缓存管理方法,首先进行消息的区分,对来自CPU和GPU核心L1 Cache的不同消息进行不同的处理;如果GPU L1 Cache请求的数据块在L2 Cache中,直接读取该数据块返回给GPU L1 Cache;如果请求的数据块不在L2 Cache中,但L2 Cache中有空闲,则从MEMORY中读取数据写入到L2 Cache中,并将数据返回给GPU L1 Cache;如果请求的数据块不在L2 Cache中,且L2 Cache中没有空闲,则直接发送请求消息给MEMORY,从MEMORY中读取消息,返回给GPU L1 Cache,并将该数据写入相应L1 Cache。本发明专利技术的方法减少了GPU应用程序所需数据在L2 Cache中的替换,将多余的空间留给CPU程序使用,提升了CPU应用程序的性能,从而提升异构多核系统的整体性能。

A heterogeneous multi-core architecture cache management method based on GPU access characteristics

The invention discloses a GPU memory characteristics of heterogeneous multi-core architecture cache management method based on the first distinguish messages, different treatment to different messages from the CPU and GPU core L1 Cache GPU L1 Cache; if the requested data blocks in the L2 Cache, directly read the data block is returned GPU L1 Cache to; if the requested data blocks in L2 Cache, but L2 Cache idle, read the data into L2 Cache from MEMORY, and returns the data to the GPU L1 Cache; if the requested data blocks in L2 Cache and. L2 Cache not idle, directly sends a request message to the MEMORY, reads the message from the MEMORY, returned to the GPU L1 Cache, and writes the data corresponding to L1 Cache. The method of the invention reduces the required for the GPU application in L2 data replacement in Cache, the extra space for the CPU program, to enhance the performance of CPU applications, so as to enhance the overall performance of heterogeneous multi-core system.

【技术实现步骤摘要】

本专利技术属于计算机体系缓存系统结构领域,尤其涉及一种基于GPU访存特性的异构多核架构缓存管理方法
技术介绍
多核处理器在一个芯片上拥有多个功能相同的处理器核心,其主要通过主频和每时钟周期所执行的指令数来提高性能,并且多核处理器能很好的平衡功耗与性能的关系。但是,提升处理器的性能仅仅通过增加同种内核的方法存在一定的局限性,在系统达到极限值之后,处理器性能的提高就无法再随着内核数量的增加来实现了,这遵循著名的Amdahl定律。研究人员开始研究能替换同构CPU芯片的异构CPU芯片。异构多核处理器(HMP-Heterogeneous Multi-core Processor)将具有不同计算能力的处理器融合到一起,被广泛应用于航空航天、工业控制、仪器仪表等行业,以满足系统性能需求,降低功耗和成本。HMP由于集成了不同特点和性能的处理器核,可将不同类型的计算任务分配到不同类型的处理器核上并行处理,比如,快速复杂的核可以执行串行代码部分,而较简单的核则能并行处理数字,从而为不同需求的应用提供更加灵活、高效的处理机制,满足多种应用环境对系统实时性、功耗、可靠性和成本的要求,成为当今研究的热点。事实也证明在浮点运算、并行计算等方面,GPU可以提供数十倍乃至于上百倍于CPU的性能。异构多核处理器上CPU和GPU的集成,对共享片上资源提出新的挑战。最后一级共享Cache(The shared last-level Cache,简称共享LLC)是影响性能的最重要的共享资源。随着处理器和存储器之间速度差距的不断扩大,最后一级高速缓存对处理器访存性能的影响也将逐渐增大,最后一级高速缓存的重要性日益凸显。对最后一级高速缓存进行有效管理,提高最后一级高速缓存利用率对于优化计算机系统的整体性能具有重要的意义。GPU的核心数量非常多,这和CPU有本质的区别,一般GPU都内置了数百个内核,甚至上千个,GPU的工作原理就是并行计算,在并行处理特定数据的时候,GPU比CPU高效非常多。当前的缓存管理策略下,当CPU应用程序和GPU应用程序共同执行时,会争夺共享LLC,导致CPU应用程序对于共享LLC的访问会明显降低,对于很多CPU应用程序而言,减少了对共享LLC的访问会明显降低系统性能。而GPU应用程序有足够的线程级并行(TLP),可以在一定程度上容忍增加的内存访问延迟,因而对其性能影响不是很大。因此,在异构多核系统中,共享LLC的管理对于系统性能和功耗的影响至关重要。此时,一个合理高效的缓存管理策略对于提升处理器性能和降低功耗十分必要。
技术实现思路
本专利技术要解决的技术问题是,提供一种基于GPU访存特性的异构多核架构缓存管理方法,综合分析CPU应用程序和GPU应用程序的特征,考虑到在LLC的访问上,GPU应用程序占据了大量LLC空间,所以,通过限制GPU应用程序对LLC的访问,转而访问内存,来实现CPU和GPU应用程序对共享缓存访问的分离,缓解CPU应用程序和GPU应用程序对共享缓存的争夺,从整体上提升系统性能。为达到上述目的,本专利技术采用以下技术方案。一种基于GPU访存特性的异构多核架构缓存管理方法,异构多核架构由若干个CPU和GPU内核组成,所述CPU和GPU拥有各自的L1 Cache,共同访问L2 Cache,L1 Cache由L1 Cache Controller来控制,L2 Cache由L2 Cache Controller来控制,该方法包括如下步骤:步骤1、区分GPU核心和CPU核心的L1 Cache Controller;步骤2、跟踪消息传递过程,在每个消息上添加标志位来标记该消息的来源;步骤3、在L2 Cache Controller上进行消息类型判断,对来自CPU和GPU的L1 Cache请求做不同处理;步骤4、在Directory Controller中判断,如果是该消息请求者,类型为L1 Cache,则触发事件执行,赋其消息请求者为L1 Cache,读取内存数据;步骤5、在Directory Controller的内存消息响应队列中判断,如果消息原始请求者类型为L1 Cache,则触发相应事件,将该数据发送给L1 Cache Controller;步骤6、在L1 Cache Controller中接收到Directory Controller发回的数据时,将该数据块写入L1 Cache,并将数据发送给需要该数据的GPU核心;步骤7、当L1 Cache Controller进行替换或写回时,如果该数据块在L2 Cache中,直接替换,并进行数据状态及shares的改变,但如果不在L2 Cache中时,则将其发送给Directory Controller,进行数据替换及相应操作。作为优选,步骤S3包括以下步骤:步骤3.1、在L2 Cache的请求缓冲队列L1RequestToL2Cache中,识别不同消息,判断该消息标记位,如果是来自于GPU核心的L1 Cache Controller,首先判断L2中是否包含所请求的数据块,如果包含,直接根据消息类型执行相应的动作,将所需要的数据发送给请求者;步骤3.2、如果L2 Cache Controller中不包含该请求所需要的数据块,且L2 Cache中仍然有空间来存放数据,则触发响应事件去取得该数据存入L2Cache中,之后将该数据发送给L1请求者;步骤3.3、如果L2 Cache Controller中不包含该请求者所需要的数据,且没有多余空间来存放数据,则直接发送请求给MEMORY,请求获得相应的数据,消息传递过程中,将请求者赋值为原始消息请求者。与现有技术相比,本专利技术具有以下优点:分析CPU应用程序和GPU应用程序的特点,考虑到GPU应用程序有足够的线程级并行(TLP),可以在一定程度上容忍增加的内存访问延迟。所以,为限制GPU应用程序对LLC的访问,可通过减少GPU应用程序在LLC中的数据替换,而从MEMORY中直接读取数据来实现CPU和GPU应用程序对缓存访问的分离,缓解CPU应用程序和GPU应用程序对共享缓存的争夺。通过本方法可在CPU应用程序和GPU应用程序共同执行情况下,提高CPU应用程序对LLC的使用率,达到提高异构多核系统整体性能的目的。附图说明为使本专利技术的目的,方案更加通俗易懂,下面将结合附图对本专利技术进一步说明。图1为异构多核处理器系统的结构图,该异构多核处理器由2个CPU核心和4个GPU核心组成,每个核心都有自己的私有Cache。这些核心共享LLC和DRAM(MEMORY),并通过片上互连网络模块进行通信;图2为SLICC运行机制图;图3为GPU访存过程流程图。具体实施方式为使本专利技术的目的,技术方案和优点更加清楚明白,下文中将结合附图对本专利技术的实施例进行详细说明。本专利技术提供一种基于GPU访存特性的异构多核架构缓存管理方法,异构多核架构由若干个CPU和GPU内核组成,每个核心都有自己的私有Cache。这些核心共享LLC和DRAM(MEMORY),并通过片上互连网络模块进行通信。本专利技术依赖MESI_Two_Level缓存一致性协议,该协议中CPU和GPU拥有各自的L1 Cache,共同访问L2 Cache,如图1所示。本专利技术方法首先进行消息的区分,对本文档来自技高网
...
一种基于GPU访存特性的异构多核架构缓存管理方法

【技术保护点】
一种基于GPU访存特性的异构多核架构缓存管理方法,其特征在于,异构多核架构由若干个CPU和GPU内核组成,所述CPU和GPU拥有各自的L1 Cache,共同访问L2 Cache,L1 Cache由L1 Cache Controller来控制,L2 Cache由L2 Cache Controller来控制,该方法包括如下步骤:步骤1、区分GPU核心和CPU核心的L1 Cache Controller;步骤2、跟踪消息传递过程,在每个消息上添加标志位来标记该消息的来源;步骤3、在L2 Cache Controller上进行消息类型判断,对来自CPU和GPU的L1Cache请求做不同处理;步骤4、在Directory Controller中判断,如果是该消息请求者,类型为L1 Cache,则触发事件执行,赋其消息请求者为L1 Cache,读取内存数据;步骤5、在Directory Controller的内存消息响应队列中判断,如果消息原始请求者类型为L1 Cache,则触发相应事件,将该数据发送给L1 Cache Controller;步骤6、在L1 Cache Controller中接收到Directory Controller发回的数据时,将该数据块写入L1Cache,并将数据发送给需要该数据的GPU核心;步骤7、当L1 Cache Controller进行替换或写回时,如果该数据块在L2 Cache中,直接替换,并进行数据状态及shares的改变,但如果不在L2 Cache中时,则将其发送给Directory Controller,进行数据替换及相应操作。...

【技术特征摘要】
1.一种基于GPU访存特性的异构多核架构缓存管理方法,其特征在于,异构多核架构由若干个CPU和GPU内核组成,所述CPU和GPU拥有各自的L1 Cache,共同访问L2 Cache,L1 Cache由L1 Cache Controller来控制,L2 Cache由L2 Cache Controller来控制,该方法包括如下步骤:步骤1、区分GPU核心和CPU核心的L1 Cache Controller;步骤2、跟踪消息传递过程,在每个消息上添加标志位来标记该消息的来源;步骤3、在L2 Cache Controller上进行消息类型判断,对来自CPU和GPU的L1Cache请求做不同处理;步骤4、在Directory Controller中判断,如果是该消息请求者,类型为L1 Cache,则触发事件执行,赋其消息请求者为L1 Cache,读取内存数据;步骤5、在Directory Controller的内存消息响应队列中判断,如果消息原始请求者类型为L1 Cache,则触发相应事件,将该数据发送给L1 Cache Controller;步骤6、在L1 Cache Controller中接收到Directory Controller发回的数据时,将该数据块写入L1Cache,并...

【专利技术属性】
技术研发人员:方娟郝晓婷范清文刘士建
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京;11

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

1