Well, I had great dreams for expanding Avian Computing into using Nvidia CUDA to put all those lovely GPU’s to work in parallel but that just isn’t going to work. Or, more accurately, it’s going to take a lot more work than I can afford to devote to the project at this time.
See, there is a Java product called JCUDA that provides Java functionality to CUDA-enabled Nvidia cards. Unfortunately, what that means is that the Java performs JNI calls to the c/c++ libraries that are a thin layer over the built-in GPU math functions. So if I want to do shader functions or polygon transforms or FFT operations, that’s easy. However, if you want to do Java, just a plain old “hello world” program, that’s another story. At least I think it is.
And there’s the rub. Or a couple of them. There’s an Eclipse IDE version designed for CUDA/JCUDA but that version runs on Linux. And the “simplified” install notes run a number of pages and it took until page 3 of cryptic instructions just to run a test that your Linux system is correctly configured. I mean, I do Linux haltingly and hesitantly, so that would be a long road to probable failure.
Or there’s a Windows version but that’s configured to run in Visual Studio. Which means downloading, installing, and learning Visual Studio and then installing CUDA and getting it configured. Again, another long road to probable failure.
Oh, and then there’s learning CUDA itself. Learning all the directives, all the hints to insert into the c code to suggest to the compiler where to insert parallelism, bla-bla-bla.
At the rate that I can find free time, I suspect that it would take about a year to dedicate enough time to become sufficiently capable with CUDA/JCUDA to know if I can apply it to Avian Computing.And unfortunately, there are way too many other promising fields to investigate to be able to make that kind of commitment.
Hear that sad whistling sound? That’s the sound of the wind going out of that particular sail. But better I figure it out now than 6 months from now.