Compiler Profiling and Optimizing
Increased computational requirements of embedded software, in real-time domains such as automotive and avionics, demand an increasing amount of performance, that can not be offered from traditional single-core systems used within these fields. While more powerful platforms, have long been available on the consumer market, their adoption into safety critical fields has been slow, due to the rigorous safety certification requirements. Such platforms include multi-core CPU processors and heterogeneous CPU + accelerator system-on-chips (SoCs). Enabling the use of heterogeneous platforms in safety-critical systems does not only offer a major increase in performance, but also promises an increase in energy efficiency due to the use of more efficient accelerators. However, characteristic for these platforms that the operation of one core may interfere with an other due to the sharing of hardware resources. Therefore, one of the most important factors for certification is to provide guarantees on freedom from interference within the system, enabling strict guarantees on the completion of real-time tasks before the set deadlines.
A promising method to achieve this is the Predictable Execution Model (PREM). The fundaments of the PRedictable Execution Model (PREM) is the separation of memory and compute operations within programs, such that memory operations can be independently scheduled to provide freedom from interference -- i.e., only a single core is able to use the memory system at one point in time. To avoid stalling the program when the system is not permitting memory accesses from the program in question, the memory phase is tasked with copying all data needed for computation into core-local private memories, such that the compute operations can be executed independently.
At IIS, we have developed a compiler to transform code into PREM compatible intervals. The main goal of this project is to identify which algorithms that are implemented in an efficient manner, and where improvements are possible. This involves profiling the compiler to identify where most time is spent, and identifying if these parts can be optimized.
- Looking for 1 Interested Master Student (Semester Project), possibly also given as a smaller Group Project
- Supervision: Bjoern Forsberg
- Computer Science II, on algorithm complexity
- Interest in compiler techniques