Erlang/OTP Forums

Author Message

<  Erlang  ~  Erlang and CUDA C, interesting idea?

beloved one
Posted: Sun Nov 30, 2008 8:32 am Reply with quote
Joined: 30 Nov 2008 Posts: 1
CUDA C is NVidia's extension of the C language, which enables massively parallel tasks to be offloaded to the GPU, with large performance increases. The extent of my erlang knowledge is just having read a few very favorable blog posts, and checking around the official sites... but my impression is that Erlang is often regarded as one of the best languages in its approach to handle threading.

Basically, I was wondering if CUDA and Erlang could be a match made in heaven. Since Erlang is already compiled in C, perhaps some CUDA version could incorporate CUDA's GPU code paths extensions (which compile back to CPU equivalent paths if a compatible GPU is missing), without a huge amount of hassle.

But, maybe this idea is totally unfeasible and naive. I still find it interesting, as GPU processing has great performance when applicable (nvidia's site concerning it lists projects with 2x to 300+x speed ups), but only relatively low level programming support.
View user's profile Send private message
monch1962
Posted: Mon Dec 01, 2008 1:10 am Reply with quote
Joined: 01 Dec 2008 Posts: 6
I'd absolutely be interested in this.

I've got a hefty NVidia card at home that I've been running some experimental CUDA code on. It seems to work fine, but the main challenge for the problem I've got (and I suspect for a large subset of CUDA development) is in keeping data flowing to and from the card so that it can be kept as busy as possible.

It's quite possible I'm missing something as I'm very much feeling my way at present, but I haven't yet found a set of primitives for moving data from CPU to GPU that doesn't block on IO. When you've got massive amounts of data but relatively simple floating-point calculations, this makes a big dent in your throughput.

One possibility would be that, if there was an Erlang build that ran on NVidia/CUDA directly, I could fire up 2 Erlang instances (one "regular" and one on CUDA), then simply send data between the two via regular Erlang messages. Although this wouldn't fix the IO bottleneck directly, it'd make it a lot easier to construct my app so that *I* could reduce the data latency issues.

At a more macro level, I really don't like building complex apps in C - it just hurts too much when I get to use OO and FP languages everywhere else. I understand that C equates to "high performance" to a large degree; I'd just like there to be an alternative so that I can prototype in CUDA a lot easier.
View user's profile Send private message

Display posts from previous:  

All times are GMT
Page 1 of 1
This forum is locked: you cannot post, reply to, or edit topics.

Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum