Performance Tuning for GPU-Embedded Systems: Machine-Learning-based and
  Analytical Model-driven Tuning Methodologies
Adrian Perez Dieguez Margarita Amor Lopez
GPU-embedded systems have gained popularity across various domains due to
their efficient power consumption. However, in order to meet the demands of
real-time or time-consuming applications running on these systems, it is
crucial for them to be tuned to exhibit high performance. This paper addresses
the issue by developing and comparing two tuning methodologies on GPU-embedded
systems, and also provides performance insights for developers and researchers
seeking to optimize applications running on these architectures. We focus on
parallel prefix operations, such as FFT, scan primitives, and tridiagonal
system solvers, which are performance-critical components in many applications.
The study introduces an analytical model-driven tuning methodology and a
Machine Learning (ML)-based tuning methodology. We evaluate the performance of
the two tuning methodologies for different parallel prefix implementations of
the BPLG library in an NVIDIA Jetson system, and compare their performance to
the ones achieved through an exhaustive search. The findings shed light on the
best strategies for handling the open challenge of performance portability for
major computational patterns among server and embedded devices, providing
practical guidance for offline and online tuning. We also address the existing
gap in performance studies for parallel computational patterns in GPU-embedded
systems by comparing the BPLG performance against other state-of-the-art
libraries, including CUSPARSE, CUB, and CUFFT.