Enabling preemptive multiprogramming on GPUs

Enabling preemptive multiprogramming on GPUs
复制标题

DOI:
10.1145/2678373.2665702
复制
发表时间:
2014-10
期刊:
2014 ACM/IEEE 41st International Symposium on Computer Architecture (ISCA)
影响因子:
--
通讯作者:
Ivan Tanasić;Isaac Gelado;Javier Cabezas;Alex Ramírez;Nacho Navarro;M. Valero
Ivan Tanasić;Isaac Gelado;Javier Cabezas;Alex Ramírez;Nacho Navarro;M. Valero
中科院分区:
其他
文献类型:
--
作者:
Ivan Tanasić;Isaac Gelado;Javier Cabezas;Alex Ramírez;Nacho Navarro;M. Valero

文献摘要

被引文献

相似文献

GPU越来越多地用作许多域中的计算加速器,从移动系统到云计算的环境。这些系统通常从一个或几个用户运行多个应用程序。但是,GPU并不能为这些情况下传统上预期的资源共享提供支持。因此,此类系统无法提供关键的多编程工作负载要求,例如响应性,公平性或服务质量。在本文中,我们提出了一组硬件扩展名,使GPU可以有效地支持多编程的GPU工作负载。我们主张先发制人的多任务处理和设计两种可用于实施GPU调度策略的先发制度。我们扩展了体系结构,以允许从不同的用户流程中同时执行G​​PU内核,并根据其优先事项在同时运行内核之间动态分配GPU内核的调度策略。我们通过提案将NVIDIA GK110(Kepler)延长了GPU架构,并在一组最多八个并发过程的多编程工作负载上对其进行了评估。我们的建议将高优先级流程的执行时间提高了15.6倍,平均应用周转时间在1.5倍至2倍之间,系统公平性高达3.4倍。
GPUs are being increasingly adopted as compute accelerators in many domains, spanning environments from mobile systems to cloud computing. These systems are usually running multiple applications, from one or several users. However GPUs do not provide the support for resource sharing traditionally expected in these scenarios. Thus, such systems are unable to provide key multiprogrammed workload requirements, such as responsiveness, fairness or quality of service. In this paper, we propose a set of hardware extensions that allow GPUs to efficiently support multiprogrammed GPU workloads. We argue for preemptive multitasking and design two preemption mechanisms that can be used to implement GPU scheduling policies. We extend the architecture to allow concurrent execution of GPU kernels from different user processes and implement a scheduling policy that dynamically distributes the GPU cores among concurrently running kernels, according to their priorities. We extend the NVIDIA GK110 (Kepler) like GPU architecture with our proposals and evaluate them on a set of multiprogrammed workloads with up to eight concurrent processes. Our proposals improve execution time of high-priority processes by 15.6x, the average application turnaround time between 1.5x to 2x, and system fairness up to 3.4x.