Enabling Fast, Noncontiguous GPU Data Movement in Hybrid MPI+GPU Environments
Enabling Fast, Noncontiguous GPU Data Movement in Hybrid MPI+GPU Environments
复制标题
DOI:
10.1109/cluster.2012.72
复制
发表时间:
2012-09
期刊:
影响因子:
--
通讯作者:
John Jenkins;James Dinan;P. Balaji;N. Samatova;R. Thakur
中科院分区:
文献类型:
--
作者:
John Jenkins;James Dinan;P. Balaji;N. Samatova;R. Thakur
Lack of efficient and transparent interaction with GPU data in hybrid MPI+GPU environments challenges GPU acceleration of large-scale scientific computations. A particular challenge is the transfer of noncontiguous data to and from GPU memory. MPI implementations currently do not provide an efficient means of utilizing data types for noncontiguous communication of data in GPU memory. To address this gap, we present an MPI data type-processing system capable of efficiently processing arbitrary data types directly on the GPU. We present a means for converting conventional data type representations into a GPU-amenable format. Fine-grained, element-level parallelism is then utilized by a GPU kernel to perform in-device packing and unpacking of noncontiguous elements. We demonstrate a several-fold performance improvement for noncontiguous column vectors, 3D array slices, and 4D array sub volumes over CUDA-based alternatives. Compared with optimized, layout-specific implementations, our approach incurs low overhead, while enabling the packing of data types that do not have a direct CUDA equivalent. These improvements are demonstrated to translate to significant improvements in end-to-end, GPU-to-GPU communication time. In addition, we identify and evaluate communication patterns that may cause resource contention with packing operations, providing a baseline for adaptively selecting data-processing strategies.