GPU(图形处理单元)在现代计算系统中广泛部署,用于为各类通用应用程序提供高性能计算。随着GPU拥有越来越多的流式多处理器(Streaming Multiprocessors,SMs),以提供更高的计算能力,构建能够连接SMs和内存控制器的可扩展片上网络(Network-on-Chip,NoC)成为了挑战。现代GPU中引入了集群结构,将几个SMs分组以共享一个网络端口。然而,由于网络端口共享,集群式GPU面临严重的NoC拥塞问题,这成为了一个关键的性能瓶颈。 本文针对GPU中冗余网络流量的消除,以减轻GPU NoC的拥塞状况。我们观察到,在许多GPU计算应用中,集群内的不同SMs访问共享数据。向同一个内存位置发送冗余请求会浪费宝贵的NoC带宽——我们发现在平均情况下有19%(最高可达48%)的请求是冗余的。为去除冗余的NoC流量,我们提出了分布式块调度(Distributed-Block Scheduling)、集群内合并(Intra-Cluster Coalescing,ICC)和合并缓存(Coalesced Cache,CC)的概念,分别用于集群内和跨SMs的L1缓存未命中合并。我们的评估结果显示,分布式块调度、ICC和CC是互补的,并且能够同时改善性能和能效。我们报告了平均性能提升15%(最高可达67%),同时系统能效提高6%(最高可达19%),并且平均能效延迟积(Energy-Delay Product,EDP)提高了19%(最高可达53%),相比于当前先进的分布式CTA调度技术。 集群内合并(ICC)通过合并同一集群内部不同SMs产生的重复内存访问请求来减少NoC流量,优化了数据传输。ICC主要针对集群内部的数据访问进行优化。而分布式块调度则将计算任务(CTA)分割成更小的块,并且这些小块以特定的方式被分配到不同的SMs,旨在减少跨集群的内存访问冲突,并且提升内存访问的局部性。通过分布式块调度,可以进一步减少因为不合理的任务分配导致的NoC拥塞和通信开销。合并缓存(CC)是另一个为减轻NoC压力而设计的机制,主要针对缓存未命中的情况进行优化,通过合并集群内部或跨集群的L1缓存未命中请求,减少对后端存储的访问频率,进而降低NoC的压力。 研究表明,分布式块调度、ICC和CC这些技术相互补充,共同作用于GPU的计算和存储系统中,不仅减少了NoC中的冗余流量,还提高了整体的性能和能效。这些优化手段在降低系统能耗的同时,还提高了系统处理任务的效率和响应速度。文中提到的能效延迟积(EDP)是一个重要的性能指标,它考虑了性能和能效两个维度,反映了系统在执行任务时的综合表现。通过改善EDP,我们能够得到一个在性能和能源消耗之间取得更好平衡的系统。 在论文中提到的GPU计算应用通常由许多内核组成,这些内核进一步由成千上万的线程组织成协作线程数组(Cooperative Thread Arrays,CTAs),这些CTAs在SMs上被调度执行。为了持续提高GPU的原始计算能力,集群结构的引入将多个SMs组合在一起共享一个网络端口,这虽然降低了硬件设计的复杂度和成本,但也引入了NoC拥塞和通信开销增加的问题。针对这一挑战,研究者们通过以上提到的技术手段,有效缓解了集群式GPU的NoC拥塞问题,并且在保持高性能的同时,实现了能效的提升。这些技术成果对提升现有GPU架构性能、实现更高效能的计算平台具有重要的理论和实际意义。
- 粉丝: 3
- 资源: 907
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助