AvA is a research system for virtualizing general API-controlled accelerators automatically, developed in SCEA lab at University of Texas at Austin. AvA is prototyped on KVM and QEMU, compromising compatibility with automation for classic API remoting systems, and introducing hypervisor interposition for resource management and strong isolation.
This repository is the main codebase of AvA. We host customized Linux kernel, QEMU, LLVM, and sets of benchmarks in separate repositories.
We are refactoring AvA code for better extensibility and developer-friendliness. The refactoring breaks a few functionalities at this moment, but they are coming back.
git clone [email protected]:utcs-scea/ava.git
cd ava
git submodule update --init --recursive
- Build and Setup
- Generate Code
- Guestlib Configurations
- Virtualize (Your Own) New APIs
- Introduction to LAPIS
AvA was fully tested on Ubuntu 18.04 (Linux 4.15) with GCC 7.5.0, Python 3.6.9, Boost 1.71.x, cmake 3.19.1 and Protobuf 3.0-3.9. The system also works in Ubuntu 16.04 with additional care of Python 3.6 and Clang-7 installation for CAvA scripts, but we do not maintain the support anymore. We plan to migrate AvA to Ubuntu 20.04.
The following hardware and APIs are virtualized with AvA (excluding manually implemented Python forwarding):
API framework | Hardware |
---|---|
OpenCL 1.2 | NVIDIA GTX 1080 / AMD RX 580 |
CUDA 10.0 (driver) | NVIDIA GTX 1080 |
CUDA 10.0 (runtime) | NVIDIA GTX 1080 |
TensorFlow 1.12 C | Intel Xeon E5-2643 |
TensorFlow 1.14 Python | NVIDIA GTX 1080 |
NCSDK v2 | Intel Movidius NCS v1 & v2 |
GTI SDK 4.4.0.3 | Gyrfalcon 2803 Plai Plug |
QuickAssist 1.7 | Intel QuickAssist |
Custom FPGA on AmorphOS | AWS F1 |
For the status of support, please check out Build and Setup document.
- Kernel: https://github.com/utcs-scea/ava-kvm
- QEMU: https://github.com/utcs-scea/ava-qemu
- LLVM: https://github.com/utcs-scea/ava-llvm
- Benchmarks: https://github.com/utcs-scea/ava-benchmarks
Yu, Hangchen, Arthur M. Peters, Amogh Akshintala, and Christopher J. Rossbach. "AvA: Accelerated Virtualization of Accelerators." In Proceedings of the 25th International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 807-825. ACM, 2020.
Yu, Hangchen, Arthur M. Peters, Amogh Akshintala, and Christopher J. Rossbach. "Automatic Virtualization of Accelerators." In Proceedings of the Workshop on Hot Topics in Operating Systems, pp. 58-65. ACM, 2019.
Name | Affiliation | Role | Contact |
---|---|---|---|
Hangchen Yu | Facebook & UT Austin | Main developer | [email protected] |
Arthur M. Peters | Katana Graph & UT Austin | Main developer | [email protected] |
Amogh Akshintala | Facebook & UNC | ||
Zhiting Zhu | UT Austin | ||
Tyler Hunt | Katana Graph & UT Austin | ||
Christopher J. Rossbach | UT Austin & Katana Graph & VMware Research | Advisor | [email protected] |