By Matthew McClure
Introducing VMware Interface for Accelerator APIs, a new open source project now available in our GitHub repository. VMware Interface for Accelerator APIs enables day-zero usage of new Accelerator APIs by utilizing a client/server model written in C/C++.
The typical process would be placing a server on a host or virtual machine (VM) that supports a given Accelerator API. But for users like researchers, students or solution providers who wish to use an Accelerator in remote locations like a data center or lab, VMware Interface for Accelerator APIs enables you to leverage such resources without assigning hardware directly to the client’s host or VM. This method provides access to a non-local Accelerator before a formal virtualized device can be derived.
Each Accelerator’s API is then abstracted into a client/server protocol with remote execution in mind. The protocol should contain atomic operations and as little implied or tracked state on the server as possible. This initial Accelerator is a Compute Accelerator, but future accelerators will include video decode, video encode and AI accelerators.
Current Use Cases for VMware Interface for Accelerator APIs:
- Exposing unsupported Accelerator functionality remotely to a client’s host or VM.
- For example, you can expose OpenCL 2.1 functionality from a Linux server to a MacOS-based client.
- Decoupling of physical hardware assignment so that a client doesn’t need to be upgraded in order to inherit fixes for a hardware issue.
- Isolating the effects from destructive workloads to a remote server VM without the loss of the client.
Benefits of This API Architecture:
- Heterogenous Accelerator APIs remove the reliance on hardware/OS specific implementations.
- Network-based protocol architectures allow for cross-disciplinary flow analysis using frameworks like Argus.
- A fully open source stack is included for extensibility and academic research.
- Accelerator and virtualization concepts can be explored without prior knowledge of a device driver stack.
- Scheduling algorithms in the context of network latency are also explorable.
Contributing to VMware Interface for Accelerator APIs
Do you have a passion for designing forward-looking APIs? Are you looking to explore the next phase of virtualization? Do you simply want to learn more about Accelerators and give back to the open source community? If you answered “yes” to any of these questions, then we’d love for you to contribute to VMware Interface for Accelerator APIs. For more information about the project and how to contribute, click here.