Automatic Virtualization of Accelerators

Automatic Virtualization of Accelerators
复制标题

DOI:
10.1145/3317550.3321423
复制
发表时间:
2019-05
期刊:
Proceedings of the Workshop on Hot Topics in Operating Systems
影响因子:
--
通讯作者:
Hangchen Yu;A. Peters;Amogh Akshintala;C. Rossbach
Hangchen Yu;A. Peters;Amogh Akshintala;C. Rossbach
中科院分区:
其他
文献类型:
--
作者:
Hangchen Yu;A. Peters;Amogh Akshintala;C. Rossbach

文献摘要

相似文献

应用程序正在大量迁移到云端,而gpu、tpu和fpga等加速器则随着摩尔定律的出现而激增。这些技术趋势是不相容的。云应用程序在虚拟平台上运行,但是传统的I/O虚拟化技术并没有为加速器提供生产就绪的解决方案。因此,云提供商通过使用将物理设备专用于单个客户的直通技术来暴露加速器。因此,推动其业务发展的多租户就会丢失。本文提出了虚拟加速器堆栈的自动生成,以解决加速器的虚拟化属性和技术之间的基本权衡。AvA(自动虚拟化加速器)重新利用了一种基于API远程的准虚拟I/O堆栈设计,为来宾虚拟机提供虚拟加速器API。传统观点认为,API远程操作牺牲了可插入性和兼容性。AvA通过管理程序管理的传输转发调用,以恢复插入。AvA通过自动生成客户库、驱动程序、管理程序级调度器和API服务器来补偿丢失的兼容性。AvA支持可插拔的传输层,允许vm使用分解的加速器。使用AvA,单个开发人员可以在几天内以接近原生性能的方式虚拟化OpenCL的核心子集。
Applications are migrating en masse to the cloud, while accelerators such as GPUs, TPUs, and FPGAs proliferate in the wake of Moore's Law. These technological trends are incompatible. Cloud applications run on virtual platforms, but traditional I/O virtualization techniques have not provided production-ready solutions for accelerators. As a result, cloud providers expose accelerators by using pass-through techniques which dedicate physical devices to individual guests. The multi-tenancy that drives their business is lost as a consequence. This paper proposes automatic generation of virtual accelerator stacks to address the fundamental tradeoffs between virtualization properties and techniques for accelerators. AvA (Automatic Virtualization of Accelerators) re-purposes a para-virtual I/O stack design based on API remoting to present virtual accelerator APIs to guest VMs. Conventional wisdom is that API remoting sacrifices interposition and compatibility. AvA forwards invocations over hypervisor-managed transport to recover interposition. AvA compensates for lost compatibility by automatically generating guest libraries, drivers, hypervisor-level schedulers, and API servers. AvA supports pluggable transport layers, allowing VMs to use disaggregated accelerators. With AvA, a single developer could virtualize a core subset of OpenCL at near-native performance in just a few days.