2019
Autores
Ferreira, AC; Cardoso, JMP;
Publicação
Applied Reconfigurable Computing - 15th International Symposium, ARC 2019, Darmstadt, Germany, April 9-11, 2019, Proceedings
Abstract
High-level synthesis (HLS) is of paramount importance to enable software developers to map critical computations to FPGA-based hardware accelerators. However, in order to generate efficient hardware accelerators one needs to apply significant code transformations and adequately use the directive-driven approach, part of most HLS tools. The code restructuring and directives needed are dependent not only of the characteristics of the input code but also of the HLS tools and target FPGAs. These aspects require a deep knowledge about the subjects involved and tend to exclude software developers. This paper presents our recent approach for automatic code restructuring targeting HLS tools. Our approach uses an unfolded graph representation, which can be generated from program execution traces, and graph-based optimizations, such as folding, to generate suitable HLS C code. In this paper, we describe the approach and the new optimizations proposed. We evaluate the approach with a number of representative kernels and the results show its capability to generating efficient hardware implementations only achievable using manual restructuring of the input software code and manual insertion of adequate HLS directives. © 2019, Springer Nature Switzerland AG.
2019
Autores
Nobre, R; Bispo, J; Carvalho, T; Cardoso, JMP;
Publicação
SOFTWAREX
Abstract
This article presents Nonio, a modular, easy-to-use, design space exploration framework focused on exploring custom combinations of compiler flags and compiler sequences. We describe the framework and discuss its use with two of the most popular compiler toolchains, GCC and Clang+LLVM. Particularly, we discuss implementation details in the context of flag selection, when using GCC, and phase selection and ordering, when using Clang+LLVM. The framework software organization allows to easily add new components as plug-ins (e.g., an exploration algorithm, an objective metric, integration with another compiler toolchain). The software architecture provides well-defined interfaces, in order to enable seamless composition and interaction between different components. We present, as an example, a use case where we rely on Nonio to obtain custom compiler flags for reducing the execution time and the energy consumption of a C program, in relation to the best predetermined optimization settings provided by the compiler (e.g., -O3). (C) 2019 The Authors. Published by Elsevier B.V.
2019
Autores
Shibata, Y; Cardoso, JMP; Takamaeda Yamazaki, S;
Publicação
ACM International Conference Proceeding Series
Abstract
2019
Autores
Besnard, L; Pinto, P; Lasri, I; Bispo, J; Rohou, E; Cardoso, JMP;
Publicação
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
Autores
Ferreira, PJS; Cardoso, JMP; Moreira, JM;
Publicação
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
Autores
Ferreira, PJS; Magalhaes, RMC; Garcia, KD; Cardoso, JMP; Mendes Moreira, J;
Publicação
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.
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.