Implementing Open-Source CUDA Runtime
Shinpei Kato · 2013
Graphics processing units (GPUs) are the state of the art embracing the concept of many-core technology. Their significant advantage in performance and performance-per-watt compared to traditional microprocessors has fa-cilitated development of GPUs in many compute applica-tions. However, GPUs are often treated as “black-box” devices due to proprietary strategies of hardware vendors. One of the greatest challenges of this research domain is the in-depth understanding of GPU architectures and run-time mechanisms so that the systems research community can tackle fundamental problems of GPUs. In this pa-per, we present an open-source implementation of CUDA runtime, which is the most widely-recognized programming framework for GPUs, as well as a documentation of “how GPUs work ” investigated by our reverse engineering work. Our implementation is based on Linux and is targeted at