The state of GPGPU
Friday, February 27th, 2009Today Aaron Plattner from NVidia stated on the X.org mailing list when asked:
if there will be XVideo support for G90 cards to the nvidia free 2D driver
just:
XV on those GPUs requires the 3D engine, and setting that up is too complicated to be within the scope of that driver.
This let me to make some harsh notes what is “in the scope” of a driver and what’s not. Whether the closed source NVidia driver for U*ix-like systems is a favorable way to support (this) class of operating systems, or whether it has problems.
For me the Intel and ATi driver (or for that matter even the superb Matrox driver 10 years ago) always worked well. Of course the latest greatest drivers might have uncovered some compositing performance (or the like) regressions. But that’s the fast lane of the open source way of life. However, at least the availability of source allows to choose a suitable, working one, and also to fix such issues as they appear and invent in this area.
The quality is influenced by many factors, for me the source availability is one of the most important ones - without it many other factors (such as security among others) are hard to determine anyway. And on another side the NVidia driver rarely worked at all. Mostly because due to the sheer lack of x86 hardware on my side in the past (I stuck to PowerPC and SPARC for multiple reasons), and for the few AMD/Intel boxes other ABI incompatibility with the latest X.org server and/or OS kernel on the other side often came in between.
For me this boils down to a near zero usability of the binary-only nvidia drivers.
Let’s compare the GPU situation with classic CPUs:
If the vendors in the CPU-land would act like some of the vendors in the GPU-world still behave today, we would still not now how to enable the i386 protected mode, nor how-to use vector instructions or other new features of modern CPUs. If all programming material for CPUs would be hidden by the manufacturers, we also would only have very few operating systems, like Windows and Mac OS X, for example. Nothing like Linux or the BSDs - simply because few would know how to utilize the real power. And all programs would be limited to just utilitze what the vendor devices to expose to some form of driver API. Like the PC BIOS. Oh yeah - the VGA / VEAS BIOS. What a lovely dream.
It is no wonder GPGPU did not yet really take off and is not in wider use today: When utilizing it means calling into a VESA BIOS sort-of-thing and no-one knows what’s going on behind, how to debug or if it works tomorrow or the next computer nearby. And when innovators in operating system design have no access to proper register level documentation.
Just my 2 € cents on the matter, any why I’ll continue to strictly purchase only, what has open specs available. For drivers I can write, debug, review and improve. For hardware I can utilize in my OS and tomorrow, even when the vendor wants to phase it out.