KGPU: When the GPU is used to Accelerate the Linux Kernel



Linux - Tux
NVIDIA CUDA


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 filesystems)
  • 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).

More details:


3 thoughts on “KGPU: When the GPU is used to Accelerate the Linux Kernel”

  1. Athlonite

    should have been implemented using just OpenCL so both NV and AMD could make use of it

  2. jK

    I assume they use nvidia’s `thrust` (http://code.google.com/p/thrust/) and so are bound to CUDA.

    Also I don’t see other parts than encryption profit by it (even when the execution rate might be faster, the delay between GPU & CPU is just too high).

    So something I would prefer would be a GPGPU optimization stage for gcc (similar to OpenMP, Graphite, …).

Comments are closed.