views:

188

answers:

3

I've been reading about CUDA and OpenCL and have learned that before these frameworks developers could only use low level APIs like OPENGL and D3D. Unfortunately I haven't been able to find much information about it.

Was it a widespread or commercial practice or was it just something they used in research and military labs? I'm sure somebody here will have experience with earlier GPGPU programming.

+2  A: 

It was mostly used in research. Of course, some GPGPU techniques was applied for software which needed to put pixels on the screen and for games, but mostly it was a research thingy.

martiert
+3  A: 

There were a number of approaches to GPGPU before CUDA and OpenCL came along, e.g. the Brook and Cg programming languages.

Paul R
Both approaches look very useful, although for what I can see most of the applications where for games. Still I wonder why they weren't as mainstream as CUDA and OpenCL for other general purpose computations. Maybe it had nothing to do with the languages themselves but instead with people not seen the potential for other kind of applications. For what I've read there weren't speedups as great as with the newer approaches so maybe there's also a technical reason (was no really worth it?). Guess I'll have to keep reading about them.
kirbuchi
At the time GPUs were a lot less flexible and so were suitable for a much smaller subset of applications than current GPUs. More recently GPUs have gained a lot more general purpose capabilities and the introduction of CUDA and OpenCL has made it relatively easy to exploit this. I guess CUDA was really the "tipping point" for GPGPU applications.
Paul R
+2  A: 

If you're interested in the history, I think one of the earliest papers that made people realize GPGPU was possible was a SIGGRAPH 2000 paper by some SGI guys at the time, "Interactive Multi-Pass Programmable Shading". The idea was that they could translate any RenderMan Shading Language shader into a sequence of OpenGL calls (plus a few extensions). The amazing part about this is that it used no programmable shaders at all - it was all based on setting the right parameters to the blending equations and using many passes. The numerical precision was laughable (8 or 16 bits fixed-point), but the idea of using graphics hardware to compute was there.

From that point, they could do fancier per-pixel things, which together with the hardware improvement quickly led to the GPGPU fluid flow solvers circa 2003. Which is about the time everyone collectively blushed at the gigantic hack it all was, leading to CUDA and OpenCL.

Carlos Scheidegger
Very nice! I'll give it a look.
kirbuchi