English

A Programming Model for GPU Load Balancing

Distributed, Parallel, and Cluster Computing 2023-01-13 v1

Abstract

We propose a GPU fine-grained load-balancing abstraction that decouples load balancing from work processing and aims to support both static and dynamic schedules with a programmable interface to implement new load-balancing schedules. Prior to our work, the only way to unleash the GPU's potential on irregular problems has been to workload-balance through application-specific, tightly coupled load-balancing techniques. With our open-source framework for load-balancing, we hope to improve programmers' productivity when developing irregular-parallel algorithms on the GPU, and also improve the overall performance characteristics for such applications by allowing a quick path to experimentation with a variety of existing load-balancing techniques. Consequently, we also hope that by separating the concerns of load-balancing from work processing within our abstraction, managing and extending existing code to future architectures becomes easier.

Keywords

Cite

@article{arxiv.2301.04792,
  title  = {A Programming Model for GPU Load Balancing},
  author = {Muhammad Osama and Serban D. Porumbescu and John D. Owens},
  journal= {arXiv preprint arXiv:2301.04792},
  year   = {2023}
}

Comments

This work previously appeared in the author's PhD dissertation, available at arXiv:2212.08964 Also published in the 28th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming (PPoPP '23)