Skip to Main Content
CUDA performs general purpose parallel computing using GPGPU, which has been applied to various computing fields. However, the multi-address-space architecture in CUDA makes memory management complicated. NVIDIA introduced UVA, Unified Virtual Addressing, into CUDA Toolkit 4.0 to address this issue. However, UVA has platform limitations and even performance loss under certain circumstances. We propose EMA, Encapsulated Multiple Addressing, which encapsulates data residing in multiple address spaces into a single data object. Combined with data manipulating encapsulation, EMA also turns multi-address-space architecture into single-address-space architecture. Compared with UVA, EMA has no platform limitations and the experimental results show that EMA avoids the potential performance loss with negligible overhead.