• C++ Programming for Financial Engineering
    Highly recommended by thousands of MFE students. Covers essential C++ topics with applications to financial engineering. Learn more Join!
    Python for Finance with Intro to Data Science
    Gain practical understanding of Python to read, understand, and write professional Python code for your first day on the job. Learn more Join!
    An Intuition-Based Options Primer for FE
    Ideal for entry level positions interviews and graduate studies, specializing in options trading arbitrage and options valuation models. Learn more Join!

GPU-augmented OS kernel

Joined
8/18/10
Messages
153
Points
38
Nvidia and University of Utah released KGPU to the community - http://code.google.com/p/kgpu/
(source code is available)

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.

This lools like a next big thing that can really move GPU closer to end users because there is no need to rewrite the code - transition is quite seamless, just run the code on specified software and if you have GPU on your box you are in.
 
This lools like a next big thing that can really move GPU closer to end users because there is no need to rewrite the code - transition is quite seamless, just run the code on specified software and if you have GPU on your box you are in.

Maybe I didn't understood your point properly here, but I don't see kgpu as something "moving GPU closer to end users". The whitepaper explains clearly what is the intention behind kgpu - it is an interesting development, but solely intended for making it possible for Linux kernel code to utilize GPU resources for speeding-up some internal calculations. Practically, there aren't any floating point calculations in the Linux kernel code, but still there are some cases of internal calculations, mentioned in the white-paper, that could benefit from GPU processing; however, as it is about integer calculations, speed-ups achieved are nothing spectacular. Also, knowing a bit about Linux kernel developers community, I wouldn't expect any of this to be included in the official kernel source tree anytime soon. Still, there is some stuff here (like pieces about avoiding data copy overhead, and then "non-stop" kernel idea) that may be very interesting for example to HFT people eventually already examining, or using, GPGPU for processing.
 
Maybe I didn't understood your point properly here, but I don't see kgpu as something "moving GPU closer to end users".
At the moment the only way to utilize GPU for legacy software is to rewrite it from scratch which is quite consuming task. The better way would be, and KGPU is designed with this in mind, is to allow kernel decide what is the best way to utilize resources and if it's suitable to use GPU let it be so without a single extra line of code from "user-space" developer.

Also, knowing a bit about Linux kernel developers community, I wouldn't expect any of this to be included in the official kernel source tree anytime soon.
Quite obvious, I must say.
 
At the moment the only way to utilize GPU for legacy software is to rewrite it from scratch which is quite consuming task. The better way would be, and KGPU is designed with this in mind, is to allow kernel decide what is the best way to utilize resources and if it's suitable to use GPU let it be so without a single additional line of code from "user-space" developer.

I can't see exactly how something alike would be possible in general. Kernel could speed-up execution of a program only if program requests a service from kernel, through a syscall, and kernel has this syscall implementation improved. However, the scope of syscalls that GPU could help in speeding up is very limited - these applications are all mentioned in the whitepaper and, while interesting, these are mostly irrelevant for scientific computations (that are main target for the improvement through GPGPU programming).
 
I can't see exactly how something alike would be possible in general.

You already answered this question already, don't you?

Kernel could speed-up execution of a program only if program requests a service from kernel, through a syscall, and kernel has this syscall implementation improved.

We need to have improved syscall implementation and this is the reseach goal of kgpu project. And of course there is so much software on top of kernel so you will not even know that you use GPU in kernel mode. On the other side maybe it's not the best approach but it's definetely a lot better than recent approach by AMD - rewrite your software if you want to use GPU - aka aparapi

Of course, now it's limited but even now the list is quite empresive:
- cryptography
- networking
- program analysis
- pattern matching
- basic algorithms

Perhaps it will change in future.
 
You already answered this question already, don't you?

No, I don't think so. For example: if I have some sort of code using BLAS/LAPACK, or say some sort of Monte Carlo solver code, I see no way on how this code could benefit from an effort like kgpu. And most of the code interesting at least to community around this forum is of this type: numerical codes not depending on syscalls too much, but instead doing most of its work in the userspace. So, while I do find kgpu a very interesting development (side question: are you kgpu developer yourself?), I still can't imagine loads of existing code somehow auto-magically speeded up through just having kgpu running.
 
No, I don't think so. For example: if I have some sort of code using BLAS/LAPACK, or say some sort of Monte Carlo solver code, I see no way on how this code could benefit from an effort like kgpu.And most of the code interesting at least to community around this forum is of this type: numerical codes not depending on syscalls too much, but instead doing most of its work in the userspace.
Agree here. There is no way to reuse kernel for these tasks. I was mainly thinking about system programming that could help GPU to blossom.

are you kgpu developer yourself?
No, just find this approach when you don't have to rewrite your code a lot more promising.
 
Back
Top