[zeromq-dev] KGPU — Accelerating Linux Kernel Functions with CUDA
daniel.cegielka at gmail.com
Mon May 9 19:37:52 CEST 2011
Some interesting stuff..
KGPU is a GPU computing framework for the Linux kernel. It allows
Linux kernel to call CUDA programs running on GPUs directly. The
motivation is to augment operating systems with GPUs so that not only
userspace applications but also the operating system itself can
benefit from GPU acceleration. It can also free the CPU from some
computation intensive work by enabling the GPU as an extra computing
Network Packet Processing: Recently, the GPU has
been demonstrated to show impressive performance enhancements for
software routing and packet processing. PacketShader  is capable
of fast routing table
lookups, achieving a rate of close to 40Gbps for both
IPv4 and IPv6 forwarding and at most 4x speedup over
the CPU-only mode using two NVIDIA GTX 480 GPUs.
For IPSec, PacketShader gets a 3.5x speedup over the
CPU. Additionally, a GPU-accelerated SSL implementation, SSLShader
 runs four times faster than an
equivalent CPU version.
While PacketShader shows the feasibility of moving
part of the network stack onto GPUs and delivers excellent throughput,
it suffers from a higher round trip latency for each packet when
compared to the CPU-only
approach. This exposes the weakness of the GPU in a
latency-oriented computing model: the overhead caused
by copying data and code into GPU memory and then
copying results back affects the overall response time of
a GPU computing task severely. To implement GPU of-
ﬂoading support, OS kernel designers must deal with this
latency problem. Our KGPU prototype decreases the latency of GPU
computing tasks with the techniques discussed in section 3.
Though there are specialized programmable network
interfaces which can be used for packet processing, the
CPU+GPU combination offers a compelling alternative:
the high level of interest in GPUs, and the fact that they
are sold as consumer devices drives wide deployment,
low cost, and substantial investment in improving them.
More information about the zeromq-dev