8 research outputs found
Integrating Algorithmic Parameters into Benchmarking and Design Space Exploration in 3D Scene Understanding
System designers typically use well-studied benchmarks to evaluate and improve new architectures and compilers. We design tomorrow's systems based on yesterday's applications. In this paper we investigate an emerging application, 3D scene understanding, likely to be signi cant in the mobile space in the near future. Until now, this application could only run in real-time on desktop GPUs. In this work, we examine how it can be mapped to power constrained embedded systems. Key to our approach is the idea of incremental co-design exploration, where optimization choices that concern the domain layer are incrementally explored together with low-level compiler and architecture choices. The goal of this exploration is to reduce execution time while minimizing power and meeting our quality of result objective. As the design space is too large to exhaustively evaluate, we use active learning based on a random forest predictor to nd good designs. We show that our approach can, for the rst time, achieve dense 3D mapping and tracking in the real-time range within a 1W power budget on a popular embedded device. This is a 4.8x execution time improvement and a 2.8x power reduction compared to the state-of-the-art
Transfer Learning for Improving Model Predictions in Highly Configurable Software
Modern software systems are built to be used in dynamic environments using
configuration capabilities to adapt to changes and external uncertainties. In a
self-adaptation context, we are often interested in reasoning about the
performance of the systems under different configurations. Usually, we learn a
black-box model based on real measurements to predict the performance of the
system given a specific configuration. However, as modern systems become more
complex, there are many configuration parameters that may interact and we end
up learning an exponentially large configuration space. Naturally, this does
not scale when relying on real measurements in the actual changing environment.
We propose a different solution: Instead of taking the measurements from the
real system, we learn the model using samples from other sources, such as
simulators that approximate performance of the real system at low cost. We
define a cost model that transform the traditional view of model learning into
a multi-objective problem that not only takes into account model accuracy but
also measurements effort as well. We evaluate our cost-aware transfer learning
solution using real-world configurable software including (i) a robotic system,
(ii) 3 different stream processing applications, and (iii) a NoSQL database
system. The experimental results demonstrate that our approach can achieve (a)
a high prediction accuracy, as well as (b) a high model reliability.Comment: To be published in the proceedings of the 12th International
Symposium on Software Engineering for Adaptive and Self-Managing Systems
(SEAMS'17
A Survey on Compiler Autotuning using Machine Learning
Since the mid-1990s, researchers have been trying to use machine-learning
based approaches to solve a number of different compiler optimization problems.
These techniques primarily enhance the quality of the obtained results and,
more importantly, make it feasible to tackle two main compiler optimization
problems: optimization selection (choosing which optimizations to apply) and
phase-ordering (choosing the order of applying optimizations). The compiler
optimization space continues to grow due to the advancement of applications,
increasing number of compiler optimizations, and new target architectures.
Generic optimization passes in compilers cannot fully leverage newly introduced
optimizations and, therefore, cannot keep up with the pace of increasing
options. This survey summarizes and classifies the recent advances in using
machine learning for the compiler optimization field, particularly on the two
major problems of (1) selecting the best optimizations and (2) the
phase-ordering of optimizations. The survey highlights the approaches taken so
far, the obtained results, the fine-grain classification among different
approaches and finally, the influential papers of the field.Comment: version 5.0 (updated on September 2018)- Preprint Version For our
Accepted Journal @ ACM CSUR 2018 (42 pages) - This survey will be updated
quarterly here (Send me your new published papers to be added in the
subsequent version) History: Received November 2016; Revised August 2017;
Revised February 2018; Accepted March 2018
Algorithmic Robot Design: Label Maps, Procrustean Graphs, and the Boundary of Non-Destructiveness
This dissertation is focused on the problem of algorithmic robot design. The process of designing a robot or a team of robots that can reliably accomplish a task in an environment requires several key elements. How the problem is formulated can play a big role in the design process. The ability of the model to correctly reflect the environment, the events, and different pieces of the problem is crucial. Another key element is the ability of the model to show the relationship between different designs of a single system. These two elements can enable design algorithms to navigate through the space of all possible designs, and find a set of solutions. In this dissertation, we introduce procrustean graphs, a model for encoding the robot-environment interactions. We also provide a model for navigating through the space of all possible designs, called label maps. Using these models, we focus on answering the following questions: What degradations to the set of sensors or actuators of a robotic system can be tolerated? How different degradations affect the cost of doing a given task? What sets of resources — that is, sensors and actuators — are minimal for accomplishing a specific given job? And how to find such a set? To this end, our general approach is to sample, using a variety of sampling methods, over the space of all maps for a given problem, and use different techniques for answering these questions. We use decision tree classifiers to determine the crucial sensors and actuators required for a robotic system to accomplish its job. We present an algorithm based on space bisection to find the boundary between the feasible and infeasible subspaces of possible designs. We present an algorithm to measure the cost of doing a given task, and another algorithm to find the relationship between different degradation of a robotic system and the cost of doing the task. In all these solutions, we use a variety of techniques to scale up each approach to enable it to solve real world problems. Our experiments show the efficiency of the presented approach