AVA es un sistema de investigación para virtualizar aceleradores generales controlados por API automáticamente, desarrollado en SCEA Lab en la Universidad de Texas en Austin. AVA está prototipado en KVM y QEMU, comprometiendo la compatibilidad con la automatización para los sistemas de remotos API clásicos e introduciendo la interposición de hipervisor para la gestión de recursos y el aislamiento fuerte.
Este repositorio es la principal base de código de AVA. Organizamos el kernel Linux personalizado, QEMU, LLVM y conjuntos de puntos de referencia en repositorios separados.
Estamos refactorizando el código AVA para una mejor extensibilidad y amigable para desarrolladores. La refactorización rompe algunas funcionalidades en este momento, pero están volviendo.
git clone [email protected]:utcs-scea/ava.git
cd ava
git submodule update --init --recursive
AVA se probó completamente en Ubuntu 18.04 (Linux 4.15) con GCC 7.5.0, Python 3.6.9, Boost 1.71.x, CMake 3.19.1 y ProtoBuf 3.0-3.9. El sistema también funciona en Ubuntu 16.04 con un cuidado adicional de la instalación de Python 3.6 y Clang-7 para scripts Cava, pero ya no mantenemos el soporte. Planeamos migrar AVA a Ubuntu 20.04.
Los siguientes hardware y API se virtualizan con AVA (excluyendo el reenvío de Python implementado manualmente):
Marco API | Hardware |
---|---|
OpenCl 1.2 | Nvidia GTX 1080 / AMD RX 580 |
CUDA 10.0 (controlador) | Nvidia gtx 1080 |
CUDA 10.0 (tiempo de ejecución) | Nvidia gtx 1080 |
TensorFlow 1.12 C | Intel Xeon E5-2643 |
Tensorflow 1.14 Python | Nvidia gtx 1080 |
NCSDK V2 | Intel Movidius NCS V1 y V2 |
GTI SDK 4.4.0.3 | Gyrfalcon 2803 Plai Plug |
Quickassist 1.7 | Intel Quickassist |
FPGA personalizado en Amorphos | AWS F1 |
Para obtener el estado de soporte, consulte el documento de compilación y configuración.
Yu, Hangchen, Arthur M. Peters, Amogh Akshintala y Christopher J. Rossbach. "Ava: virtualización acelerada de aceleradores". En Actas de la 25ª Conferencia Internacional sobre Soporte Arquitectónico para Lenguajes de Programación y Sistemas Operativos, pp. 807-825. ACM, 2020.
Yu, Hangchen, Arthur M. Peters, Amogh Akshintala y Christopher J. Rossbach. "Virtualización automática de aceleradores". En Actas del taller sobre temas calientes en los sistemas operativos, pp. 58-65. ACM, 2019.
Nombre | Afiliación | Role | Contacto |
---|---|---|---|
Hangchen Yu | Facebook y UT Austin | Desarrollador principal | [email protected] |
Arthur M. Peters | Katana Graph & Ut Austin | Desarrollador principal | [email protected] |
Amogh Akshintala | Facebook y UNC | ||
Zhiting zhu | Ut Austin | ||
Tyler Hunt | Katana Graph & Ut Austin | ||
Christopher J. Rossbach | Investigación de Graph & Vmware de UT Austin y Katana | Tutor | [email protected] |