Sentinel: Efficient Tensor Migration and Allocation on Heterogeneous Memory Systems for Deep Learning
By Jie Ren, Jiaolin Luo, Kai Wu, Minjia Zhang, Hyeran Jeon. 2021
92 citations recorded by the source corpus.
Memory capacity is a major bottleneck for training deep neural networks (DNN). Heterogeneous memory (HM) combining fast and slow memories provides a promising direction to increase memory capacity. However, HM imposes challenges on tensor migration and allocation for high performance DNN training. Prior work heavily relies on DNN domain knowledge, unnecessarily causes tensor migration due to page-level false sharing, and wastes fast memory space. We present Sentinel, a software runtime system that automatically optimizes tensor management on HM. Sentinel uses dynamic profiling, and coordinates operating system (OS) and runtime-level profiling to bridge the semantic gap between OS and applications, which enables tensor-level profiling. This profiling enables co-allocating tensors with similar lifetime and memory access frequency into the same pages. Such fine-grained profiling and tensor collocation avoids unnecessary data movement, improves tensor movement efficiency, and enables larger batch training because of saving in fast memory space. Sentinel reduces fast memory consumption by 80% while retaining comparable performance to fast memory-only system; Sentinel consistently outperforms a state-of-the-art solution on CPU by 37% and two state-of-the-art solutions on GPU by 2x and 21% respectively in training throughput.
Subfields: ML Systems & Hardware
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
- Samyam Rajbhandari
- Reza Yazdani Aminabadi
- Olatunji Ruwase
- Minjia Zhang
- Yuxiong He
- Jie Ren
- Shuangyang Yang
- Vijay Anand Korthikanti
Citations in the corpus
- ZeRO-Offload: Democratizing Billion-Scale Model Training (2021, methodology): “The third approach uses an external memory such as the CPU memory as an extension of GPU memory to increase memory capacity during training [8, 9, 11, 17, 23, 24, 33].”