Landon Cox | Duke University


Kahawai at MobiSys

It was great to see former student Eduardo Cuervo present our paper on Kahawai at MobiSys ’15 last week.

Kahawai is a new approach to cloud gaming that allows a computer with an under-powered GPU, such as a mobile device or an older-generation gaming console, to render the same visual output as a computer with a top-of-the-line GPU. There are a number of commercial cloud-gaming systems, such as Ubitus and PlayStation Now, that aim to do the same thing, and these services take a thin-client approach to cloud gaming. That is, the game executes on a server equipped with a powerful GPU, and the game output is encoded as compressed video and streamed to clients. The problem with a thin-client approach is that the bandwidth requirements are substantial, with services typically requiring a minimum of 5 Mbps between the server and each client.

Eduardo had two insights into this bandwidth problem. First, even though a computer might not have the latest 300 W GPU, it probably still has a perfectly capable GPU. For example, smartphones have increasingly powerful GPUs, even if they will never render the same level of detail at the same rate as a dedicated gaming rig. Thin clients leave these perfectly capable GPUs idle since the remote server is completely responsible for generating the game’s output. A better approach might be to use the client’s GPU to help render the game’s graphics and reduce the amount of data the server has to stream. Eduardo’s second insight was that games naturally support multiple levels of visual fidelity. Most games allow a player to adjust their settings to match the power of their hardware, so that players with less powerful hardware can play the game with lower-fidelity graphics.

Based on these observations, we developed the idea of collaborative rendering, in which the client generates a low-fidelity version of the game’s graphics using its local GPU, and the server sends only the missing details from its high-fidelity version of the output (rather than the entire graphical output). Kahawai supports two implementations of collaborative rendering, one in which the client generates low-detail graphics at a high rate (a technique called delta encoding) and one in which the client generates high-detail graphics at a low rate (a technique called client-side i-frame rendering).

Results from experiments with our Kahawai prototype are quite promising. For Doom 3, Kahawai uses 1/6th of the bandwidth of a thin client, and a user study with 50 Microsoft gamers demonstrated that the gaming experience of Kahawai and a thin client are essentially equivalent. The upshot is that Kahawai gives players the same gaming experience as a conventional cloud-gaming service without burning through their cellular data or clogging their home networks, and at the same time Kahawai significantly cuts the bandwidth costs for cloud-gaming service providers.

Kahawai took several years to complete and many people contributed. Eduardo started the project while interning at Microsoft Research with Alec Wolman, Stefan Saroiu, and others, made significant progress after coming back to Duke, and tied up all the loose ends after joining MSR full-time.