Abstract
Graphics processing units (GPUs) have been employed in the critical path of applications in embedded systems due to the GPUs’ programmability, high-performance, and low power consumption. State-of-the-art GPUs have the capability to process multiple GPU workloads concurrently. Moreover, GPU-based embedded systems have been considered to be essential because of the increased number of throughput-oriented applications and system events. However, existing application scheduling frameworks on a GPU do not have enough flexibility to handle the dynamic behavior of the event-driven applications. This is because in the existing scheduling frameworks: 1) only temporal preemption is considered and 2) one application occupies the GPU at a time. In order to tackle these problems, we propose a novel run-time scheduling framework that considers both temporal and spatial preemptions concurrently. We demonstrate the capability and novelty of our framework compared to the existing scheduling frameworks with realistic benchmark applications and with different execution scenarios. Experimental results show that our scheduling framework is able to guarantee up to 1.37 times as many applications compared to other scheduling frameworks. Moreover, the total amount of timing violation is decreased by up to 54.57%.