2019
Authors
Shibata, Y; Cardoso, JMP; Takamaeda Yamazaki, S;
Publication
ACM International Conference Proceeding Series
Abstract
2019
Authors
Besnard, L; Pinto, P; Lasri, I; Bispo, J; Rohou, E; Cardoso, JMP;
Publication
SOFTWAREX
Abstract
Improving execution time and energy efficiency is needed for many applications and usually requires sophisticated code transformations and compiler optimizations. One of the optimization techniques is memoization, which saves the results of computations so that future computations with the same inputs can be avoided. In this article we present a framework that automatically applies memoization techniques to C/C++ applications. The framework is based on automatic code transformations using a source-to-source compiler and on a memoization library. With the framework users can select functions to memoize as long as they obey to certain restrictions imposed by our current memoization library. We show the use of the framework and associated memoization technique and the impact on reducing the execution time and energy consumption of four representative benchmarks. (C) 2019 The Authors. Published by Elsevier B.V.
2019
Authors
Ferreira, PJS; Cardoso, JMP; Moreira, JM;
Publication
Progress in Artificial Intelligence, 19th EPIA Conference on Artificial Intelligence, EPIA 2019, Vila Real, Portugal, September 3-6, 2019, Proceedings, Part II.
Abstract
Smartphones are increasingly present in human’s life. For example, for entertainment many people use their smartphones to watch videos or listen to music. Many users, however, stream or play videos with the intention to only listen to the audio track. This way, some battery energy, which is critical to most users, is unnecessarily consumed thus and switching between video and audio can increase the time of use of the smartphone between battery recharges. In this paper, we present a first approach that, based on the user context, can automatically switch between video and audio. A supervised learning approach is used along with the classifiers K-Nearest Neighbors, Hoeffding Trees and Naive Bayes, individually and combined to create an ensemble classifier. We investigate the accuracy for recognizing the context of the user and the overhead that this system can have on the smartphone energy consumption. We evaluate our approach with several usage scenarios and an average accuracy of 88.40% was obtained for the ensemble classifier. However, the actual overhead of the system on the smartphone energy consumption highlights the need for researching further optimizations and techniques. © 2019, Springer Nature Switzerland AG.
2019
Authors
Ferreira, PJS; Magalhaes, RMC; Garcia, KD; Cardoso, JMP; Mendes Moreira, J;
Publication
INTELLIGENT DATA ENGINEERING AND AUTOMATED LEARNING - IDEAL 2019, PT I
Abstract
The Classifier kNN is largely used in Human Activity Recognition systems. Research efforts have proposed methods to decrease the high computational costs of the original kNN by focusing, e.g., on approximate kNN solutions such as the ones relying on Locality-sensitive Hashing (LSH). However, embedded kNN implementations need to address the target device memory constraints and power/energy consumption savings. One of the important aspects is the constraint regarding the maximum number of instances stored in the kNN learning process (being it offline or online and incremental). This paper presents simple, energy/computationally efficient and real-time feasible schemes to maintain a maximum number of learning instances stored by kNN. Experiments in the context of HAR show the efficiency of our best approaches, and their capability to avoid the kNN storage runs out of training instances for a given activity, a situation not prevented by typical default schemes.
2019
Authors
Magalhães, RMC; Cardoso, JMP; Moreira, JM;
Publication
Progress in Artificial Intelligence, 19th EPIA Conference on Artificial Intelligence, EPIA 2019, Vila Real, Portugal, September 3-6, 2019, Proceedings, Part II.
Abstract
Nowadays most people carry a smartphone with built-in sensors (e.g., accelerometers, gyroscopes) capable of providing useful data for Human Activity Recognition (HAR). Machine learning classification methods have been intensively researched and developed for HAR systems, each with different accuracy and performance levels. However, acquiring sensor data and executing machine learning classifiers require computational power and consume energy. As such, a number of factors, such as inadequate preprocessing, can have a negative impact on the overall HAR performance, even on high-end handheld devices. While high accuracy can be extremely important in some applications, the device’s battery life can be highly critical to the end-user. This paper is focused on the k-nearest neighbors’ algorithm (kNN), one of the most used algorithms in HAR systems, and research and develop energy-efficient implementations for mobile devices. We focus on a kNN implementation based on Locality-Sensitive Hashing (LSH) with a significant positive impact on the device’s battery life, fully integrated into a mobile HAR Android application able to classify human activities in real-time. The proposed kNN implementation was able to achieve execution time reductions of 50% over other versions of kNN with average accuracy of 96.55% when considering 8 human activities. © 2019, Springer Nature Switzerland AG.
2019
Authors
Ferreira, AC; Cardoso, JMP;
Publication
5th International Workshop on FPGAs for Software Programmers, FSP 2018, co-located with International Conference on Field Programmable Logic and Applications, FPL 2018
Abstract
FPGAs are becoming a popular solution for accelerating the execution of software applications. The use of high level synthesis (HLS) tools intends to provide levels of abstraction comfortable to software developers when targeting FPGA-based hardware accelerators. However, the need to restructure the software code and to use adequate directives require both mastering the HLS tool used and FPGA hardware. This paper presents our efforts to provide a new approach for code restructuring, intended to help software developers in achieving efficient hardware implementations. Our approach uses an unfolded graph representation, which is generated from program execution traces, together with graph-based optimizations such as folding to generate suitable C code to input to HLS tools, such as Vivado HLS. The experiments show that our approach is capable of generating C code that results in efficient hardware implementations only otherwise achievable using manual restructuring of the input software code and manual insertion of adequate directives. © VDE VERLAG GMBH · Berlin · Offenbach
The access to the final selection minute is only available to applicants.
Please check the confirmation e-mail of your application to obtain the access code.