Automatic Frequency Scaling for Embedded Co-processor Acceleration

Automatic Frequency Scaling for Embedded Co-processor Acceleration

Project reference: 1802

Energy minimization is critical in current and future computing platforms in fields such as HPC and embedded systems. While for the former it is a requirement to achieve exascale systems, the latter usually features strong power and/or autonomy constraints.

GPU accelerators provide great energy efficiency per FLOP, but they are still power-hungry devices, spending a large portion of the power budget. Hence, it is of high relevance to perform an efficient use of those. The maximum efficiency however, is attained at different CPU and GPU frequencies depending on the applications usage pattern of these processors and their memories.

We have carried out initial work toward automatic CPU and GPU frequency scaling for embedded platforms, seeking energy-to-solution minimization. Based on an in-house software-based power monitor, we have measured the energy consumption of a set of representative coprocessor usage patterns and kernels for a range of CPU and GPU frequencies in a Jetson TX1 platform. These measurements show significant difference in energy consumption for different frequencies of these processors, but its correlation to the program features is not obvious and different benchmarks yield to considerably different curves. We expect the intern to analyze our data (and possibly to leverage further experiments) to identify the program features to leverage and how to extract from these the optimum CPU/GPU frequency. Techniques to be applied will be explored and discussed, including, but not limited to, machine learning approaches. An automatic CPU/GPU frequency manager is expected to be developed based on the knowledge developed during the internship.

Example of energy consumption vs. GPU and CPU frequency.

Project Mentor: Antonio J. Pena

Site Co-ordinator: Maria-Ribera Sancho

Learning Outcomes:

  • CPU/GPU frequency scaling implications on energy consumption.
  • System software development for frequency scaling.

Student Prerequisites (compulsory):

  • C, CUDA
  • Machine learning

Student Prerequisites (desirable):

  • Feature selection, optimization and search problems.
  • System software development (Linux).

Training Materials:


  • Week 1: Training
  • Week 2: Literature review and plan report development
  • Week 3-7: Project development
  • Week 8: Development of final report

Final Product Description:
An automatic frequency scaler.
A scientific paper and/or technical report.

Adapting the Project: Increasing the Difficulty
We can seek for higher accuracy and further application usage patterns.

Adapting the Project: Decreasing the Difficulty
The student will be backed by members of the team in case an unplanned increase of difficulty arises. We can adapt to lower than expected accuracy. The actual development of the automatic frequency scaling can also be converted into a guided frequency scaling (expected to be of easier implementation).

A laptop and NVIDIA TX1 boards. We expect the student to bring his own laptop; we will provide them with access to our set of TX1 boards.

Barcelona Supercomputing Centre


Tagged with: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *


This site uses Akismet to reduce spam. Learn how your comment data is processed.