Ask Slashdot: What Is the Most Painless Intro To GPU Programming?
dryriver writes "I am an intermediate-level programmer who works mostly in C# NET. I have a couple of image/video processing algorithms that are highly parallelizable — running them on a GPU instead of a CPU should result in a considerable speedup (anywhere from 10x times to perhaps 30x or 40x times speedup, depending on the quality of the implementation). Now here is my question: What, currently, is the most painless way to start playing with GPU programming? Do I have to learn CUDA/OpenCL — which seems a daunting task to me — or is there a simpler way? Perhaps a Visual Programming Language or 'VPL' that lets you connect boxes/nodes and access the GPU very simply? I should mention that I am on Windows, and that the GPU computing prototypes I want to build should be able to run on Windows. Surely there must a be a 'relatively painless' way out there, with which one can begin to learn how to harness the GPU?"
Surely the whole point of computer programming is efficiency - efficiency over doing a task without a computer.
If you can get the job done quicker in something along the lines of VB or Python and the speed up compared to using the CPU alone is good enough, I don't see why you shouldn't do it the easy way. Sure, if you're going to be doing this kind of coding a lot then you should invest time in learning the "best" way to do it, but if its something you'll seldom be doing then it may be more efficient for you just to take the easy option.
No there is not "easy" way, you have to learn stuff, and since you "need" to be on Windows, you demonstrated that you are not the kind of person who is interested in understanding how things work, so you'll probably fail.
Meanwhile you should use CUDA, since you are allready bowing to one overlord, why not go on and dig yourself deeper into vendor lock-in.
People who actually want to do some thing either are using openCL if they need some results in a reasonable time and do not plan to be trapped into a specific HW technology.
If I'd just want to try out ideas I'd probably use Rust or Harlan, Rust is more Cish Harlan is Schemish..
And the real issue is to think of the application as a conjunct of the GPU and the CPU, and remember Amdhal's law...