Linear Algebra on CUDA? Newb sending up a flare

Hello, I’m a big newb to GPU computing but it seems pretty interesting. I’m a student and I took a class on parallel computing last year and in that class there was a very brief mention of computing on the GPU, which I thought was very cool. So this quarter I decided to take some independent study credits and try to teach myself the basics of GPU computing. So computer science isn’t my degree or background, I’m one of those awkward math guys. So I’m not exactly flying along in my learning but I have learned some basic stuff. So to get to the chase . . .

I would like to put it all together and do a somewhat basic presentation about what I learned. And for that I would like to have a working code to show the benefits of using the GPU rather than the CPU. So an idea I had was doing a basic 2D heat diffusion example and show how the GPU(hopefully) does the simulation faster. So I had some questions and I hope you all can help:

  1. Is there a linear algebra solver for CUDA? I’m used to working on Matlab and python, so they have all the math functions right there. But if I’m going to even attempt to try to code up a heat diffusion example, I REALLY hope there is some linear algebra solvers already available that I can use.

  2. I guess the big question is does this problem seem like a good demo problem? Again I’m a big newb and I don’t even know if my skills are up to the task of doing this but I figure the best kind of presentation is a visual one. So I don’t want to just do a large matrix-matrix multiplication and have times spit out at the end for the GPU and CPU versions. I’m pretty sure that would bore everyone to tears. So I was hoping for something visual, like a 2d plate having heat spread across it. Nothing ground breaking but at least it would be colorful.

  3. And lastly, if anyone has any kind of resources for this kind of problem or advice, I would GREATLY appreciate it. The math department I’m in just wants me to do a 25 minute talk about why I chose this topic and talk about what I learned. Nothing fancy and they really don’t care how I learned it. Just an expanding your horizons kind of thing. So don’t worry, helping me doesn’t break any rules.

Thanks a ton!

better links below…

Many people have used Jacket for diffusion problems in MATLAB. Several examples are listed here. For Python, ArrayFire can also be used. Both contain linear algebra solvers.

Yes, both ArrayFire and Jacket have a visual Graphics Library that offers full OpenGL based renderings, see videos on Youtube.

I can send you some slidedecks (email me to get them at the address below).

Good luck!

You could take a look at Magma for linear algebra. It´s open source, we have used it for a year and are quite happy. The newest version supports multiple GPU´s

Great, thanks for the links and suggestions. I will definitely look into those. Currently I got bogged down in something else related to this, so as soon as I’m able to start in the direction of figuring out the diffusion, these might come in handy.