Carleton University - School of Computer Science Honours Project
Winter 2018
White-Boxing GPU Instruction Sets
Christopher Mcmorran
SCS Honours Project Image
ABSTRACT
The use of Graphics Processing Units (GPUs) for rendering is well known, but their power for general parallel computation has only recently been explored. GPUs are now being used for computation in the same manner as Central Processing Units (CPUs). A set of techniques known as General-Purpose Computing on Graphics Processing Units (CPGPU) allows for the execution of simple processor instructions to be offloaded onto a GPU; offloading instructions that can be executed in parallel can yield significant performance benefits. Although GPUs provide a means for faster parallel-computing, security vulnerabilities may exist as a consequence of poorly implemented instructions at the hardware layer. Unfortunately, one could consider the GPU to be a trusted grey-box; this is unsatisfactory from a security perspective. Research has demonstrated that Instruction Set Architectures (ISAs), such as x86, are littered with undocumented and anomalous instructions. This paper demonstrates that it is possible to whiten the theoretical grey-box model which describes CPGPU. Furthermore, we contribute what we believe to be the first piece of software that is capable of auditing a GPU instruction set.