Enabling virtualization of heterogenous computing resources in the cloud.
BUILT FOR EASE-OF-USE
- Container-based accelerator reservation
- Virtualization with automatic accelerator allocation and scheduling
- Simple APIs to invoke accelerators in applications
OPTIMIZED FOR PERFORMANCE
- Fine-grained accelerator sharing
- Data caching and data-transfer/computation overlapping
DESIGNED FOR PORTABILITY
- Easy integration with distributed computing frameworks
- Support heterogeneous systems with FPGAs and GPUs
BUILT-IN INTEGRATION WITH SPARK
- With accelerated machine-learning library MLlib
Global Accelerator Manager
- Global resource allocation within a cluster to optimize system throughput and accelerator utilization
Node Accelerator Manager
- Virtualize accelerators across application tasks
- Provide fine-grained accelerator sharing/isolation
Kestrel Runtime Performance
- 10x code reduction with Spark + Kestrel-enabled accelerators, compared with distributed OpenCL-based implementations
- 2.7x speedup for iterative computations with data pipelining and caching techniques
- 1.7x cluster throughput improvement by providing fine-grained accelerator sharing among multiple applications