Modern analytics and recommendation systems are increasingly based on graph data that capture the relations between entities being analyzed. Practical graphs come in huge sizes, offer massive parallelism, and are stored in sparse-matrix formats such as CSR. To exploit the massive parallelism, developers are increasingly interested in using GPUs for graph traversal. However, due to their sizes, graphs often do not fit into the GPU memory. Prior works have either used input data pre-processing/partitioning or UVM to migrate chunks of data from the host memory to the GPU memory. However, the large, multi-dimensional, and sparse nature of graph data presents a major challenge to these schemes and results in significant amplification of data movement and reduced effective data throughput. In this work, we propose EMOGI, an alternative approach to traverse graphs that do not fit in GPU memory using direct cacheline-sized access to data stored in host memory. This paper addresses the open question of whether a sufficiently large number of overlapping cacheline-sized accesses can be sustained to 1) tolerate the long latency to host memory, 2) fully utilize the available bandwidth, and 3) achieve favorable execution performance. We analyze the data access patterns of several graph traversal applications in GPU over PCIe using an FPGA to understand the cause of poor external bandwidth utilization. By carefully coalescing and aligning external memory requests, we show that we can minimize the number of PCIe transactions and nearly fully utilize the PCIe bandwidth even with direct cache-line accesses to the host memory. EMOGI achieves 2.92$\times$ speedup on average compared to the optimized UVM implementations in various graph traversal applications. We also show that EMOGI scales better than a UVM-based solution when the system uses higher bandwidth interconnects such as PCIe 4.0.
翻译:现代分析和建议系统越来越多地以图表数据为基础,这些数据可以捕捉被分析的实体之间的关系。实用图表的大小巨大,提供巨大的平行,并存储在CSR等稀薄的矩阵格式中。为了利用大规模平行主义,开发者越来越有兴趣使用GPU进行图形穿行。然而,由于其大小,图表往往不适应GPU内存。先前的工程要么使用输入数据预处理/分割或UVM,将大量数据从主机直径内存流流到 GPU记忆中。然而,大量、多维和稀少的图形数据对这些方案提出了重大挑战,并导致数据大幅放大数据移动和减少有效的数据通过量。在这项工作中,我们提议EMOGIG是使用不适宜于GPU内存的轨图的替代方法,使用直接缓存的缓存线访问量,甚至使用大量重叠的缓存线访问,可以持续到以下的公开问题:2.CLIIO内存数据流流到主机内存的长线内存数据流流流,几乎使用GMO内存数据的运行方式。