Maximizing the GPU resource usage by reordering concurrent kernels submission. (17th January 2018) - Cruz, Rommel A.Q.; Bentes, Cristiana; Breder, Bernardo; Vasconcellos, Eduardo; Clua, Esteban; de Carvalho, Pablo M.C.; Drummond, Lúcia M.A.
Summary: The increasing amount of resources available on current GPUs sparked new interest in the problem of sharing its resources by different kernels. While new generations of GPUs support concurrent kernel execution, their scheduling decisions are taken by the hardware at runtime. The hardware decisions, however, heavily depend on the order at which the kernels are submitted to execution. In this work, we propose a novel optimization approach to reorder the kernels invocation focusing on maximizing the resources utilization, improving the average turnaround time. We model the kernel assignments to the hardware resources as a series of knapsack problems and use a dynamic programming approach to solve them. We evaluate our method using kernels with different sizes and resource requirements. Our results show significant gains in the average turnaround time and system throughput compared to the kernels submission implemented in modern GPUs.