Gremote: Cloud Rendering on GPU Resource Pool Based on API-forwarding
Dongjie Tang,Linsheng Li,Jiacheng Ma,Xue Liu,Zhengwei Qi,Haibing Guan
DOI: https://doi.org/10.1016/j.sysarc.2021.102055
IF: 5.836
2021-01-01
Journal of Systems Architecture
Abstract:Traditional GPU resource allocation approaches, widely adopted in today’s data centers as the rise of cloud gaming, only focus on server-side functions while ignoring the client-side, which wastes hardware resources. To solve this problem, cloud-edge integrated architectures are put forward, leaving some workloads to the client-side. However, many cloud-edge integrated frameworks suffer from one big issue: shared-resource interference, stemming from two reasons: (a) GPU resource racing caused by resources overuse for single client, and (b) CPU resource racing caused by resources shortage among clients. This paper presents gRemote , an open-source cloud-rendering system that can address these issues on a GPU resource pool. To mitigate the CPU resource shortage, gRemote improves CPU configuration by expanding CPU resources from server-side to both server- and client-side. To maintain the reasonable GPU usage for individual tasks, gRemote innovates a new resource-sharing mechanism called GPU throttle . Furthermore, remote API-Forwarding brings another type of network bandwidth consumption: command streaming. To optimize the network bandwidth for GPU command transmission, gRemote proposes two methods, command characteristics-oriented (CCO) compression algorithm and command-transmitted methodology . gRemote supports 1,228 OpenGL commands and provides cloud rendering for more than 40 clients with negligible shared-resource interference. With CCO algorithm and command-transmitted methodology, the network bandwidth is saved by more than 90%.