Magic-Pipe: self-optimizing video analytics pipelines

Microservices-based video analytics pipelines routinely use multiple deep convolutional neural networks. We observe that the best allocation of resources to deep learning engines (or microservices) in a pipeline, and the best configuration of parameters for each engine vary over time, often at a timescale of minutes or even seconds based on the dynamic content in the video. We leverage these observations to develop Magic-Pipe, a self-optimizing video analytic pipeline that leverages AI techniques to periodically self-optimize. First, we propose a new, adaptive resource allocation technique to dynamically balance the resource usage of different microservices, based on dynamic video content. Then, we propose an adaptive microservice parameter tuning technique to balance the accuracy and performance of a microservice, also based on video content. Finally, we propose two different approaches to reduce unnecessary computations due to unavoidable mismatch of independently designed, re-usable deep-learning engines: a deep learning approach to improve the feature extractor performance by filtering inputs for which no features can be extracted, and a low-overhead graph-theoretic approach to minimize redundant computations across frames. Our evaluation of Magic-Pipe shows that pipelines augmented with self-optimizing capability exhibit application response times that are an order of magnitude better than the original pipelines, while using the same hardware resources, and achieving similar high accuracy.

gVirtuS 01-beta2 released, supporting cudatoolkit 3.1 and 3.2

From this release (01-beta2) we support cudatoolkit >= 3.1. The legacy compatibility for cudatoolkit versions older than 3.1 is not guaranteed. In this release there are also some minor changes and bugfixes. The frontend now is named "libcudart.so.3", so it is not needed anymore to rename it or to preload it. The AfUnix communicator now … Continue reading gVirtuS 01-beta2 released, supporting cudatoolkit 3.1 and 3.2

Writing CUDA applications using the D programming language

On the release note of Fedora 14 there is the introduction of the support for developing using the D programming language, so I've readed something on that language and I feel that probably I can actually use it, the main interesting feature for me is the simple interoperability with code written in C. So just … Continue reading Writing CUDA applications using the D programming language

I'm the science (aka my first publication)

In these last days my first paper had been published. The title of the paper is "A GPGPU Transparent Virtualization Component for High Performance Computing Clouds". It's an article about gVirtuS: the implementation, the usage and a comparison with other software that aim to accomplish to do the same job (seriously in the real world … Continue reading I'm the science (aka my first publication)

gVirtuS: the first beta release

We are proud to announce the first beta release of gVirtuS. gVirtuS allows an instanced virtual machine to access GPGPUs in a transparent way, with an overhead  slightly greater than a real machine/GPGPU setup. gVirtuS is hypervisor independent, and, even though it currently virtualizes nVIDIA CUDA based GPUs. The software, developed for research applications, is … Continue reading gVirtuS: the first beta release