CPU GPU cache异同总结

本文探讨了GPU缓存抖动的原因及其对性能的影响,并介绍了CPU中用于缓解抖动的技术,如Cache bypassing和Thread throttling。针对GPU特有的挑战,文章详细阐述了GPU缓存管理策略,包括Cache-conscious Wavefront Scheduling,旨在通过减少内战竞争和提高命中率来优化GPU性能。

1. GPU cache 由于GPU 大规模多线程的特性,导致局部性很差。


2. GPU cache同样有抖动出现,这些thrashing是由于warp之间竞争引起的,当一些warp被调度到同一个SIMT核时,就造成了thrashing的出现。由于应用的工作集通常比cache大小大很多,一些高级的替换策略也没办法解决GPU的这个问题。


3. GPU同时有成百上千线程执行,每个线程分到的cache资源更少,CPU cache line生命周期更段,很多cache line在重用之前就被替换。


CPU中解决抖动的方法

1. Cache bypassing[1]:防止cache line被过早的evict出去,选择性地让某些内存请求绕过cache,从而为其他请求省下了cache空间,从而达到减少竞争。但是这个方法用到GPU上时,由于会有很多的cache miss发生【包括由于bypass的内存请求造成的】会导致MSHR或者片上网络堵塞,因此而限制内存提升。

【idea:stacking + bypass】 

2. Thread throttling: 首先将应用解构为计算任务和内存任务的组合。为了防止内存请求互相干预,限制并行执行的内存任务数[3]。

GPU中解决抖动的方法

1. Cache-Conscious Wavefront Scheduling利用thread/warp throttling来减少inter-warp竞争,并且提高GPU中的L1 cache命中率。提出两种机制,一种static wavefront limiting (SWL)在每个warp调度器使用静态确定的最多活动warp数目【maximum active warps (MAW)】。另一种利用运行时信息确定MAW数目。然而这种warp throttling的方法损失了大规模多线程能够隐藏延迟的优势,造成片上网络以及DRAM带宽利用率低下,限制了提升性能的空间。






[1] MICRO-12-Improving cache management policies using dynamic reuse distances

[2] PACT-14-MRPB: Memory request prioritization for massively parallel processors

[3] MICRO-10-Memory Latency Reduction via Thread Throttling



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值