title: An Investigation of Unified Memory Access Performance in CUDA.
abstract: Managing memory between the CPU and GPU is a major challenge in GPU computing. A programming model, Unified Memory Access (UMA), has been recently introduced by Nvidia to simplify the complexities of memory management while claiming good overall performance. In this paper, we investigate this programming model and evaluate its performance and programming model simplifications based on our experimental results. We find that beyond on-demand data transfers to the CPU, the GPU is also able to request subsets of data it requires on demand. This feature allows UMA to outperform full data transfer methods for certain parallel applications and small data sizes. We also find, however, that for the majority of applications and memory access patterns, the performance overheads associated with UMA are significant, while the simplifications to the programming model restrict flexibility for adding future optimizations.
authors.forename: Raphael
authors.initials: R
authors.lastname: Landaverde
authors.forename: Tiansheng
authors.initials: T
authors.lastname: Zhang
authors.forename: Ayse K
authors.initials: AK
authors.lastname: Coskun
authors.forename: Martin
authors.initials: M
authors.lastname: Herbordt