首页> 中国专利> MCM-GPU末级高速缓存管理方法及MCM-GPU

MCM-GPU末级高速缓存管理方法及MCM-GPU

摘要

本发明公开了一种MCM‑GPU末级高速缓存管理方法及MCM‑GPU,该方法包括:在GPU模块中选取部分LLC作为远端LLC,以缓存远端GPU模块的只读存储空间中存储的数据;响应于执行的程序,实时判断是否有流处理器发起访存请求;若有,则判断访存请求是否访问只读存储空间,若不是,则将访存请求发送至当前GPU模块中对应的LLC或对应的远端GPU模块中的LLC,若是,则判断访存请求是否访问本地存储空间;若是,则将访存请求发送至当前GPU模块中对应的LLC;若不是,则将访存请求发送至当前GPU模块中对应的远端LLC;判断是否命中,若否,则将访存请求发送至对应的远端GPU模块中的LLC。本发明能够降低本地访问远端存储空间的次数和开销,减少片上网络冲突,提高MCM‑GPU的性能。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-16

    实质审查的生效 IPC(主分类):G06F12/0897 专利申请号:2023100426959 申请日:20230128

    实质审查的生效

  • 2023-05-30

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及GPU技术领域,尤其涉及一种MCM-GPU末级高速缓存管理方法及MCM-GPU。

背景技术

随着GPU(Graphics Processing Unit,图形处理器)技术的不断发展,GPU的核数不断增多,计算能力不断增加,例如从Fermi到Volta架构,GPU中流处理器(StreamingMultiprocessor,SM)的数目从14增长到80。由于制造工艺和芯片尺寸的限制,在单一晶片上集成数量众多的SM变得日益困难,为了进一步提高GPU的性能,并避免芯片尺寸的约束,目前有研究提出了一种多芯片模块GPU(MCM-GPU),MCM-GPU通过采用多模块的封装模式,把几个GPU模块封装在一起形成一个新的芯片,根据封装技术的不同,多个GPU模块间通过多层互连基板走线、interposer层走线等技术进行通信,每个GPU模块连接有DRAM(DynamicRandom Access Memory,动态随机存取存储器),与GPU模块直接连接的DRAM为该GPU模块的本地存储空间,与其他GPU模块直接连接的DRAM为该GPU模块的远端存储空间。

参考图1,图1为示例给出的一种MCM-GPU的结构示意图,在MCM-GPU中,对于一个GPU模块,其末级高速缓存(Last-level cache,LLC)通常使用两种架构组织方式,包括私有末级高速缓存设计和共享末级高速缓存设计。其中,在私有末级高速缓存设计中,私有末级高速缓存将每个GPU模块上的LLC设置为该GPU模块的私有LLC,该GPU模块中的流处理器发出的访存请求首先访问该GPU模块的LLC,如果命中则返回数据,如果失效则去访问相应的存储空间。在共享末级高速缓存设计中,不同GPU模块的流处理器共享MCM-GPU中所有的末级高速缓存,同一个数据在末级高速缓存中只存在一份拷贝,能够极大提高末级高速缓存的命中率。具体地,当使用共享末级高速缓存设计时,若一个GPU模块中的流处理器发起访存请求,首先根据访存请求的地址,判断该请求对应的数据存储在哪一个GPU模块的存储空间,然后将该访存请求发送至相应GPU模块的LLC。通常,一个GPU模块中,一个存储控制器对应多个LLC,该访存请求根据所要访问的数据地址,哈希得到LLC id,根据LLC id选择相应的LLC进行访问,如果LLC命中,则返回数据给发起请求的流处理器;否则即LLC失效,则将访存请求发送至存储控制器,取回数据后存储至LLC中并返回给发起请求的流处理器。

然而,使用共享末级高速缓存虽然能够节约存储空间,但是如果某一个GPU模块的流处理器需要访问其它GPU模块的末级高速缓存中的数据,则这些请求都需要通过GPU模块间的互联网络到达相应GPU模块的末级高速缓存,此时大量并行的访存请求将会产生激烈的片上网络冲突,导致MCM-GPU性能下降。

发明内容

为解决上述现有技术中存在的部分或全部技术问题,本发明提供一种MCM-GPU末级高速缓存管理方法及MCM-GPU。

本发明的技术方案如下:

第一方面,提供了一种MCM-GPU末级高速缓存管理方法,所述方法用于MCM-GPU,所述MCM-GPU包括多个互联的GPU模块,所述方法包括:

在每个GPU模块中选取预设数量的末级高速缓存作为远端末级高速缓存,利用远端末级高速缓存缓存远端GPU模块的只读存储空间中存储的数据;

响应于执行的程序,实时判断是否有流处理器发起访存请求;

若某个GPU模块中的流处理器发起访存请求,则判断访存请求是否访问只读存储空间;

若不是访问只读存储空间,则根据访存地址将访存请求发送至当前GPU模块中对应的末级高速缓存或对应的远端GPU模块中的末级高速缓存,若访问只读存储空间,则判断访存请求是否访问本地存储空间;

若访问本地存储空间,则根据访存地址将访存请求发送至当前GPU模块中对应的末级高速缓存;

若不是访问本地存储空间,则根据访存地址将访存请求发送至当前GPU模块中对应的远端末级高速缓存;

判断远端末级高速缓存是否命中,若否,则根据访存地址将访存请求发送至对应的远端GPU模块中的末级高速缓存。

在一些可能的实现方式中,根据访存地址将访存请求发送至当前GPU模块中对应的末级高速缓存或对应的远端GPU模块中的末级高速缓存,包括:

确定访存地址所访问的存储空间,若是本地存储空间,则将访存请求发送至当前GPU模块中对应的末级高速缓存,若是远端存储空间,则将访存请求发送至对应的远端GPU模块中的末级高速缓存。

在一些可能的实现方式中,所述方法还包括:

在GPU模块中设置路由控制模块,用于判断访存请求是否访问只读存储空间、以及判断访存请求是否访问本地存储空间,并基于判断结果将访存请求发送至当前GPU模块的末级高速缓存、当前GPU模块的远端末级高速缓存、或远端GPU模块中的末级高速缓存。

在一些可能的实现方式中,所述方法还包括:

在编写GPU程序时,若分配的内存空间为只读存储空间,则在编译程序时在预设位置插入用于表示访存ld指令为访问只读存储空间的指令的预设关键字。

第二方面,还提供了一种MCM-GPU,所述MCM-GPU利用如上述的MCM-GPU末级高速缓存管理方法进行末级高速缓存管理。

本发明技术方案的主要优点如下:

本发明的MCM-GPU末级高速缓存管理方法及MCM-GPU通过在GPU模块中选取部分末级高速缓存作为远端末级高速缓存来缓存远端GPU模块的末级高速缓存中存储的数据,能够降低本地访问远端存储空间的次数和开销,减少片上网络冲突,提高MCM-GPU的性能;同时,仅在GPU模块的远端末级高速缓存中存储只读数据,能够减少维护数据一致性导致的开销。

附图说明

此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为示例给出的一种MCM-GPU的结构示意图;

图2为本发明一实施例的MCM-GPU末级高速缓存管理方法的流程图;

图3为本发明一实施例的一种MCM-GPU的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

以下结合附图,详细说明本发明实施例提供的技术方案。

参考图2,第一方面,本发明一实施例提供了一种MCM-GPU末级高速缓存管理方法,该方法用于MCM-GPU,MCM-GPU包括多个互联的GPU模块,该方法包括以下步骤:

在每个GPU模块中选取预设数量的末级高速缓存作为远端末级高速缓存,利用远端末级高速缓存缓存远端GPU模块的只读存储空间中存储的数据;

响应于执行的程序,实时判断是否有流处理器发起访存请求;

若某个GPU模块中的流处理器发起访存请求,则判断访存请求是否访问只读存储空间;

若不是访问只读存储空间,则根据访存地址将访存请求发送至当前GPU模块中对应的末级高速缓存或对应的远端GPU模块中的末级高速缓存,若访问只读存储空间,则判断访存请求是否访问本地存储空间;

若访问本地存储空间,则根据访存地址将访存请求发送至当前GPU模块中对应的末级高速缓存;

若不是访问本地存储空间,则根据访存地址将访存请求发送至当前GPU模块中对应的远端末级高速缓存;

判断远端末级高速缓存是否命中,若否,则根据访存地址将访存请求发送至对应的远端GPU模块中的末级高速缓存。

具体地,本发明一实施例中,响应于MCM-GPU中执行的程序,在程序的执行过程中实时判断是否有流处理器发起访存请求,若某个GPU模块中的流处理器发起访存请求,则判断访存请求是否访问只读存储空间;若不是访问只读存储空间,则根据访存地址将访存请求发送至当前GPU模块中对应的末级高速缓存或对应的远端GPU模块中的末级高速缓存,若末级高速缓存命中,则返回数据到发起访存请求的流处理器,若末级高速缓存失效,则发送访存请求到与相应的GPU模块相连的存储控制器,得到数据后返回给发起访存请求的流处理器;若访问只读存储空间,则进一步判断访存请求是否访问本地存储空间;若访问本地存储空间,则根据访存地址将访存请求发送至当前GPU模块中对应的末级高速缓存,若末级高速缓存命中,则返回数据到发起访存请求的流处理器,若末级高速缓存失效,则发送访存请求到与当前GPU模块相连的存储控制器,得到数据后返回给发起访存请求的流处理器;若不是访问本地存储空间,则根据访存地址将访存请求发送至当前GPU模块中对应的远端末级高速缓存;判断远端末级高速缓存是否命中,若是,则返回数据到发起访存请求的流处理器,若否,则根据访存地址将访存请求发送至对应的远端GPU模块中的末级高速缓存,若末级高速缓存命中,则返回数据到发起访存请求的流处理器,若末级高速缓存失效,则发送访存请求到与该远端GPU模块相连的存储控制器,得到数据后返回给发起访存请求的流处理器。

本发明一实施例提供的MCM-GPU末级高速缓存管理方法通过在GPU模块中选取部分末级高速缓存作为远端末级高速缓存来缓存远端GPU模块的末级高速缓存中存储的数据,能够降低本地访问远端存储空间的次数和开销,减少片上网络冲突,提高MCM-GPU的性能;同时,仅在GPU模块的远端末级高速缓存中存储只读数据,能够减少维护数据一致性导致的开销。

进一步地,本发明一实施例中,GPU模块中用于作为远端末级高速缓存的末级高速缓存的数量根据实际情况进行设置。通常,当远端末级高速缓存需要缓存的数据越多,则要求的远端末级高速缓存的存储容量越高,相应地,用于作为远端末级高速缓存的末级高速缓存的数量越多。

进一步地,本发明一实施例中,根据访存地址将访存请求发送至当前GPU模块中对应的末级高速缓存或对应的远端GPU模块中的末级高速缓存,具体包括:

确定访存地址所访问的存储空间,若是本地存储空间,则将访存请求发送至当前GPU模块中对应的末级高速缓存,若是远端存储空间,则将访存请求发送至对应的远端GPU模块中的末级高速缓存。

具体地,本发明一实施例中,当需要将访存请求发送至末级高级缓存时,根据访存请求的访存地址计算出所要访问的末级高速缓存id,根据末级高速缓存id将访存请求发送至相应的末级高速缓存。

进一步地,本发明一实施例中,该方法还包括:

在GPU模块中设置路由控制模块,用于判断访存请求是否访问只读存储空间、以及判断访存请求是否访问本地存储空间,并基于判断结果将访存请求发送至当前GPU模块的末级高速缓存、当前GPU模块的远端末级高速缓存、或远端GPU模块中的末级高速缓存。

通过设置路由控制模块能够方便进行访存请求的发送控制,提高末级高速缓存的管理效率。

其中,路由控制模块可以设置在片上互连网络NoC中。

由于将远端GPU中存储的数据缓存在本地GPU模块中的远端末级高速缓存会使得同一份数据可能出现多份拷贝,进而导致数据的一致性出现问题。本发明一实施例中,通过在远端末级高速缓存中仅缓存只读数据,能够有效地减少维护数据一致性导致的开销。同时,为了方便路由控制模块判断访存请求是否访问只读存储空间,提高管理效率,本发明一实施例中,该方法还包括:在编写GPU程序时,若分配的内存空间为只读存储空间,则在编译程序时在预设位置插入用于表示访存ld指令为访问只读存储空间的指令的预设关键字。

具体地,在编写GPU程序过程中,若分配的内存空间为只读存储空间,则GPU程序编译器在编译程序时插入ld.readonly关键字,ld.readonly关键字用于表示该访存ld指令为访问只读存储空间的指令。当访存请求为ld.readonly产生的访存请求,路由控制模块则判定其访问只读存储空间。

第二方面,本发明一实施例还提供了一种MCM-GPU,该MCM-GPU利用上述的MCM-GPU末级高速缓存管理方法进行末级高速缓存管理。

参考图3,本发明一实施例提供的MCM-GPU除了包括:GPU模块、SM、NoC、LLC和存储控制器外,还设置有路由控制模块和远端LLC,路由控制模块用于判断访存请求是否访问只读存储空间、以及判断访存请求是否访问本地存储空间,并基于判断结果将访存请求发送至当前GPU模块的LLC、当前GPU模块的远端LLC、或远端GPU模块中的LLC,远端LLC用于缓存远端GPU模块的只读存储空间中存储的数据。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,本文中“前”、“后”、“左”、“右”、“上”、“下”均以附图中表示的放置状态为参照。

最后应说明的是:以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号