Abstract
Modern computers often have a powerful graphics processing unit (GPU), either on
dedicated graphic cards or integrated on the motherboard. These units can used by
applications for demanding computation. Another use of this technology is to assist
the main CPU in the system, offloading some of its work. Offloading can give increased
performance, as well as decreased load on the main CPU. Decreasing the load frees
resources for other applications.
Keeping documents, images and other potentially sensitive files private is important
for many users. One way to do this is to use an encrypted file system, which can pre-
vent others from gaining unauthorized access. However, such a file system occupies
resources in the computer system. In this thesis, we evaluate how GPUs can be used for
assisting the computationally expensive encryption part of an encrypted file system.
Programming GPUs, is challenging because of the GPUs massively parallel nature and
their many memory types. We will look into different architectures, focusing mainly
on NVIDIAs architecture and programming framework in our work on evaluating the
effects of using graphic processing units for offloading an encrypted file system. In
this thesis, we see that offloading parts of this file system is beneficial, giving better
performance and reduced CPU load.