Font Size: a A A

Running Real-time Tasks on Embedded Systems Using GPU Computing

Posted on:2015-10-23Degree:Ph.DType:Dissertation
University:University of California, DavisCandidate:Muyan-Ozcelik, PinarFull Text:PDF
GTID:1478390017498346Subject:Computer Science
Abstract/Summary:PDF Full Text Request
The advent of GPU computing allows us to leverage the computation power of GPUs in different domains beyond graphics. Since GPUs provide significant speedups in runtime and superior cost/power-per-performance, they are a good fit for embedded domains running real-time data-parallel tasks. However, meeting real-time constraints with the limited embedded resources on the parallel architecture of GPUs is a nontrivial research challenge. An even more challenging research question is how to develop approaches that allow GPUs to concurrently run multiple real-time embedded tasks. In this dissertation, I aim to address these challenges by first presenting my study which exemplifies the suitability of GPUs for performing embedded real-time tasks. Then, I go one step further and present my research demonstrating that GPUs can be used for running multiple disparate real-time embedded tasks concurrently.;In my first study, I perform template-based speed-limit-sign recognition task in real-time using a low-end GPU with limited resources. To meet real-time performance requirements using constrained resources, I use computer vision techniques well-suited for the parallel GPU architecture, allowing me to achieve a very fast runtime, and I build my pipeline from parametrized modules, allowing the best use of the limited resources by fine-tuning the parameters based on a trade-off between runtime and success rate. This recognition system I developed achieves 90% accuracy over 120 EU speed-limit signs on 45 minutes of video footage, and is superior to the 75% accuracy of a non-real-time SIFT-based recognition system implemented on the same GPU.;In my second study, I take into consideration the specific characteristics of GPU workloads, and I survey a wide spectrum of scheduling strategies for multitasking among real-time embedded tasks. Based on this investigation, I design several schedulers each using a combination of alternative approaches. Then, I compare the performance of schedulers on several workloads with different properties. Based on these comparisons, I determine which scheduling approach is more effective for a given workload and why. Some of the important conclusions of this study are as follows: (a) We should use the approach that runs kernels concurrently if we have small kernels. (b) If we have small kernels and kernel runtimes of higher-priority tasks are generally longer than those of lower-priority tasks, we should use the approach that changes the issue order dynamically to improve results of CPU schedulers running on the Fermi architecture. (c) Due to the limitations of the existing GPU architectures, we should at this time use the approach that performs CPU scheduling instead of the one that performs GPU scheduling. In this second study, I also highlight the shortcomings of current GPU architectures with regard to running multiple real-time tasks, and I recommend new features that, when added to the upcoming architectures, would allow better schedulers to be designed.
Keywords/Search Tags:GPU, Tasks, Real-time, Embedded, Running, Using, Gpus, Schedulers
PDF Full Text Request
Related items