Difference between revisions of "Linux Driver for fine-grain and low overhead access to on-chip performance counters"
From iis-projects
Line 1: | Line 1: | ||
+ | [[Category:Software]] [[Category:Available]] [[Category:Semester Thesis]] [[Category:2016]] [[Category:Hot]] [[Category:Libria]] [[Category:Barandre]] | ||
[[File:on-chip_performance_counters.png|630px|thumb]] | [[File:on-chip_performance_counters.png|630px|thumb]] | ||
==Short Description== | ==Short Description== |
Revision as of 19:56, 7 September 2016
Contents
Short Description
In recent years, energy-efficiency is becoming a key challenge in the High Performance Computing (HPC) domain. Indeed, while the demand for more powerful supercomputers is constantly increasing, integrated computing architectures are facing power/thermal challenges that are limiting the performance benefits of technology scaling. Optimizing for energy efficiency requires methods of correlating the application execution with fine-grain power measurements, as well as architectural events. Current processors, like Intel processors, embeds performance counters to monitor online the energy consumption and other architectural parameters. However, the software libraries which wraps such performance counters becomes bulky and lead to significant overheads when accessed with high-frequency to track fast workload variations. Currently HPC-infrastructure monitoring-systems sample these values with periods above the seconds to limit the overhead. However, most of this overhead is linked to traversing the user-space to kernel-space interface more than the direct access to the counter. Linux OS has already an IIO-Subsystem which allows to efficiently move time traces from kernel-space to user-space, by implementing SW and HW-interrupt methods. However, this is only used to interface with external monitors and not with the internal per-core architectural performance counters.
Goal of this Project → Implementation and testing of a Linux Device Driver for handling architectural performance counters as an IIO device. This project allows the student to get practical experience with Linux Kernel Programming, IIO Linux Subsystem (widely used in Linux-Based SoCs for handling ADCs) and architectural performance counters.
Status: Available
- Looking for 1 Master Students (Semester Project)
- Supervision: Antonio Libri, Andrea Bartolini
Prerequisites
- Experience on writing Linux Device Drivers (kernel-level development).
- Good knowledge of C.
- Knowledge of the Linux Operating System architecture
Character
- 20% Theory
- 50% Implementation
- 30% Testing
Professor
Detailed Task Description
Practical Details