arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2202.05549cs.DC
收藏

Lightning:将GPU编程模型扩展到单个GPU之外

Lightning: Scaling the GPU Programming Model Beyond a Single GPU

Stijn Heldens, Pieter Hijma, Ben van Werkhoven, Jason Maassen, Rob. V. van Nieuwpoort

摘要:

GPU编程模型主要针对运行一个GPU的应用程序的开发。然而,这将GPU代码的可扩展性限制在单个GPU在计算能力和内存容量方面的能力。为了进一步扩展GPU应用程序,通常需要大量的工程工作:工作和数据必须手动分配到多个GPU上,可能在多个节点上,数据必须手动从GPU内存溢出到更高级别的内存。我们介绍Lightning:一个遵循常见GPU编程范式的框架,但可以轻松扩展到大型问题。Lightning支持GPU内核的多GPU执行,甚至跨多个节点,并将数据无缝溢出到更高级别的内存(主内存和磁盘)。现有的CUDA内核可以很容易地适应Lightning,这些内核上的数据访问注释允许Lightning推断其数据需求和后续内核启动之间的依赖关系。Lightning在GPU之间有效地分配工作/数据,并通过重叠调度,数据移动和内核执行来最大限度地提高效率。我们介绍了Lightning的设计和实现,以及在多达32个GPU上进行8个基准测试和1个实际应用的实验结果。评估显示了出色的性能和可扩展性,例如使用Lighting的CPU加速57.2倍,16个GPU,4个节点和80 GB的数据,远远超过一个GPU的内存容量。

英文摘要:

The GPU programming model is primarily aimed at the development of applications that run one GPU. However, this limits the scalability of GPU code to the capabilities of a single GPU in terms of compute power and memory capacity. To scale GPU applications further, a great engineering effort is typically required: work and data must be divided over multiple GPUs by hand, possibly in multiple nodes, and data must be manually spilled from GPU memory to higher-level memories. We present Lightning: a framework that follows the common GPU programming paradigm but enables scaling to large problems with ease. Lightning supports multi-GPU execution of GPU kernels, even across multiple nodes, and seamlessly spills data to higher-level memories (main memory and disk). Existing CUDA kernels can easily be adapted for use in Lightning, with data access annotations on these kernels allowing Lightning to infer their data requirements and the dependencies between subsequent kernel launches. Lightning efficiently distributes the work/data across GPUs and maximizes efficiency by overlapping scheduling, data movement, and kernel execution when possible. We present the design and implementation of Lightning, as well as experimental results on up to 32 GPUs for eight benchmarks and one real-world application. Evaluation shows excellent performance and scalability, such as a speedup of 57.2x over the CPU using Lighting with 16 GPUs over 4 nodes and 80 GB of data, far beyond the memory capacity of one GPU.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑