哨兵:用于深度学习的异构主存储系统上的运行时数据管理
摘要:软件管理的异构内存(HM)提供了一种增加内存容量和成本效益的有希望的解决方案。然而,为了释放异构内存的性能潜力,我们面临着数据管理的问题。对于一个具有多个执行阶段的应用程序,每个阶段可能具有不同的工作集,我们必须在异构内存的存储组件之间移动数据以优化性能。深度神经网络(DNN)作为数据中心上常见的工作负载,对HM上的数据管理提出了很大的挑战。这种工作负载通常采用任务数据流执行模型,并且以大量的小数据对象和精细粒度的操作(任务)为特点。这种执行模型给内存分析和高效数据迁移带来了挑战。 我们提出了Sentinel,一个运行时系统,它自动优化HM上的数据迁移(即数据管理),以实现与容量更小的快速内存系统上相似的性能。为了实现这一目标,Sentinel利用深度学习领域的知识,采用定制化的数据管理方法。Sentinel利用工作负载的可重复性来打破分析精度和开销之间的困境;通过控制内存分配,它使数据对象(而不是页面)的分析和数据迁移成为可能。这种方法弥合了操作系统和应用程序之间的语义差距。通过将数据对象与DNN拓扑相关联,Sentinel避免了不必要的数据移动并主动触发数据移动。在DNN模型的峰值内存消耗的20%作为快速内存大小的情况下,Sentinel在常见的DNN模型上实现了与仅使用快速内存系统相同或可比较的性能(最多8%的性能差异);Sentinel还始终优于最先进的解决方案18%。
作者:Jie Ren, Jiaolin Luo, Kai Wu, Minjia Zhang and Dong Li
论文ID:1909.05182
分类:Performance
分类简称:cs.PF
提交时间:2019-09-12