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.
Tag: linux
Low-level mapping of key combinations in GNU/Linux (remapping the unremappable)
Keyboard by ainul muttaqin from the Noun Project This is a "brief" tale about how I used uinput and evdev to remap some keys of my latop's keyboard. Using this "low-level" approach it is possible to remap "unreamappable" key bindings, such as Alt+Right to End or Alt+Left to Home. I've been using, almost exclusively, an … Continue reading Low-level mapping of key combinations in GNU/Linux (remapping the unremappable)
CRUX PPC 3.0 released!
CRUX PPC 3.0 is now available. Toolchain ships with Graphite support (PPL backend) and also with LTO (Link Time Optimization). CRUX PPC 3.0 is released as two different archives: 32bit and 64bit. The 32bit version is based on a single lib toolchain instead the 64bit one comes with a multilib toolchain. These two versions share … Continue reading CRUX PPC 3.0 released!
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
CRUX PPC 2.6 released
CRUX PPC 2.6 is now available. It works on Apple 32bit "NewWorld" G3/G4 and Apple 64bit G5, Genesi PegasosII and Efika, Acube Sam440ep, IBM RS/6000 CHRP (604e), YDL Powerstation, IBM Intellistation POWER, and IBM pSeries RS64/POWERn. CRUX PPC 2.6 is, as usual, released via two different installation ISO: 32bit and 64bit. The 32bit version is … Continue reading CRUX PPC 2.6 released
VMSocket: a mechanism to expose UNIX Sockets in KVM Virtual Machines
VMSocket is a mechanism to expose UNIX Sockets (sockets in AF_UNIX domain) from the host operating system to the KVM's virtual machines. It provides a really fast communication channel between host and guests os. It can ben used for communication that needs to be fast, such as HPC (High Performance Computing) software solutions and so … Continue reading VMSocket: a mechanism to expose UNIX Sockets in KVM Virtual Machines