KGPU: When the GPU is used to Accelerate the Linux Kernel
KGPU is a new project that aims at using the GPU as a co-processor for the Linux kernel.
This is a new step in the use of the GPU. Many applications are already accelerated by the GPU thanks to real time shader languages or GPGPU APIs like CUDA / OpenCL. Even malwares take advantage of GPUs for implementing unpacking and runtime polymorphism to elude virus scanners.
Now GPUs can be use to speed up the kernel of operating systems. KGPU is a framework for calling GPU code from the Linux kernel. Here are some kernel tasks than can be accelerated by the GPU:
- network packet processing
- in-kernel cryptography (IPSec, encrypted ﬁlesystems)
- pattern matching (the GPU can accelerate regular expression matching, with speedups of up to 48x reported over CPU implementations)
- basic algorithms: sort, search and graph analysis
KGPU is implemented using NVIDIA CUDA. To demonstrate the feasibility of KGPU, the AES encryption algorithm has been implemented as a service on the GPU for the Linux crypto subsystem. When the size of data is larger than 8KB, the GPU (a GTX 480) outperforms the CPU (Core i7-930).