Browsing by Author "Lehmus, Olli-Samuli"
Now showing 1 - 2 of 2
- Results Per Page
- Sort Options
- Hakurakenteiden toteutukset Scala-, Python- ja C++ -kielten standardikirjastoissa
Perustieteiden korkeakoulu | Bachelor's thesis(2021-04-13) Lehmus, Olli-Samuli - Optimized Static Allocation of Signal Processing Tasks onto Signal Processing Cores
Perustieteiden korkeakoulu | Master's thesis(2023-08-21) Lehmus, Olli-SamuliModern digital audio effect modelling devices offer advantages in cost, reliability and reproducibility compared to their analog alternatives. The device emulating a complete signal chain used for playing electric guitar or bass must perform its digital audio signal processing in real-time, and thus sufficient computation power is needed, usually through cores designed for digital signal processing. As the modelled signal chains become larger, multicore architectures become a necessity to meet the computation demands of the processing. This thesis studies the problem of allocating signal processing tasks to signal processing cores on an audio effect modelling device. Communication between tasks allocated on separate cores adds latency to the processing, and for a real-time audio processor, the total latency of the processing must be minimized. Each task consumes a fixed amount of various resources on the core it executes on, and thus we need to also efficiently utilize the available resources on the system. To preserve a pleasant user experience on the device, the algorithm allocating the tasks needs to run efficiently on an embedded system. We provide an overview into the existing task scheduling and allocation algorithms commonly used for similar problems optimizing latency and core utilization. Based on the prior work found, we implemented an efficient list scheduler that allows some minor brute-force optimization related to the specifics of the system hardware considered in this thesis. The implemented list scheduler was compared against an algorithm used to solve the same problem in an existing modeller product. We used both real-world and randomly generated signal task graphs to evaluate the latency, core utilization, and runtime performance of the algorithms. We determined that the greedy list scheduler utilizing system-specific heuristics can obtain effective results with an efficient and consistent execution time. Utilizing various list orders and recovery from greedy mistakes allowed us to minimize the effect of the greedy implementation, and obtain better results in less time compared to the baseline implementation.