Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by HumanISE

2020

Executing ARMv8 Loop Traces on Reconfigurable Accelerator via Binary Translation Framework

Authors
Paulino, N; Ferreira, JC; Bispo, J; Cardoso, JMP;

Publication
2020 30TH INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE LOGIC AND APPLICATIONS (FPL)

Abstract
Performance and power efficiency in edge and embedded systems can benefit from specialized hardware. To avoid the effort of manual hardware design, we explore the generation of accelerator circuits from binary instruction traces for several Instruction Set Architectures.

2020

kNN Prototyping Schemes for Embedded Human Activity Recognition with Online Learning

Authors
Ferreira, PJS; Cardoso, JMP; Moreira, JM;

Publication
Comput.

Abstract
The kNN machine learning method is widely used as a classifier in Human Activity Recognition (HAR) systems. Although the kNN algorithm works similarly both online and in offline mode, the use of all training instances is much more critical online than offline due to time and memory restrictions in the online mode. Some methods propose decreasing the high computational costs of kNN by focusing, e.g., on approximate kNN solutions such as the ones relying on Locality-Sensitive Hashing (LSH). However, embedded kNN implementations also need to address the target device’s memory constraints, especially as the use of online classification needs to cope with those constraints to be practical. This paper discusses online approaches to reduce the number of training instances stored in the kNN search space. To address practical implementations of HAR systems using kNN, this paper presents simple, energy/computationally efficient, and real-time feasible schemes to maintain at runtime a maximum number of training instances stored by kNN. The proposed schemes include policies for substituting the training instances, maintaining the search space to a maximum size. Experiments in the context of HAR datasets show the efficiency of our best schemes. © 2020 by the authors. Licensee MDPI, Basel, Switzerland.

2020

Automatic Selection and Insertion of HLS Directives Via a Source-to-Source Compiler

Authors
Santos, T; Cardoso, JMP;

Publication
2020 INTERNATIONAL CONFERENCE ON FIELD-PROGRAMMABLE TECHNOLOGY (ICFPT 2020)

Abstract
High-level Synthesis (HLS) is of paramount importance to leverage the use of FPGA-based accelerators by software developers. To achieve efficient FPGA implementations, code restructuring and source code annotating with HLS directives are necessary. However, this is still a manual process conducted by experienced developers. This paper proposes a step on a framework to automatically optimize C code via directives, using a source-to-source compiler on a stage before HLS. This optimization is primarily applied by strategies that select, configure, and insert directives on the code input to the Vivado HLS tool to synthesize more latency-efficient FPGA hardware. Those strategies rely on very simple but effective heuristics, which use a small set of properties extracted from the control/dataflow graphs generated from the input source code. We evaluate the framework using a variety of source codes. The experiments show that it can achieve efficient results while maintaining a low resource usage in most cases. Our experiments also compare the framework results to code optimized manually with directives, and they show that for most benchmarks used, it achieves similar results.

2020

Clava: C/C plus plus source-to-source compilation using LARA

Authors
Bispo, J; Cardoso, JMP;

Publication
SOFTWAREX

Abstract
This article presents Clava, a Clang-based source-to-source compiler, that accepts scripts written in LARA, a JavaScript-based DSL with special constructs for code queries, analysis and transformations. Clava improves Clang's source-to-source capabilities by providing a more convenient and flexible way to analyze, transform and generate C/C++ code, and provides support for building strategies that capture run-time behavior. We present the Clava framework, its main capabilities, and how it can been used. Furthermore, we show that Clava is sufficiently robust to analyze, instrument and test a set of large C/C++ application codes, such as GCC. (C) 2020 The Authors. Published by Elsevier B.V.

2020

Compilation of MATLAB computations to CPU/GPU via C/OpenCL generation

Authors
Reis, L; Bispo, J; Cardoso, JMP;

Publication
CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE

Abstract
In order to take advantage of the processing power of current computing platforms, programmers typically need to develop software versions for different target devices. This task is time-consuming and requires significant programming and computer architecture expertise. A possible and more convenient alternative is to start with a single high-level description of a program with minimum implementation details, and generate custom implementations according to the target platform. In this paper, we use MATLAB as a high-level programming language and propose a compiler that targets CPU/GPU computing platforms by generating customized implementations in C and OpenCL. We propose a number of compiler techniques to automatically generate efficient C and OpenCL code from MATLAB programs. One of such compiler techniques relies on heuristics to decide when and how to use Shared Virtual Memory (SVM). The experimental results show that our approach is able to generate code that provides significant speedups (eg, geometric mean speedup of 11x for a set of simple benchmarks) using a discrete GPU over equivalent sequential C code executing on a CPU. With more complex benchmarks, for which only some code regions can be parallelized, and are thus offloaded, the generated code achieved speedups of up to 2.2x. We also show the impact of using SVM, specifically fine-grained buffers, and the results show that the compiler is able to achieve significant speedups, both over the versions without SVM and with naive aggressive SVM use, across three CPU/GPU platforms.

2020

Fammeal: A Gamified Mobile Application for Parents and Children to Help Healthcare Centers Treat Childhood Obesity

Authors
Afonso, L; Rodrigues, R; Reis, E; Miller, K; Castro, J; Parente, N; Teixeira, C; Fraga, A; Torres, S;

Publication
IEEE TRANSACTIONS ON GAMES

Abstract
Healthcare centers are ideal settings to identify and motivate parents to adhere to healthier lifestyles in order to reverse their child's excessive weight. However, such promotions are time- and resource-consuming, and primary health care needs new approaches to engage parents. In this article, we present an app for that purpose, with tailored recommendations for parents regarding young children's lifestyles (eating, drinking, moving, and sleeping habits) with gamification mechanics for parents, and a serious game for their children, aged 3-6 years. Healthcare center based questionnaires were used to assess parent's acceptance of the app. We also determined their enrollment and retention rates with a pilot study, in order to test the implementation of a randomized controlled trial (RCT) in the future (pilot trial registration: ClinicalTrials.gov NCT03881280). In the pilot study, we tested their engagement with the app during a four-week period through a monitoring website. In the acceptance test (n = 13), parents rated the app a median score of seven on a ten-point scale. In the pilot study (n = 21), all parents in the intervention group used the app. The retention rate was 71.4%. This study indicated some areas of improvement related to gaming mechanics in order to increase participation. Healthcare center's professionals and parents of children with overweight/obesity accepted this innovative approach. In addition, it is feasible to test its impact on children's lifestyle by conducting an RCT in the future.

  • 215
  • 677