  The edge computing paradigm has emerged to handle cloud computing issues such
as scalability, security and low response time among others. This new computing
trend heavily relies on ubiquitous embedded systems on the edge. Performance
and energy consumption are two main factors that should be considered during
the design of such systems. Focusing on performance and energy consumption,
this paper studies the opportunities and challenges that a heterogeneous
embedded system consisting of embedded FPGAs and GPUs (as accelerators) can
provide for applications. We study three design, modeling and scheduling
challenges throughout the paper. We also propose three techniques to cope with
these three challenges. Applying the proposed techniques to three applications
including image histogram, dense matrix-vector multiplication and sparse
matrix-vector multiplications show 1.79x and 2.29x improvements in performance
and energy consumption, respectively, when both FPGA and GPU execute the
corresponding application in parallel.
