好久没有读论文了,周五听了匹斯堡大学的yang jun教授的一场talk,主要讲GPU内存管理的一篇paper(ASPLOS-19)《A Framework for Memory Oversubscription Management in Graphics Processing Units》,正好与一作Chen Li(国防科大phd->助理研究员)在阿里实习期间有过交流,便花了半天时间研读了一番。

不想按照论文的结构来翻译了,大概按照自己的印象来记录一下自己片面的理解吧。

要解决的问题

一篇文章,主要要讲清楚你要解决的问题,从题目来看,主要是为了解决GPU显存不足而引起Page Fault等问题,导致lantency增高的问题。

那么首先解释一下显存是什么,对比CPU内存而言,显存是GPU的存储,根据CUDA的编程的模式,需要将GPU用的Data拷贝到GPU的显存中去,然后才能够让GPU使用这些数据,我们可以知道,CPU的内存可以宽展到大几百的GB,而一块GPU卡也顶多只有16~32GB的显存空间,因此Chen Li等研究这发现这个显存的大小可能成为一个影响GPU算力的一个瓶颈。

解决问题的方法

Chen li等提出了一个名为ETC的framework,来做显存的管理,实际上更重要的一点在于他对与Application的分类更为重要。

  1. 他们通过实验分析,观察到当显存不足时,不同类型的Application有对显存不同的依赖程度,根据memory coalescing的模块,来对Regular和Inregular进行区分,而同一Application中不同kernel的data share特性也很重要,通过compile-time来进行甄别;他们将这一步自动化,进而针对不同的Application进行不同的处理。
  2. 所谓ETC,那么将每个字母所代表的技术也说一下。
    • Evict
    • 这个词翻译为剔除,实际上对于显存来说,他的meta data应该与CPU 主存的单位相同,都是以页(Page)为单位,当显存满了的时候,GPU需要的数据并不在显存中,便会产生Page Fault,我个人理解为与Cache Miss 相类似。那么显存就会DMA请求一下CPU主存的数据,将它Fetch过来,那么既然我的显存空间满了,我就需要先腾出点来,然后再把On demand的数据放进去吧,所以他们提出一种对显存数据提前剔除的一个策略Proactive Eviction;简称为E。
    • Throttling
    • 我暂时将它翻译为 限制 吧。怎么讲呢,产生page fault的原因就是说GPU Core算的太快,数据还没准备好呢,然后就去取数据,没取到的话,就出现错误了。那么怎么让减少page fault呢,我算的慢点行吗,GPU Core算的慢一些,这样是不是会好一些呢。权衡一下page fault牺牲的时间,和我将GPU Core放慢(关掉几个)算力是下降了一点,是不是总体的性能会好一些呢。因此,他们提出一种叫做Memory-aware Throttling的解决方法,具体算法就不细说了。
    • Compression
    • 压缩,这个方法呢,实际上是从CPU内存管理来的,我对CPU内存管理并不熟悉,他们借鉴了LCP (is a low-latency main memory compression framework that has been shown to effectively increase memory capacity in a CPU system.)这种压缩方式,发现对GPU的显存也很有效,然后就用上了。。
我的感受
  1. 这篇文章对我的感觉是什么样的呢,工作量很足,使用的方法呢不能说是令人惊艳,但是也是有理有据,令人信服的。
  2. 实际上显存不足的问题并非不重要,在实际工业届的话,想PCIE的带宽显得更为重要,而随之GPU等加速的算力越来越强,对CPU的挑战也很大。
  3. 对于科研本身,我似乎已经渐行渐远了,但是对于体系结构研究问题、解决问题的方法也有了一些更深的理解
    • 如何打满流水线?PingPong
    • 如何减少算力与访存之间的差距?怎么trade off?
      • 降低Cache Miss?
      • 降低Page Fault?
      • 降低算力,不要把PCIe搞的太狠?
  4. 当然好的合作者十分重要。
    • Onur Mutlu这位大神,体系结构名人堂人物。
    • jun yang 和 youtao zhang 两位教授(伉俪)
    • Rossbach这位还是操作系统领域的大神
  5. 良好而完备的工程实验环境。在做research的时候,搭实验环境往往十分耗费精力,像这种积累深厚的实验室,实现idea的速度也是极快的。
  6. 那么如何将体系结构中的方法论,应用到实际的工作中,还需仔细思考一下。

Reference

A Framework for Memory Oversubscription Management in Graphics Processing Units

https://dl.acm.org/citation.cfm?id=3304044