On Wednesday 18 June 2008 02:46:04 pm Greg Lindahl wrote: > One data point cannot prove that CUDA is easy. There are people out > there claiming that FPGAs are easy to program, because they're one of > the 7 people on the planet for whom programming an FPGA is easy. > > I've looked over CUDA and some examples, and while it's better > looking than some of the other GPU programming languages out there, > it's clear that it is more difficult and time-consuming than using > traditional languages on traditional cpus.
I'll add my 2 cents here. I've recently attended a "CUDA technical training session" given by NVIDIA in Santa Clara, CA. The presentation came along with practical exercises (laptops were provided for the hands-on session, sweet). It wasn't about going too deep into details, but from what I've seen, they've made a lot of effort to make the language understandable and usable for whoever has some programming experience. CUDA is regular C, with a small set of extensions. You definitely have to wrap your mind around some concepts (loops are irrelevant, for instance, since everything GPU-related is implicitely parallel ; you have to divide your work into smaller units which can fit in the CUDA programming model, and which are susceptible to keep the GPU pipes busy ; you don't really control how the work units are scheduled to the processors, etc.), but nothing fundamentaly different from your average parallel programming. So, yes, of course, there's a learning curve, and I only scratched the surface, but it doesn't seem to me that any experienced programmer would need more than a couple days to begin writing efficient CUDA code. We've also encountered somme oddities, like CUDA code freezing a machine running X.org (and using the proprietary NVIDIA driver), compiler segfaults or code returning incoherent results. We didn't spend too much time on debugging those, so they may very well have been related to the code itself, and not to the compiler or the driver. And moreover, it was version 1.1, and I think they released a version 2.0 since then. Anyway, CUDA is definitely not an UML-like language (it's not enough to draw boxes, you still have to write code, and NVIDIA already ported a bunch of standard libs to help you porting your applications), but it definitely looks easier than what ATI used to call CTM. Cheers, -- Kilian _______________________________________________ Beowulf mailing list, Beowulf@beowulf.org To change your subscription (digest mode or unsubscribe) visit http://www.beowulf.org/mailman/listinfo/beowulf